Journal Node两大作用
ZK集群
通常需要开辟三个独立端口
ZK集群创建
1.安装zookeeper
2.在每个zk节点创建数据目录,每个数据目录中必须有myid文件,用来唯一标识zk节点
3.数据目录中创建zoo.cfg的配置文件
启动zk服务
1 ./zkServer.sh start /root/zkdata/zoo.cfg
查看集群状态
1 ./zkServer.sh status /root/zkdata/zoo.cfg
在hdfs集群各个节点中的core-site.xml配置namenode,因为已经不是单namenode节点,所以要将hdfs入口稍作修改。以及添加zk监控hadoop的配置。
1 <property> 2 <name>fs.defaultFS</name> 3 <value>hdfs://ns</value> 4 </property> 5 <property> 6 <name>hadoop.tmp.dir</name> 7 <value>/home/zqzhen/hadoop-2.9.2/data</value> 8 </property> 9 <property> 10 <name>ha.zookeeper.quorum</name> 11 <value>zk1:3001,zk2:3001</name> 12 </property>
在hdfs-site.xml中修改相应的namenode别名,启动journal,以及启动隔离机制等等配置。
1 <property> 2 <name>dfs.nameservices</name> 3 <value>ns</value> 4 </property> 5 <property> 6 <name>dfs.ha.namenodes.ns</name> 7 <value>nn1,nn2</value> 8 </property> 9 <property> 10 <name>dfs.namenode.rpc-address.ns.nn1</name> 11 <value>hadoop120:9000</value> 12 </property> 13 <property> 14 <name>dfs.namenode.http-address.ns.nn1</name> 15 <value>hadoop120:50070</value> 16 </property> 17 <property> 18 <name>dfs.namenode.rpc-address.ns.nn2</name> 19 <value>hadoop121:9000</value> 20 </property> 21 <property> 22 <name>dfs.namenode.http-address.ns.nn2</name> 23 <value>hadoop121:50070</value> 24 </property> 25 <property> 26 <name>dfs.namenode.shared.edits.dir</name> 27 <value>qjournal://hadoop120:8485;hadoop121:8485;hadoop122:8485/ns</value> 28 </property> 29 <property> 30 <name>dfs.journalnode.edits.dir</name> 31 <value>/home/zqzhen/journal</value> 32 </property> 33 <property> 34 <name>dfs.ha.automatic-failover.enabled</name> 35 <value>true</value> 36 </property> 37 <property> 38 <name>dfs.client.failover.proxy.provider.ns</name> 39 <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> 40 </property> 41 <property> 42 <name>dfs.ha.fencing.methods</name> 43 <value>sshfence</value> 44 </property> 45 <property> 46 <name>dfs.ha.fencing.ssh.private-key-files</name> 47 <value>/root/.ssh/id_rsa</value> 48 </property>
首先要在namenode的任意节点启动zk集群
hdfs zkfc -formatZK
其次启动journalnode节点,必须要比namenode先启动,这样才能保证同步namenode的写入与读取操作
hadoop-daemon.sh start journalnode
接着在namenode active节点执行namenode的格式化,其中xx为之前在core-site.xml中为namenode们起的别名
hdfs namenode -format xx
在namenode standby节点执行预备格式化操作,否则该机器启动不了namenode
hdfs namenode -bootstrapStandby
原文:https://www.cnblogs.com/zqzhen/p/12720441.html