unubtu装Hadoop完全分布模式

1设置Hadoop配置文件

安装Hadoop完全分布模式,一共有5个文件需要配置,分别是:

hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml

进入hadoop配置文件所在目录

cd ${HADOOP_HOME}/etc/hadoop

(1)设置hadoop-env.sh

vi  hadoop-env.sh

找到export JAVA_HOME一行,把行首的#去掉,并按实际修改JAVA_HOME的值

#The java implementation to use.(这行不用动)

Export JAVA_HOME=/home/用户名/jdk(这里放的是java的路径,尽量写实际路径,不要写软链接,有时候会NOT a valid JAR)

  1. 设置core-site.xml
vi core-site.xml
<configuration>

   <property>

       <name>fs.defaultFS</name>

       <value>hdfs://node01:8020</value>

   </property>

   <property>

      <name>hadoop.tmp.dir</name>

      <value>/home/wmy/hadoop/tmp</value>

   </property>

</configuration>

文本中wmy是用户名,按照实际填写

node01是主机名,尽量设置为主机IP,也可以设置为主机名

2.设置hdfs-site.xml

vi hdfs-site.xml
<configuration>

         <property>

             <name>dfs.replication</name>

             <value>2</value>

         </property>

</configuration>

// dfs.replication的默认值是3,因为我们只有两个节点,所以值设置为2

3.设置mapred-site.xml

vi mapred-site.xml
<configuration>

      <property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

      </property>

</configuration>

mapreduce.framework.name默认值为local,设置为yarn,让MaoReduce程序运行在YARN框架上

4.设置yarn-site.xml

vi yarn-site.xml
<configuration>

<!-- Site specific YARN configuration properties -->

    <property>

        <name>yarn.resourcemanager.hostname</name>

        <value>node01</value>

    </property>

    <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

    </property>

</configuration>

yarn.resourcemanager.hostname属性为资源资源管理器的主机,设置为主机名或者IP地址

尽量设置为IP地址,不然会遇到一点点麻烦,8088端口被拒绝或繁忙

5.设置slaves文件//设置datanode节点是哪些主机

cd  ~/hadoop/etc/hadoop
vi slaves

将原有内容删除,添加以下内容(原有内容的意思:以本机作为datanode节点)

修改为:

node02

node03

(添加的是两个作为datanode节点的主机名,也就是另外两个主机名)

2、克隆虚拟机

克隆虚拟机是因为使用scp 分发文件时会遇到权限不够的问题

克隆虚拟机要在第一台虚拟机配置完文件之后在克隆

3、修改主机名

修改克隆出来的第一台主机,用vi命令编辑/etc/hostname

sudo vi /etc/hostname

将原有内容删除,添加

node01

重启使之生效

sudo reboot

修改克隆出来的第二台主机,用vi命令编辑/etc/hostname

sudo vi /etc/hostname

将原有内容删除,添加

node02

重启使之生效

sudo reboot

修改克隆出来的第三台主机,用vi命令编辑/etc/hostname

sudo vi /etc/hostname

将原有内容删除,添加

node03

重启使之生效

sudo reboot

4、配置网络 注意IP地址不能和网关完全一样)

更改网络配置

 sudo vi /etc/network/interfaces

重新启动网络服务

sudo /etc/init.d/networking restart

网络配置

auto ens33

iface ens33 inet static

#自己想要设置的ip
address 192.168.31.0
#子网掩码
netmask 255.255.255.0
#网关
gateway 192.168.31.2
#DNS服务器配置
dns-nameserver 114.114.114.114

重启虚拟机

 sudo reboot

每台虚拟机都要固定网络

5、映射IP地址及主机名

sudo vi /etc/hosts
192.168.30.131   node01

192.168.30.132   node02

192.168.30.133   node03

IP地址和主机名要按实际情况填写

6、设置免密登录

  1. 在node01上生成密钥对
ssh-keygen  -t  rsa

其中rsa表示加密算法

输入上面一条命令后需要敲击三次回车键,之后系统会自动在~/.ssh目录下生成

公钥(id_rsa.pub)和私钥(id_rsa),可通过命令 ls ~/.ssh查看

ls  ~/.ssh
  1. 将noe01公钥id_rsa.pub复制到node01、node02、node03 主机上
ssh-copy-id -i  ~/.ssh/id_rsa.pub node01

ssh-copy-id -i  ~/.ssh/id_rsa.pub node02

