您的位置:首页 > 运维架构

CDH Hadoop HA+Zookeeper部署问题

2016-11-12 08:51 537 查看
网上已经有一些关于hadoop ha部署的资料了这里就不重复了~
参考链接:

Hadoop2.5.2+HA+zookeeper3.4.6详细配置过程

https://my.oschina.net/wangyanpei/blog/485165

zookeeper部署教程:

http://wenku.baidu.com/view/f070cb8de53a580216fcfe7c.html

安装网上的教程将zookeeper,hadoop安装后

根据需要配置hadoop的配置文件(参考文档上的配置即可)

1.启动zookeeper

 bin/zkServer.sh start

查看

 bin/zkServer.sh status

此时应该有一个是leader其他为follower

 

2. 创建namenode,datanode,journalnode目录

chown -R hdfs:hdfs /home/binder/hadoop/journal

  chown -R hdfs:hdfs /data/hadoop/data/datadfs

  chown -R hdfs:hdfs /data/hadoop/data/namedfs

3.格式化hdfs的zookeeper服务

hdfs zkfc –formatZK

4.启动journalnode

service hadoop-hdfs-journalnode start

5.初始化SharedEdits

hdfs namenode –initializeSharedEdits

 

6.格式化并启动namenode

hadoop namenode –format

service hadoop-hdfs-namenode start

 

7.在备用节点上同步namenode数据并启动namenode

 sudo -u hdfs hdfs namenode –bootstrapStandby

如果不切到hdfs用户会报错

Error: A JNI error has occurred, please check your installation and try again

Exception in thread "main" java.lang.NoClassDefFoundError:

org/apache/hadoop/security/authorize/RefreshAuthorizationPolicyProtocol

 

service hadoop-hdfs-namenode start

8.启动datanode

service hadoop-hdfs-datanode start

9.启动ResourceManager和NodeManager

service hadoop-yarn-resourcemanager start

service hadoop-yarn-nodemanager start

 

10.在两个namenode上启动zkfc服务监控namenode状态

service hadoop-hdfs-zkfc start

 

11.此时部署就完成了,可以在web上查看namenode是否正常(一个active,一个standby)

尝试kill -9杀掉active的namenode,查看原先的standby
namenode是否自动切换成active

 

如果没有自动切换 回到namenode节点查看日志信息

如果用yum install 方式安装的话 log的位置在

/var/log/Hadoop-hdfs/hadoop-hdfs-zkfc-binder2.log

 

坑1:

采用sshfence方式自动切换时,如果在配置免密码登录时用的root用户,这里会产生

WARN org.apache.hadoop.ha.SshFenceByTcpPort: Unable to create SSH session

 com.jcraft.jsch.JSchException: java.io.FileNotFoundException: /root/.ssh (Permission denied)

的异常

 

因为使用sshfence自动切换时,使用的是hdfs用户,而/root/.ssh的权限是owner是root

切换时无法读取到id_rsa

如果简单的修改/root/.ssh目录的权限的话解决的话,会导致免密码登录失败

 

解决办法:使用hdfs用户创建密钥

Sudo –u hdfs ssh-keygen

会在

/var/lib/hadoop-hdfs/.ssh/目录下生成密钥,在两台namenode机器上配置好免密码登录后

重启集群就可以了(我是把整个集群的服务都kill掉,重新格式化重启的,目测应该只需要重启service hadoop-hdfs-zkfc 就可以了)

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop