您的位置:首页 > 运维架构 > 网站架构

hadoop2.7.3 HA高可用集群安装

2016-12-20 22:16 246 查看
hadoop2.7.3 HA高可用集群安装HDFS高可用性(NameNode)


NN必须实现共享元数据才能保证无缝切换;共享元数据可以采用Linux提供的NFS服务,也可以使用Hadoop提供的JournalNode;JournalNode采用多数派理论,保证半数以上的节点写成功即认为成功。
NN要实现自动切换(不需要手工切换),就必须实现实时监控每个节点的状态;这里采用DFSFailoverController进行监控,如果某个NN失败,其他NN能够通过ZK被通知到,并接替NN的任务。

RM高可用性(ResourceManager)


[align=justify]ResourceManager借助zk实现热备,当某个节点失效之后另一个节点能够被通知,并接管任务。[/align]

Hadoop2.7.3 HA搭建步骤

[b]环境准备[/b]所有节点安装jdk1.8,ssh,配置hosts文件,配置centos680和centos681之间的互相免登陆,centos680到其他所有机器的免登陆,关闭防火墙。
在centos682,centos683,centos684上安装Zookeeper3.4.9。

[b]Hadoop安装配置[/b]复制hadoop-2.7.3.tar.gz到centos680的/opt目录下,以后所有的操作都在centos680上进行。
解压hadoop-2.7.3.tar.gz到/opt/bigdata文件夹下:tar –zxvf hadoop-2.7.3.tar.gz –C /opt/bigdata/。

[b]修改配置[/b]

hadoop-env.sh


[align=justify]修改JAVA_HOME[/align]
core-site.xml



hdfs-site.xml

<property>
<name>dfs.nameservices</name>
<value>ns</value>
</property>

<property>
<name>dfs.ha.namenodes.ns</name>
<value>nn1,nn2</value>
</property>

<property>
<name>dfs.namenode.rpc-address.ns.nn1</name>
<value>centos680:9000</value>
</property>

<property>
<name>dfs.namenode.http-address.ns.nn1</name>
<value>centos680:50070</value>
</property>

<property>
<name>dfs.namenode.rpc-address.ns.nn2</name>
<value>centos681:9000</value>
</property>

<property>
<name>dfs.namenode.http-address.ns.nn2</name>
<value>centos681:50070</value>
</property>

<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://zk1:8485;zk2:8485;zk3:8485/ns</value>
</property>

<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/big/hadoop-2.7.3/journaldata</value>
</pr
cf54
operty>

<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>

<property>
<name>dfs.client.failover.proxy.provider.ns</name>
<value>
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>


mapred-side.xml

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>


yarn-site.xml

<configuration>
<!--开启RM高可靠-->

<property>

<name>yarn.resourcemanager.ha.enabled</name>

<value>true</value>

</property>

<!--指定RM的cluster id -->

<property>

<name>yarn.resourcemanager.cluster-id</name>

<value>yrc</value>

</property>

<!--指定RM的名字-->

<property>

<name>yarn.resourcemanager.ha.rm-ids</name>

<value>rm1,rm2</value>

</property>

<!--分别指定RM的地址-->

<property>

<name>yarn.resourcemanager.hostname.rm1</name>

<value>h0</value>

</property>

<property>

<name>yarn.resourcemanager.hostname.rm2</name>

<value>h1</value>

</property>

<!--指定zk集群地址-->

<property>

<name>yarn.resourcemanager.zk-address</name>

<value>h2:2181,h3:2181,h4:2181</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

</configuration>


slaves



分发到其他节点(在centos680上操作)

  scp -r /opt/bigdata/hadoop-2.7.3/ h1:/opt/bigdata/
  scp -r /opt/bigdata/hadoop-2.7.3/ h2:/opt/bigdata/
  scp -r /opt/bigdata/hadoop-2.7.3/ h3:/opt/bigdata/
  scp -r /opt/bigdata/hadoop-2.7.3/ h4:/opt/bigdata/

初始化和启动

到h2,h3,h4启动所有的Zookeeper。

到h2,h3,h4启动JournalNode(hadoop-daemon.sh
start journalnode)

到centos680上执行格式化namenode(hdfs
namenode -format),并将格式化后的元数据内容复制到另外一个namenode节点中(h1):scp
-r tmp/ h1:/opt/bigdata/hadoop-2.7.3/(tmp是在core-site中配置的namenode元数据应该所处的位置)

格式化zk:bin/hdfs
zkfc –formatZK。该操作在Zookeeper中创建了数据节点:



启动dfs和yarn

sbin/start-dfs.sh

sbin/start-yarn.sh

验证

  通过杀死active的namenode进程或者关闭namenode所在机器来验证切换情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: