当前位置:   article > 正文

搭建hadoop的高可用性(HA)集群_hadoop高可用最少几台

hadoop高可用最少几台

本文为传智播客八天——第五天学习笔记

因为电脑配置问题,只能同时运行三台虚拟机。三台是hadoop高可用性集群的最小数目。不能再少了。

前期准备:

1、修改linux主机名和IP

2、修改主机名和IP的映射关系

3、关闭防火墙

4、ssh免登录

5、安装JDK,配置环境变量


集群规划:

主机名                             IP                                     安装的软件                                         运行的进程

hadoop-master         172.16.123.1           JDK、hadoop、zookeeper      namenode、DFSZKFailoverController(zkfc)、QuorumPeerMain、JournalNode、DataNode

hadoop-slave1         172.16.123.128       JDK、hadoop、zookeeper      namenode、DFSZKFailoverController(zkfc)、QuorumPeerMain、JournalNode、DataNode、ResourceManager

hadoop-slave2         172.16.123.128       JDK、hadoop、zookeeper                                                                           QuorumPeerMain、JournalNode、DataNode、ResourceManager


1、安装hadoop集群(在hadoop-master上配置)

2.1修改hadoop-env.sh

export JAVA_HOME=/home/kun/soft/jdk1.8.0_60

2.2、修改core-site.xml

</pre><pre>

  1. <configuration>
  2. <!--指定hdfs的nameservice为ns1-->
  3. <property>
  4. <name>fs.default.name</name>
  5. <value>hdfs://ns1/</value>
  6. </property>
  7. <pre name="code" class="html"><!--指定hadoop的临时目录-->
  8. <property>
  9. <name>hadoop.tmp.dir</name>
  10. <value>/home/kun/soft/hadoop-2.7.1/tmp</value>
  11. </property>
  12. <!--指定zookeeper的地址-->
  13. <property>
  14. <name>ha.zookeeper.quorum</name>
  15. <value>hadoop-master:2181,hadoop-slave1:2181,hadoop-slave2:2181</value>
  16. </property>
  17. </configuration>

 
 

2.3、修改hdfs-site.xml

  1. <configuration>
  2. <!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->
  3.     <property>
  4.         <name>dfs.nameservices</name>
  5.         <value>ns1</value>
  6.     </property>
  7. <!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
  8.     <property>
  9.         <name>dfs.ha.namenodes.ns1</name>
  10.         <value>nn1,nn2</value>
  11.     </property>
  12. <!-- nn1的RPC通信地址 -->
  13.     <property>
  14.         <name>dfs.namenode.rpc-address.ns1.nn1</name>
  15.         <value>hadoop-master:9000</value>
  16.     </property>
  17. <!-- nn1的http通信地址 -->
  18.     <property>
  19.         <name>dfs.namenode.http-address.ns1.nn1</name>
  20.         <value>hadoop-master:50070</value>
  21.     </property>
  22. <!-- nn2的RPC通信地址 -->
  23.     <property>
  24.         <name>dfs.namenode.rpc-address.ns1.nn2</name>
  25.         <value>hadoop-slave1:9000</value>
  26.     </property>
  27. <!-- nn2的http通信地址 -->
  28.     <property>
  29.         <name>dfs.namenode.http-address.ns1.nn2</name>
  30.         <value>hadoop-slave1:50070</value>
  31.     </property>
  32. <!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
  33.     <property>
  34.         <name>dfs.namenode.shared.edits.dir</name>
  35.         <value>qjournal://hadoop-master:8485;hadoop-slave1:8485;hadoop-slave2:8485/ns1</value>
  36.     </property>
  37. <!-- 指定JournalNode在本地磁盘存放数据的位置 -->
  38.     <property>
  39.         <name>dfs.journalnode.edits.dir</name>
  40.         <value>/home/kun/soft/hadoop-2.7.1/journaldata</value>
  41.     </property>
  42. <!-- 开启NameNode失败自动切换 -->
  43.     <property>
  44.         <name>dfs.ha.automatic-failover.enabled</name>
  45.         <value>true</value>
  46.     </property>
  47. <!-- 配置失败自动切换实现方式 -->
  48.     <property>
  49.         <name>dfs.client.failover.proxy.provider.ns1</name>
  50.         <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  51.     </property>
  52. <!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->
  53.     <property>
  54.         <name>dfs.ha.fencing.methods</name>
  55.         <value>
  56.             sshfence
  57.             shell(/bin/true)
  58.         </value>
  59.     </property>
  60. <!-- 使用sshfence隔离机制时需要ssh免登陆 -->
  61.     <property>
  62.         <name>dfs.ha.fencing.ssh.private-key-files</name>
  63.         <value>/home/kun/.ssh/id_rsa</value>
  64.     </property>
  65. <!-- 配置sshfence隔离机制超时时间 -->
  66.     <property>
  67.         <name>dfs.ha.fencing.ssh.connect-timeout</name>
  68.         <value>30000</value>
  69.     </property>
  70. </configuration>

2.4、 将mapred-site.xml.template修改mapred-site.xml

  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. </configuration>


