码迷,mamicode.com
首页 > 其他好文 > 详细

Hadoop完全分布式+HA配置

时间:2016-05-13 01:58:22      阅读:356      评论:0      收藏:0      [点我收藏+]

标签:

这里简单总结一下自己在配置Hadoop完全分布式以及namenode的HA的步骤及遇到的问题和解决方法。
错误的地方还请大家指出。
namenode的HA(high availability)如下图
技术分享

将namenode的元数据存储在多个journalnode组成的集群中。active namenode 与 standbynamenode的元数据是相同


的并且是同时实时更新的。


这里我们利用VMware搭建四个节点的集群hadoop的各个节点分布如下:

技术分享

准备包:JDK,hadoop,zookeeper

1、core-site.xml的配置

(按照相应版本的文档页面配置)

2、hdfs-site.xml的配置

(按照相应版本的文档页面配置)

3、准备zookeeper

   a\ 三台zookeeper


   b\ 修改zoo.cfg配置文件

(找到相应版本的文档页面)

      修改dataDir:

      dataDir=/cong/hadoop_tmp/zookeeper

      尾部添加:

      server.1=node1:2888:3888
      server.2=node2:2888:3888
      server.3=node3:2888:3888

(在一台机器上配置好hadoop和zookeeper然后将程序文件考(scp)到其他机器便可)


4、启动三个zookeeper:  ./zkServer.sh start


5、启动三个journalnode:  ./hadoop-daemon.sh start journalnode


6、在其中一个namenode上格式化:  ./hdfs namenode -format


7、把刚刚格式化之后的元数据拷贝到另外一个namenode上

    a\ 启动刚刚格式化的namenode: ./hadoop-daemon.sh start namenode

    b\ 在没有格式化的namenode上执行: ./hdfs namenode -bootstrapStandby

    c\ 启动第二个namenode



8、在其中一个namenode上初始化zkfc:  ./hdfs zkfc -formatZK


9、停止上面的节点:./stop-dfs.sh


10、全面启动:./start-dfs.sh


11、配yarn: mapred-site.xml yarn-site.xml


创建目录: ./hdfs dfs -mkdir -p /cong/tmp

上传本地文件
./hdfs dfs -put /cong/temp/hello.txt /cong/tmp

运行jar包
./hadoop jar /cong/temp/WordCount.jar cong.mr.JobRun /cong/tmp/hello.txt /cong/tmp/wcout



遇到的问题及解决方法

1、免密码登录


分别在各个节点上执行以下命令:


 ssh-keygen -t dsa -P ‘‘ -f ~/.ssh/id_dsa

 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys


然后如做node1到node2的免密码登录则执行以下命令:


首先将node1的公钥文件拷贝至node2:


scp ~/.ssh/id_dsa.pub root@node2:/root/
cat /root/id_dsa.pub >> /root/.ssh/authorized_keys
即将node1的公钥追加至node2的authorized_keys文件中。

本人遇到过The authenticity of host *** can’t be established ,需要输出一个“yes”的交互,试过网上的方法不行,本

人修改了相应节点的IP地址解决了。

2、./hdfs zkfc -formatZK遇到错误如下:



16/05/08 21:01:39 INFO zookeeper.ClientCnxn: Opening socket connection to server node2/192.168.17.3:2181. Will not attempt to authenticate using SASL (unknown error)
16/05/08 21:01:40 INFO zookeeper.ClientCnxn: Socket connection established to node2/192.168.17.3:2181, initiating session
16/05/08 21:01:40 INFO zookeeper.ClientCnxn: Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect
16/05/08 21:01:40 INFO zookeeper.ClientCnxn: Opening socket connection to server node3/192.168.17.4:2181. Will not attempt to authenticate using SASL (unknown error)
16/05/08 21:01:40 INFO zookeeper.ClientCnxn: Socket connection established to node3/192.168.17.4:2181, initiating session
16/05/08 21:01:40 INFO zookeeper.ClientCnxn: Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect
16/05/08 21:01:41 INFO zookeeper.ClientCnxn: Opening socket connection to server node1/192.168.17.2:2181. Will not attempt to authenticate using SASL (unknown error)
16/05/08 21:01:41 INFO zookeeper.ClientCnxn: Socket connection established to node1/192.168.17.2:2181, initiating session
16/05/08 21:01:41 INFO zookeeper.ClientCnxn: Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect

解决方法:

看看自己是不是在/etc/hosts设置文件里给127.0.0.1配置了像node2这样的主机名,去掉127.0.0.1额外配的主机名便好。
当然还有些其他导致此错误的可能原因:比如zookeeper节点数目不是大于1的奇数(好像会有这种错误)


3、 datanode无法启动

这个问题一般是由于两次或两次以上的格式化NameNode造成的,尝试删除将集群中每个

datanode的/hdfs/data/current中的VERSION删掉,然后执行hadoop namenode -format重

启集群。

4、执行jar包时遇到如下错误:

org.apache.hadoop.yarn.exceptions.YarnException: Unauthorized request to start container

原因:namenode,datanode时间同步问题;

解决方法:若节点均已联网,在每台服务器上执行:ntpdate time.nist.gov (不行就是用国内速度比较快的nt服务

器http://blog.csdn.net/huang_xw/article/details/8711037)

vmware NET模式节点联网问题参照http://www.2cto.com/os/201109/103214.html 注意最后域名无法解析的部分!

ntpdate 直接加ntp服务器的ip便可解决!(本人用的为:ntpdate 202.118.1.81)

5、启动集群后两个namenode的状态全部都是standby

解决方法:简单粗暴:强制切换namenode状态 ./hdfs haadmin -transitionToActive -forcemanual nn1

nn1为配置时为namenode所起的服务名!

Hadoop完全分布式+HA配置

标签:

原文地址:http://blog.csdn.net/u012240857/article/details/51346312

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!