hadoop2集群搭建+HA配置

来源:互联网 发布:瓷砖软件 编辑:程序博客网 时间:2024/04/28 00:05

linux环境:redhat6.3   master slave1,slave2,slave3四台机器

zookeeper3.4.5集群:slave1,slave2,slave3三个节点

journalnode集群:slave1,slave2,slave3三个节点

hadoop namenode HA:master,slave1两个节点

hadoop datanode:master slave1,slave2,slave3四个节点

1.首先需要安装jdk,配置免秘钥登录,安装zookeeper集群,前面的博客有写过这里就不写了。

2.下载安装hadoop2.7.1

tar -zxvf hadoop-2.7.1-src.tar.gz

3.配置环境变量

vi /etc/profile


4.进入hadoop的配置文件目录

cd /home/hadoop/hadoop-2.7.1/etc/hadoop

5.修改hadoop-env.sh导入JAVA_HOME

vi hadoop-env.sh


6.修改core-site.xml加入如下配置

vi core-site.xml

<configuration>
 <property>
   <name>fs.defaultFS</name>
   <value>hdfs://mycluster</value> #这里的mycluster是hdfs-site.xml里的dfs.nameservices的值,如果配置的是具体的节点名+端口的话hadoop的HA是不可用的。
 </property>
 <property>
   <name>ha.zookeeper.quorum</name>
   <value>slave1:2181,slave2:2181,slave3:2181</value>
 </property>
</configuration>

7.修改hdfs-site.xml加入如下配置,配置太多了只能上代码了。

vi hdfs-site.xml

<configuration>
 <property>
     <name>dfs.nameservices</name>
     <value>mycluster</value> 
 </property>
 <property>
      <name>dfs.ha.namenodes.mycluster</name>
      <value>nn1,nn2</value>
 </property>
 <property>
     <name>dfs.namenode.rpc-address.mycluster.nn1</name>
     <value>master:8020</value>
 </property>
 <property>
     <name>dfs.namenode.rpc-address.mycluster.nn2</name>
     <value>slave1:8020</value>
 </property>
 <property>
     <name>dfs.namenode.http-address.mycluster.nn1</name>
     <value>master:50070</value>
 </property>
 <property>
     <name>dfs.namenode.http-address.mycluster.nn2</name>
     <value>slave1:50070</value>
 </property>
 <property>
      <name>dfs.namenode.name.dir</name>
      <value>file:///home/hadoop/hdfs/name</value>
 </property>
 <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:///home/hadoop/hdfs/data</value>
 </property>
 <property>
   <name>dfs.namenode.shared.edits.dir</name>
   <value>qjournal://slave1:8485;slave2:8485;slave3:8485/mycluster</value>
 </property>
 <property>
     <name>dfs.journalnode.edits.dir</name>
     <value>/home/hadoop/hdfs/journal</value>
 </property>
 <property>
     <name>dfs.ha.automatic-failover.enabled</name>
     <value>true</value>
 </property>
 <property>
  <name>dfs.client.failover.proxy.provider.mycluster</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>/home/hadoop/.ssh/id_rsa</value>
 </property>
 <property>
      <name>dfs.replication</name>
      <value>2</value>
 </property>
</configuration>

8.修改mapred-site.xml加入如下配置


9.修改yarn-site.xml加入如下配置

vi yarn-site.xml

<configuration>
  <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
  </property>
  <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
  </property>
  <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
  </property>
  <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
  </property>
  <property>
        <name>yarn.resourcemanager.webapp.https.address</name>
        <value>master:8090</value>
  </property>

  <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
  </property>
  <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
  </property>
  <property>
        <name>yarn.resourcemanager.scheduler.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
  </property>
  <property>
        <name>yarn.scheduler.fair.allocation.file</name>
        <value>/home/hadoop/hadoop-2.7.1/etc/hadoop/fairscheduler.xml</value>
  </property>
  <property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>/home/hadoop/yarn/local</value>
  </property>
  <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
  </property>
  <property>
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>/tmp/logs</value>
  </property>
  <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>4096</value>
  </property>
  <property>
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>4</value>
  </property>

<!-- Site specific YARN configuration properties -->
  <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
  </property>
</configuration>

10.修改slaves把datanode节点机器全部加进去

vi slaves


11.启动zookeeper集群(slave1,slave2,slave3节点)

cd /home/hadoop/zookeeper-3.4.5/bin/

./zkServer.sh start

./zkServer.sh status验证是否启动成功

12.启动journalnode集群,在slave1,slave2,slave3节点的hadoop目录下分别执行如下命令

sbin/hadoop-daemon.sh start journalnode

13.格式化第一个namenode并启动(master节点)

bin/hdfs namenode -format

sbin/hadoop-daemon.sh start namenode

14.将第一个namenode节点的数据同步到第二个namenode节点(slave1节点)并启动

bin/hdfs namenode -bootstrapStandby

sbin/hadoop-daemon.sh start namenode

15.在两个namenode节点启动zookeeperFailoverCotroller

sbin/hadoop-daemon.sh start zkfc

16.在master节点启动所有的datanode

sbin/hadoop-daemons.sh start datanode

17.在master节点上启动yarn

sbin/start-yarn.sh

18.最后验证HA是否可用

kill掉处于active状态的namenode节点,看standby节点的namenode是否能切换成active状态。

OK,暂时没上传图哈哈,先写到这!




0 0
原创粉丝点击