虚拟机 安装 ubuntu 18.04 使用hadoop搭建伪分布式

介绍:Hadoop是Apache开源组织的一个分布式计算框架,可以在大量廉价的硬件设备组成的集群上运行应用程序,为应用程序提供了一组稳定可靠的接口,旨在构建一个具有高可靠性和良好扩展性的分布式系统。 HDFS(分布式文件系统)为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。通过这次云计算课程,我希望通过自己亲手搭建Hadoop并操作一些实例来体会一下云计算的魅力。
安装环境:我的笔记本的系统环境是Ubuntu16.04+windows10的双系统,hadoop作为由java语言开发的,在linux上可以完美运行,故准备在我的Ubuntu上实战搭建。
准备:Ubuntu18.04/64位
      hadoop-2.4.1.tar.gz
      Java jdk1.8.0_71
目的:配置hadoop,并搭建hadoop伪分布模式

1、安装和配置JAVA环境
a) 下载并解压JDK

下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 

(选择linux版本,你们下的版本号有可能和我不一样,后面配置时注意路径名,文件夹名,自行选择版本)

新建/usr/java目录,切换到所下载的jdk-8u71-linux-x64.tar.gz目录。将文件解压到/usr/java目录下
命令解压:tar -zxvf jdk-8u71-linux-x64.tar.gz -C /usr/java/     ——>> 将压缩包解压到 /usr/java/  目录下

注: -C 的意思是 跨目录,不懂解压命令的可以用图形化界面鼠标点击解压,解压完成后,jdk就安装完成了。

b) 配置jdk环境变量

我本地使用vim编辑器(如果没有vim编辑器,可以使用 sudo apt-get install vim 下载vim编辑器,或者使用

sudo gedit /etc/profile 打开gedit文本编辑器) 

在文件最后一行后加上

# java jdk1.8.0

export JAVA_HOME=/usr/java/jdk1.8.0_71
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

保存后退出

如下命令使环境变量生效:
source  /etc/profile   ——>>  或者重启

 

2、安装ssh-server并实现免密码登录

a) 下载ssh-server
sudo apt-get install openssh-server


b) 启动ssh
sudo /etc/init.d/ssh start


c) 查看ssh服务是否启动,如果显示相关ssh字样则表示成功。
ps -ef|grep ssh

d) 设置免密码登录
使用如下命令,一直回车,直到生成了rsa。
ssh-keygen -t rsa

导入authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

测试是否免密码登录localhost
ssh localhost

关闭防火墙(不关闭防火墙,无法启动hadoop)
ufw disable

3、安装Hadoop伪分布模式

a)下载hadoop-2.7.4.tar.gz,解压到/usr/local(单机模式搭建)
sudo tar zxvf hadoop-2.4.1.tar.gz -C /usr/local   (解压到   /usr/local
cd /usr/local    (切换到/usr/local下)
sudo mv hadoop-2.7.4 hadoop    (将hadoop-2.4.1重命名为hadoop)
sudo chmod 777 -R /usr/local/hadoop   给/usr/local/hadoop设置访问权限(-R为递归的给目录权限,必须)

b) 配置hadoop环境变量

export JAVA_HOME=/usr/java/jdk1.8.0_71
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"

保存后退出

如下命令使环境变量生效:
source  /etc/profile   ——>>  或者重启

c) 伪分布式搭建

配置hadoop-env.sh
sudo vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh


添加如下内容:(注意jdk文件名)

# The java implementation to use. 
export JAVA_HOME=/usr/java/jdk1.8.0_71
export HADOOP=/usr/local/hadoop
export PATH=$PATH:/usr/local/hadoop/bin

配置yarn-env.sh
sudo vim /usr/local/hadoop/etc/hadoop/yarn-env.sh
添加如下内容:

# export JAVA_HOME=/usr/java/jdk1.8.0_71
JAVA_HOME=/usr/java/jdk1.8.0_71

配置core-site.xml,(这里的tmp.dir不用改,是缓存目录)
sudo vim /usr/local/hadoop/etc/hadoop/core-site.xml
插入如下内容
注意:将core-site.xml中原来的有的<configuration> < /configuration >一定要删除掉,不然后面格式化的时候会出错。即.xml文件中只有一个<configuration> < /configuration >对就可以。

<configuration>
       <property>
             <name>hadoop.tmp.dir</name>
             <value>file:/usr/local/hadoop/tmp</value>
             <description>Abase for other temporary directories.</description>
        </property>
        <property>
             <name>fs.defaultFS</name>
             <value>hdfs://localhost:9000</value>
        </property>
</configuration>


同样修改配置文件 hdfs-site.xml:
sudo vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
插入下列内容:(删除原有的<configuration>)

<configuration>
        <property>
             <name>dfs.replication</name>
             <value>1</value>
        </property>
        <property>
             <name>dfs.namenode.name.dir</name>
             <value>file:/usr/local/hadoop/tmp/dfs/name</value>
        </property>
        <property>
             <name>dfs.datanode.data.dir</name>
             <value>file:/usr/local/hadoop/tmp/dfs/data</value>
        </property>
        <!-- 自定义端口号,若不设置,则默认为50070 -->
        <!--<property>
                <name>dfs.http.address</name>
                <value>localhost:8100</value>
        </property>-->
</configuration>

Hadoop配置文件说明
Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。
此外,伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行,不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。
同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。

配置yarn-site.xml
sudo vim /usr/local/hadoop/etc/hadoop/yarn-site.xml 
插入下列内容

<configuration> 
<!-- Site specific YARN configuration properties -->
    <property> 
        <name>yarn.nodemanager.aux-services</name> 
        <value>mapreduce_shuffle</value> 
    </property> 
    <property> 
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> 
        <value>org.apache.hadoop.mapred.ShuffleHandler</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.address</name> 
        <value>127.0.0.1:8032</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.scheduler.address</name> 
        <value>127.0.0.1:8030</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.resource-tracker.address</name> 
        <value>127.0.0.1:8031</value> 
    </property> 
</configuration>

d) 关机重启系统
注意:以上三个文件都必须只能存在一对<configuration>,否则会有问题。

4、验证hadoop是否安装并配置成功
a) 验证Hadoop单击模式已经配完成
hadoop version

b) 启动HDFS为分布式模式
格式化namenode
hdfs namenode -format
 
有successfully formatted代表格式化成功。Existing with 1代表有错误。
启动hdfs(如出现权限错误检查3  a)步骤是否递归给hadoop文件夹权限)
start-all.sh


显示进程
jps

有6个进程代表正确

在浏览器中输入http://localhost:50070,出现如下页面

注:如果在 hdfs-site.xml 里面配置了访问路径,那就输入对应的路径,如 http://localhost:8100

输入 http://localhost:8088, 出现如下页面

至此Hadoop已经完全搭建成功

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值