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 就可以了)