免密钥有两个需求场景:
1.管理脚本 远程管理其他的节点脚本启动
2.ZKFC:需要免密钥控制对方和自己
JNN配置步骤:
1.逻辑到物理的映射
2.journalnode相关位置信息的一个描述
3.发生故障免密钥的切换的配置
启动过程
1.先启动JNN
2.再启动一个NameNode进行格式化,然后启动这个namenode
3.另外一个NameNode启动进行信息同步
1.上传解压tar xf zookeeper-3.4.6.tar.gz
2. mv zookeeper-3.4.6 /opt/test/
3.配置环境变量
export ZOOKEEPER_HOME=/opt/test/zookeeper-3.4.6
export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin:
H
A
D
O
O
P
H
O
M
E
/
b
i
n
:
HADOOP_HOME/bin:
HADOOPHOME/bin:HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin
4. cp /opt/test/zookeeper-3.4.6/conf
cp zoo_sample.cfg zoo.cfg
4. vi zoo.cfg
dataDir=/var/test/hadoop/zookeeper
server.1=192.168.0.102:2888:3888
server.2=192.168.0.103:2888:3888
server.3=192.168.0.104:2888:3888
5. 创建myid
[root@node2 conf]# mkdir -p /var/test/hadoop/zk
[root@node2 conf]# echo 1 > /var/test/hadoop/zk/myid
6.复制到其他的机器上
scp -r zookeeper-3.4.6/ node3:pwd
scp -r zookeeper-3.4.6/ node4:pwd
[root@node3 test]# mkdir -p /var/test/hadoop/zk
[root@node3 test]# echo 2 > /var/test/hadoop/zk/myid
[root@node4 ~]# mkdir -p /var/test/hadoop/zk
[root@node4 ~]# echo 3 > /var/test/hadoop/zk/myid
在node3 node4上配置环境变量
export ZOOKEEPER_HOME=/opt/test/zookeeper-3.4.6
export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin:
H
A
D
O
O
P
H
O
M
E
/
b
i
n
:
HADOOP_HOME/bin:
HADOOPHOME/bin:HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin
7.启动 node2 node3 node4
zkServer.sh start
zkServer.sh status查看状态
zookeeper配置完毕!ok!
继续配置
- /opt/test/hadoop-2.6.5/etc
cp -r hadoop hadoop-full
hadoop-full 就是以前的没有zooker的完全配置环境,完全分布式
- vi hdfs-site.xml
dfs.namenode.secondary.http-address
node2:50090没有意义了,在HA中secondary没有意义了
dfs.replication
2dfs.nameservices
myclusterdfs.ha.namenodes.mycluster
nn1,nn2dfs.namenode.rpc-address.mycluster.nn1
node1:8020dfs.namenode.rpc-address.mycluster.nn2
node2:8020dfs.namenode.http-address.mycluster.nn1
node1:50070dfs.namenode.http-address.mycluster.nn2
node2:50070dfs.namenode.shared.edits.dir
qjournal://node1:8485;node2:8485;node3:8485/myclusterdfs.journalnode.edits.dir
/var/test/hadoop/ha/jn
dfs.client.failover.proxy.provider.mycluster org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider dfs.ha.fencing.methods sshfence dfs.ha.fencing.ssh.private-key-files /root/.ssh/id_dsa dfs.ha.automatic-failover.enabled true
2.core-site.xml
注意:hadoop.tmp.dir的配置变更:/var/test/hadoop-2.6/ha
fs.defaultFS
hdfs://mycluster
hadoop.tmp.dir
/var/test/hadoop/ha
ha.zookeeper.quorum
node2:2181,node3:2181,node4:2181
客户端开发,保证core,hdfs-site.xml都被客户端加载。
3.将修改分发到其他的机器上
scp hdfs-site.xml core-site.xml node2:pwd
scp hdfs-site.xml core-site.xml node3:pwd
scp hdfs-site.xml core-site.xml node4:pwd
scp hdfs-site.xml core-site.xml node5:pwd
- node1和node2免密钥控制对方和自己
ssh-keygen -t dsa -P ‘’ -f ~/.ssh/id_dsa
cat id_dsa.pub >> authorized_keys
同样的方式让node1和node2对自己免密钥
自己可以免密钥了
scp id_dsa.pub node1:pwd
/node2.pub
cat node2.pub >> authorized_keys
node1对node2免密码了
在node1上
scp id_dsa.pub node2:pwd
/node1.pub
在node2上
cat node1.pub >> authorized_keys
node2对node1也免密钥了
5.部署的细节
格式化期间有限启动一个namenode
node1启动
hadoop-daemon.sh start journalnode
node2启动
hadoop-daemon.sh start journalnode
node3启动
hadoop-daemon.sh start journalnode
格式化
node1
hdfs namenode -format
启动
hadoop-daemon.sh start namenode
node2
hdfs namenode -bootstrapStandby
node1
hdfs zkfc -formatZK 在此之前确保zookeeper是否在node2 node3 node4
启动zkServer.sh status
node2 node3 node4中的一个客户端启动起来zkCli.sh
[zk: localhost:2181(CONNECTED) 3] ls /hadoop-ha/mycluster
[]
node1上启动服务:
start-dfs.sh
node04上查看
[zk: localhost:2181(CONNECTED) 0] get /hadoop-ha/mycluster/ActiveStandbyElectorLock
myclusternn1node1 �>(�>
cZxid = 0x200000007
ctime = Sun Sep 13 04:17:51 CST 2020
mZxid = 0x200000007
mtime = Sun Sep 13 04:17:51 CST 2020
pZxid = 0x200000007
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x17483f2c1de0001
dataLength = 29
numChildren = 0
node1上杀死namenode的进程
kill -9 pid
查看node4 get /hadoop-ha/mycluster/ActiveStandbyElectorLock
node2已经称为namenode
恢复
hadoop-daemon.sh start namenode
node1已经standby
50070不能访问一般是
1.hdfs-site.xml
增加如下内容:
<property>
<name>dfs.namenode.http.address</name>
<value>slave1:50070</value>
</property>
2.关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
访问:
http://192.168.0.200:50070
http://masterhost:50070
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/140825.html