ssh-copy-id -i  ~/.ssh/id_rsa.pub node03

输入完命令后按提示进行就行

  1. 验证免密登录
ssh node01

ssh node02

ssh node03

7、安装NTP服务

完全分布式模式由多台主机组成,各个主机的时间可能存在较大差异。如果时间差异较大,

执行MapReduce程序的时候会存在问题。NTP服务通过获取网络时间使集群内不同主机的时间

保持一致。默认安装Ubuntu操作系统时,不会安装NTP服务。

在三台主机上分别安装NTP服务,命令如下(安装NTP服务时需联网)

sudo apt-get install ntp

查看服务是否运行

sudo dpkg -l |grep ntp

8、格式化HDFS

在node01主机上操作,命令如下(只需要在namenode主机上操作,其他主机不需要)

hdfs namenode -format

(这个只能操作一次,操作多次会造成namenode节点和datanode节点的VERSION文件中clusterID不同,会丢失DataNode进程)

解决办法:

停止 HDFS 集群后,同时删除NameNode节点和DataNode节点中配置的存储 Hadoop 数据的文件目录的所有子目录及文件,如我们配置的hadoopData目录下的所有子目录及文件。接下来,再使用hdfs namenode -format命令重新格式化NameNode节点,然后重新启动 HDFS 集群,即可!

9、启动Hadoop

启动命令只需要在node01上操作

可以使用分别启动HDFS和YARN

start-dfs.sh

start-yarn.sh

或者使用以下命令启动HDFS和YARN

start-all.sh

10、验证Hadoop进程

使用jps命令分别在所有主机上验证

jps

node01主机上包含以下三个进程表示Hadoop启动成功

SecondaryNameNode

NameNode

ResourceManager

在node02和node03上分别执行jps命令,都包含以下两个进程表示Hadoop启动成功

NodeManager

DataNode

如果某个主机少了某个进程,应该到对应主机去找相关的log查看原因,log存放在$HADOOP HOME/logs 目录下。例如,node3主机少了DataNode进程,则应该进入node3主机的$(HADOOP HOME)/logs目录下,查看DataNode 相关的log,找到含有“WARN"“Error" "Exception”等的关键字句,通过上网搜索关键字句找到解决问题的办法。

ssh node3

cd~/hadoop-2.7.3/logs

cat hadoop-hadoop-datanode-node 3.log

 

11、通过Web访问Hadoop

  1. HDFS Web界面

在Windows 的浏览器中,输入网址 http://192.168.30.131:50070,可以查看NameNode和DataNode信息,如图下图所示。其中,192.168.30.131表示Master的IP地址(namenode的IP地址),请根据实际情况修改。

单击Web页面的Datanodes查看DataNode信息,如图所示,有两个DataNode 正在运行

Windows浏览器中,输入网址http://192.168.30.131:50090,可以查看SecondaryNameNode 信息,如下图所示

(2)YARN Web界面

在Windows的浏览器中,输人网址http://192.168.30.131:8088,可以查看集群所有应用程序的

信息,如图所示,可以看到Active Nodes为2,说明集群有两个NodeManager节点正在运行。

10、测试Hadoop

通过一个MapReduce程序测试Hadoop,统计HDFS中/input/data.txt文件内单词出现的次数。

(1)在Ubuntu操作系统的~目录下,创建一个文本文件data.txt。

cd input
vi data.txt

在data.txt文件中输人如下内容,保存并退出。

HelloWorld

HelloHadoop
  1. 在HDFS创建input文件夹,命令如下。
hdfs dfs -mkdir  ~/1nput
  1. 将data.txt 上传到HDFS,命令如下。
 hdfs dfs -put data.txt ~/input
  1. 查看是否上传成功,命令如下。
hdfs dfs  -1s  ~/input

(5)运行MapReduce WordCount例子,命令如下。

cd /hadoop/share /hadoop /mapreduce

hadoop jar hadoop-mapreduce-examples-2.7.1.jar wordcount ~/input/data.txt/output

说明:第二条命令在同一行输入。

(6)查看结果。

hdfs dfs -cat /output/part-r-00000

Hadoop  1

He1lo    2

 World   1

  1. 停止Hadoop进程

停止命令只需要在node01上操作

可以使用分别停止HDFS和YARN

stop-dfs.sh

stop-yarn.sh

或者使用以下命令停止HDFS和YARN

stop-all.sh

使用jps命令查看

jps

至此Hadoop完全分布式搭建完成

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值