2.5、修改yarn-site.xml

  1. <configuration>
  2. <!-- 开启RM高可用 -->
  3.     <property>
  4.         <name>yarn.resourcemanager.ha.enabled</name>
  5.         <value>true</value>
  6.     </property>
  7. <!-- 指定RM的cluster id -->
  8.     <property>
  9.         <name>yarn.resourcemanager.cluster-id</name>
  10.         <value>yrc</value>
  11.     </property>
  12. <!-- 指定RM的名字 -->
  13.     <property>
  14.         <name>yarn.resourcemanager.ha.rm-ids</name>
  15.         <value>rm1,rm2</value>
  16.     </property>
  17. <!-- 分别指定RM的地址 -->
  18.     <property>
  19.         <name>yarn.resourcemanager.hostname.rm1</name>
  20.          <value>hadoop-slave1</value>
  21.     </property>
  22.     <property>
  23.         <name>yarn.resourcemanager.hostname.rm2</name>
  24.         <value>hadoop-slave2</value>
  25.     </property>
  26. <!-- 指定zk集群地址 -->
  27.     <property>
  28.         <name>yarn.resourcemanager.zk-address</name>
  29.         <value>hadoop-master:2181,hadoop-slave1:2181,hadoop-slave2:2181</value>
  30.     </property>
  31.     <property>
  32.         <name>yarn.nodemanager.aux-services</name>
  33.         <value>mapreduce_shuffle</value>
  34.     </property>
  35. </configuration>


2.6、修改slaves

  1. hadoop-master
  2. hadoop-slave1
  3. hadoop-slave2

3 、将hadoop-2.7.1拷贝到hadoop-slave1和hadoop-slave2上面

拷贝之前可以讲share中的doc文档删除,提高拷贝速度


4、配置zookeeper

见这里http://blog.csdn.net/beidiqiuren/article/details/51234325


5、启动zookeeper集群(在hadoop-master、hadoop-slave1、hadoop-slave2中都要启动)

nanda@hadoop-master:~/soft/zookeeper-3.4.5/bin$ ./zkServer.sh start
三台虚拟机都启动以后,查看状态,如果一个leader,两个follower则为正常的
nanda@hadoop-master:~/soft/zookeeper-3.4.5/bin$ ./zkServer.sh status


6、 启动journalnode(在hadoop-master、hadoop-slave1、hadoop-slave2中都要启动)

nanda@hadoop-master:~/soft/hadoop-2.7.1/sbin$ ./hadoop-daemon.sh start journalnode
此时查看jps有三个进程

  1. 6725 Jps
  2. 6460 QuorumPeerMain
  3. 6671 JournalNode


7、格式化HDFS

在hadoop-master上执行命令(也可以在hadoop-slave1上执行)

hdfs namenode -format
格式化后会根据core-site.xml中的hadoop.tmp.dir配置生成文件,这里配置的是 home/kun/soft/hadoop-2.7.1/tmp 。为了保持两台namenode的fsimage初始值完全一致,所以需要将/home/kun/soft/hadoop-2.7.1/tmp 文件拷贝到hadoop-slave1的相应的文件夹下(因为namenode只需要在hadoop-master和hadoop-slave1上启动,所以不需要拷贝到hadoop-slave2上)

也可以在hadoop-slave1上执行

hdfs namenode -bootstrapStandby
会自动拷贝hadoop-master上的namenode文件


总算成功了,这一步耽搁了三天。不知道怎么错的,总是格式化失败。最后只好把虚拟机删了,重新配置环境。


8、格式化ZKFC(ZKFC做两个namenode的失败切换管理)

在hadoop-master上执行

hdfs zkfc -formatZK
zkfc会在zookeeper上写一些东西,可以在zookeeper下的bin目录中查看
./zkCli.sh
ls /
如果有hadoop-ha则证明格式化成功了,此时hadoop-ha内应该是没有数据的。


9、启动HDFS

在hadoop-master上执行

start-dfs.sh
如果出现The authenticity of host 'hadoop-master (172.16.123.1)' can't be established.请查看此http://blog.csdn.net/kimsoft/article/details/5865418

此时hadoop-master上的进程有Jps、JournalNode、 DataNode、 NameNode、QuorumPeerMain、DFSZKFailoverController
hadoop-slave1上的进程有Jps、JournalNode、 DataNode、 NameNode、QuorumPeerMain、DFSZKFailoverController

hadoop-slave2上的进程有JournalNode、QuorumPeerMain、 Jps、DataNode

10、启动yarn

在hadoop-slave1和hadoop-slave2上启动,namenode和resourcemanager都需要占用大量的资源,条件允许的情况下把它们在不同的机器上启动

start-yarn.sh
此时hadoop-slave1和hadoop-slave2上都多处了resourcemanager进程

此时,HA下的hadoop就搭建完成了。可以通过浏览器来访问

hadoop-master:50070

hadoop-slave1:8088



在eclipse测试一下文件的上传

  1. import java.net.URI;
  2. import org.apache.hadoop.conf.Configuration;
  3. import org.apache.hadoop.fs.FileSystem;
  4. import org.apache.hadoop.fs.Path;
  5. public class HdfsUtilHA {
  6. public static void main(String[] args) throws Exception {
  7. Configuration conf = new Configuration();
  8. FileSystem fs = FileSystem.get(new URI("hdfs://ns1/"),conf); //FileSystem.get(URI,conf,"身份");
  9. fs.copyFromLocalFile(new Path("/home/kun/exam/a"), new Path("hdfs://ns1/"));
  10. }
  11. }
成功

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/873324
推荐阅读
相关标签
  

闽ICP备14008679号