hadoop-spark集群安装---3.hadoop的HA安装(高可用)

一、准备

1.上传hadoop-2.7.3.tar.gz到node01:/tools

2.tar -zxvf /ren/hadoop-2.7.3.tar.gz -C /ren/

 

二、配置

1.修改变量

  vi etc/profile

  export HADOOP_HOME=/ren/hadoop-2.7.3

  export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

  source /etc/profile

 

cd /ren/hadoop-2.7.3/etc/hadoop开始修改配置

2.修改 hadoop-env.sh

  vi hadoop-env.sh

  export JAVA_HOME=/usr/java/jdk1.8.0_101

 

3.修改salves

  vi salve

  添加 node01  

         node02

         node03

 

4.修改core-site.xml

<configuration>

    <property>

         <!--  ///hdfs的nameservice -->

        <name>fs.defaultFS</name>   

       <value>hdfs://ren</value>   

  </property>

    <property>

         <!--  //zookeeper地址 -->

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

      <value>node01:2181,node02:2181,node03:2181</value>

  </property>

  <property>

         <!--  //hadoop临时文件目录 -->

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

        <value>/ren/hadoop-2.7.3/tmpdir</value>

  </property>

</configuration>

 

5.修改hdfs-site.xml

<configuration>

  <!-- dfs.nameservices 命名空间的逻辑名称,多个用,分割 -->

  <property>

    <name>dfs.nameservices</name>

    <value>ren</value>

  </property>

  <!-- 指定ren下有两个namenode,分别是nn1,nn2 -->

  <property>

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

    <value>nn1,nn2</value>

  </property>

  <!-- 指定nn1的RPC通信地址 -->

  <property>

    <name>dfs.namenode.rpc-address.ren.nn1</name>

    <value>node01:8020</value>

  </property>

  <!-- 指定nn1的HTTP通信地址 -->

  <property>

    <name>dfs.namenode.http-address.ren.nn1</name>

    <value>node01:50070</value>

  </property>

  <!-- 指定nn2的RPC通信地址 -->

  <property>

    <name>dfs.namenode.rpc-address.ren.nn2</name>

    <value>node02:8020</value>

  </property>

  <!-- 指定nn2的HTTP通信地址 -->

 

  <property>

    <name>dfs.namenode.http-address.ren.nn2</name>

    <value>node02:50070</value>

  </property>

  <!-- 指定namenode的元数据存放的Journal Node的地址,必须基数,至少三个 -->

  <property>

    <name>dfs.namenode.shared.edits.dir</name>

    <value>qjournal://node01:8485;node02:8485;node03:8485/ren</value>

  </property>

  <!-- journalnode地址-->

  <property>

    <name>dfs.journalnode.edits.dir</name>

    <value>/ren/hadoop-2.7.3/journal</value>

  </property>

  <!-- namenode启动失败,允许自动切换-->

  <property>

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

    <value>true</value>

  </property>

  <!-- 自动切换方式-->

  <property>

    <name>dfs.client.failover.proxy.provider.ren</name>

    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

  </property>

  <!-- 隔离机制方法-->

  <property>

    <name>dfs.ha.fencing.methods</name>

    <value>sshfence</value>

  </property>

  <!-- 配置隔离需要ssh免密码-->

  <property>

    <name>dfs.ha.fencing.ssh.private-key-files</name>

    <value>/root/.ssh/id_rsa</value>

  </property>

 

</configuration>

 

6.修改mapred-site.xml

   mv mapred-site.xml.template mapred-site.xml

   vi mapred-site.xml

   修改

   <configuration>

         <!-- mr框架由yarn管理-->

     <property>

     <name>mapreduce.framework.name</name>

              <value>yarn</value>

        </property>

   </configuration>

 

7.修改yarn-site.xml

<configuration>

  <!-- 允许高可用-->

  <property>

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

    <value>true</value>

  </property>

  <!--指定mr集群id-->

  <property>

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

    <value>ren_mr</value>

  </property>

  <!-- 指定多个resourcemanager的id-->

  <property>

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

    <value>rm1,rm2</value>

  </property>

  <!-- 分别指定rm的hostname-->

  <property>

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

    <value>node01</value>

  </property>

  <property>

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

    <value>node02</value>

  </property>

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

  <property>

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

    <value>node01:2181,node02:2181,node03:2181</value>

  </property>

  <!-- 指定reducer取数据方式为mapreduce_shuffle-->

  <property>

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

    <value>mapreduce_shuffle</value>

  </property>

</configuration>

 

三、启动

 1.同步

   scp -r /ren/hadoop-2.7.3 root@node02:/ren/

   scp -r /ren/hadoop-2.7.3 root@node03:/ren/

  2. 在各个journalnode节点启动journalnode

   hadoop-daemon.sh start journalnode

  3.选择一个NN节点,格式化,启动

     hdfs namenode -format

     hadoop-daemon.sh start namenode

  4.把格式化后的meta data同步到另一个NN,启动

     hdfs namenode -bootstrapStandby

     hadoop-daemon.sh start namenode

  5.在任意一个NN节点初始化ZK

     hdfs zkfc -formatZK

  6.启动集群

     start-all.sh

关闭集群:stop-all.sh

查看namenode状态:http://noed01:50070

查看yarn状态:http://node01:8088

posted @ 2016-12-23 17:25  renjian1995  阅读(843)  评论(0)    收藏  举报