HDFS HA系列实验之经验总结

1:Hadoop HA启动流程图

注意,如果是使用JournalNode保存EditLog,那么除了第一次需要格式化HDFS需要手工先启动;正常使用的hadoop集群不需要手工启动JournalNode,因为start-dfs.sh中已经含有启动JournalNode的脚本。

2:hdfs.xml配置要注意的地方
 
 3:NFS配置
客户端的NFS用户UID、GID要和服务器上的用户UID、GID最好一致,至少要UID一致;所以在客户端创建NFS用户的时候,先查看一下服务器端用户的UID、GID,然后在客户端用groupadd -g GID命令创建用户组,用useradd -u UID命令创建用户。

4:使用Zoopkeeper自动切换NN节点时,需要提供自动切换的办法: sshfence或 shell。通过配置参数 dfs.ha.fencing.methods 来完成。具体的做法可以参考: HDFS High Availability Using the Quorum Journal Manager 。如本实验中用了 sshfence方法,配置如下:

<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>

<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>


5:Java版本的问题
实验中最初使用JDK7UP45,出现以下expect。。。错误,后来改成JDKUP21就不再出现,所以需要选择合适的JDK。

6:关于ssh免密码的操作步骤
A:先在各节点用要设置免密码的用户登录
B:设置每台机器的/etc/ssh/sshd_config文件中的RSA设置,取消其注释

RSAAuthentication yes

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

C:在各节点用ssh-keygen -t rsa 生成密钥对
D:将各节点id_rsa.pub文件合并成一个文件authorized_keys,并发放给各个节点,注意authorized_keys文件的属性是600。合并和发放一般在master节点运行,可以用如下命令:

ssh 节点名 cat /home/用户名/.ssh/id_rsa.pub >> /home/用户名/.ssh/ authorized_keys

scp /home/用户名/.ssh/ authorized_keys 节点名:/home/用户名/.ssh/.

E:选取其中一个节点,一般是master节点,用ssh 各节点 date 一次,生成 known_hosts文件,然后将 known_hosts文件发放给各节点,代码如下:

ssh 节点名1 date

ssh 节点名2 date

。。。。

scp /home/用户名/.ssh/known_hosts 节点名:/home/用户名/.ssh/.

F:没问题的话,各个节点之间都可以免密码了

你可能感兴趣的:(HDFS HA系列实验之经验总结)