您的位置:首页 > 大数据 > Hadoop

HDFS集群搭建(HA)与启动

2017-06-24 12:29 375 查看
在文章http://blog.csdn.net/u013063153/article/details/73611549写到了非HA集群的搭建。

现利用Zookeeper做HA,搭建HDFS集群。需要修改之前的配置。

1.进入etc/hadoop/目录,干掉masters文件(此文件是存放Secondary NameNode的)

cd etc/hadoop/

rm -rf /home/hadoop-2.5.1/etc/hadoop/masters



2.删除数据文件(/opt/hadoop-2.5)

rm -rf /opt/hadoop-2.5

3.编辑hdfs-site.xml

vim hdfs-site.xml

删除之前的所有操作

:.,$-1d

(1)配置NameService ID,目的是在zookeeper中区分不同的服务,value名字随便取,比如此处写个myhdfscluster

<property>

  <name>dfs.nameservices</name>

  <value>myhdfscluster</value>

</property>

(2)定义两个NameNode

<property>

  <name>dfs.ha.namenodes.myhdfscluster</name>

  <value>nn1,nn2</value>

</property>

<property>
  <name>dfs.ha.namenode.rpc-address.myhdfscluster.nn1</name>
  <value>node1:8020</value>
</property>

<property>
  <name>dfs.ha.namenode.rpc-address.myhdfscluster.nn2</name>
  <value>node5:8020</value>
</property>

<property>
  <name>dfs.ha.namenode.http-address.myhdfscluster.nn1</name>
  <value>node1:50070</value>
</property>

<property>
  <name>dfs.ha.namenode.http-address.myhdfscluster.nn2</name>
  <value>node5:50070</value>
</property>

<property>
  <name>dfs.namenode.shared.edits.dir</name>
  <value>qjuournal://node3:8485;node4:8485;node5:8485/abc(这个文件名随便取)</value>

</property>
<property>

  <name>dfs.client.failover.proxy.provider.myhdfscluster</name>
  <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

<property>

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

<property>
  <name>dfs.ha.fencing.ssh.private-key-files</name>
  <value>/root/.ssh/id_rsa</value>
</property>
<property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/opt/journalnode</value>
</property>

4.编辑core-site.xml

vim core-site.xml

<property>

  <name>fs.defaultFS</name>

  <value>hdfs://myhdfscluster</value>(NameServiceID)

</property>

<property>

  <name>hadoop.tmp.dir</name>

  <value>/opt/hadoop-2.5</value>

</property>

5.自动切换,编辑hdfs-site.xml
vim hdfs-site.xml

<property>

  <name>dfs.ha.automatic-failover.enabled</name>

  <value>true</value>

</property>

6.配置HA集群,修改core-site.xml文件

vim core-site.xml

<property>

  <name>ha.zookeeper.quorum</name>

  <value>node1:2181,node3:2181,node4:2181</value>

</property>

7.slaves文件

vim slaves

node3

node4

node5



8.拷贝配置文件到其他的几台机器

scp ./* root@node3:/home/hadoop-2.5.2/etc/hadoop/

scp ./* root@node4:/home/hadoop-2.5.2/etc/hadoop/


scp ./* root@node5:/home/hadoop-2.5.2/etc/hadoop/

9.启动JournalNode,配置quournal://node3:8485;node4:8485;node5:8485写到的三台机器是JournalNode

在3台机器上分别运行:

hadoop-daemon.sh start journalnode

(停止的命令是hadoop-daemon.sh stop journalnode)



10.检查journalnode启动情况,只能是查看日志

tail -200 hadoop-root-journalnode-node3.log

11.格式化NameNode

随便找一个格式化,这里选node5

在node5上运行

hdfs namenode -format

12.把node5上生成的fsimage文件拷贝到node1上去

在/opt/hadoop-2.5路径下

scp -r /root@node5:/opt/hadoop-2.5 /root/opt/

13.初始化HA,格式化zookeeper

在任意一个NameNode上(现在选择node1)执行:

hdfs zkfc -formatZK

14.启动hdfs

start-dfs.sh

日志显示:

node1,node5 两个namenodes 已经启动

node3,node4,node5三个DataNode已经启动

node3,node4,node5三个journalnode已经启动

node1,node5两个zkfc已经启动

在某一台机器上,单个启动datanode的命令是:

hadoop-daemon.sh startdatanode



无法状态切换,是FailoverController出问题了,查看FailoverController日志

cd /home/hadoop-2.5.1/

tail -100 logs/hadoop-root-zkfc-node5.log
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: