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命令创建用户。
<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:没问题的话,各个节点之间都可以免密码了