天天看點

hadoop3.0高可用HA配置詳解

hadoop3.0高可用HA大資料平台架構硬體和部署方案(一)

http://blog.csdn.net/lxb1022/article/details/78389836

hadoop3.0高可用HA大資料平台架構軟體和部署方案(二)

http://blog.csdn.net/lxb1022/article/details/78399462

1.到官網下載下傳hadoop-3.0.0-beta1.tar.gz

http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.0.0-beta1/hadoop-3.0.0-beta1.tar.gz

2、解壓到安裝目錄/opt/,并配置環境變量:vi  /etc/profile

tar -zxvf hadoop-3.0.0-beta1.tar.gz
#set java env
export JAVA_HOME=/opt/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/rt.jar

#set hadoop env
export HADOOP_HOME=/opt/hadoop-3.0.0-beta1
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
           

3、配置:/opt/hadoop-3.0.0-beta1/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/opt/jdk1.8.0_144
export HADOOP_HOME=/opt/hadoop-3.0.0-beta1
           

4.配置:/opt/hadoop-3.0.0-beta1/etc/hadoop/core-site.xml

<configuration>
    <property> 
        <name>fs.defaultFS</name> 
        <value>hdfs://mycluster</value>
        <description>mycluster唯一辨別hdfs執行個體的nameservice ID的名稱</description>
    </property>
    <property> 
        <name>hadoop.tmp.dir</name> 
        <value>file:///opt/hadoop-3.0.0-beta1/tmp</value>
        <description> 指定hadoop臨時目錄</description>
    </property>
    <property>
        <name>ha.zookeeper.quorum</name>
        <value>zookeeper1:2181,zookeeper2:2181,zookeeper:2181</value>
        <description>指定zookeeper位址</description>
    </property>
</configuration>
           

5、配置:/opt/hadoop-3.0.0-beta1/etc/hadoop/hdfs-site.xml

<configuration>
    <property>
        <name>dfs.nameservices</name>
        <value>mycluster</value>
        <description>指定hdfs的nameservice為mycluster,需要和core-site.xml中的保持一緻</description>
    </property>

    <property>
        <name>dfs.ha.namenodes.mycluster</name>
        <value>nn1,nn2</value>
        <description>mycluster下面有兩個NameNode,分别是nn1,nn2</description>
    </property>


    <property>
        <name>dfs.namenode.rpc-address.mycluster.nn1</name>
        <value>namenode1:9000</value>
        <description>nn1的RPC通信位址</description>
    </property>


    <property>
        <name>dfs.namenode.rpc-address.mycluster.nn2</name>
        <value>namenode2:9000</value>
        <description>nn2的RPC通信位址</description>
    </property>

    <property>
        <name>dfs.namenode.http-address.mycluster.nn1</name>
        <value>namenode1:50070</value>
        <description>nn1的http通信位址</description>
    </property>
    <property>
        <name>dfs.namenode.http-address.mycluster.nn2</name>
        <value>namenode2:50070</value>
        <description>nn2的http通信位址</description>
    </property>

    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://zookeeper1:8485;zookeeper2:8485;zookeeper:8485/mycluster</value>
        <description>指定NameNode的中繼資料在JournalNode上的存放位置</description>
    </property>

    <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/opt/hadoop-3.0.0-beta1/journal</value>
        <description>建立目錄,用于設定journalnode節點儲存本地狀态的目錄,指定journalnode日志檔案存儲的路徑</description>
    </property>

    <property>
        <name>dfs.client.failover.proxy.provider.mycluster</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
        <description>配置失敗自動切換實作方式,指定HDFS用戶端連接配接active namenode的java類</description>
    </property>

    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>sshfence</value>
        <description>配置隔離機制為ssh</description>
    </property>

    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/root/.ssh/id_rsa</value>
        <description>使用隔離機制時需要ssh免密碼登陸,指定秘鑰的位置</description>
    </property>

    <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
        <description>指定支援高可用自動切換機制,開啟自動故障轉移</description>
    </property>

    <property>
        <name>ha.zookeeper.quorum</name>
        <value>zookeeper1:2181,zookeeper2:2181,zookeeper:2181</value>
        <description>指定zookeeper位址</description>
    </property>

    <property> 
        <name>dfs.replication</name>
        <value>3</value>
        <description>指定資料備援份數</description> 
    </property>

    <property> 
        <name>dfs.namenode.name.dir</name> 
        <value>file:///opt/hadoop-3.0.0-beta1/name</value>
        <description>建立name檔案夾,指定namenode名稱空間的存儲位址</description> 
    </property>

    <property> 
        <name>dfs.datanode.data.dir</name> 
        <value>file:///opt/hadoop-3.0.0-beta1/data</value>
        <description>建立data檔案夾,指定datanode資料存儲位址</description> 
    </property>

    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>ture</value>
        <description>指定可以通過web通路hdfs目錄</description>
    </property>

</configuration>
           

6、配置:/opt/hadoop-3.0.0-beta1/etc/hadoop/mapred-site.xml

<configuration>

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

    <property>
        <name>mapreduce.application.classpath</name>
        <value>
         /opt/hadoop-3.0.0-beta1/etc/hadoop,
         /opt/hadoop-3.0.0-beta1/share/hadoop/common/*,
         /opt/hadoop-3.0.0-beta1/share/hadoop/common/lib/*,
         /opt/hadoop-3.0.0-beta1/share/hadoop/hdfs/*,
         /opt/hadoop-3.0.0-beta1/share/hadoop/hdfs/lib/*,
         /opt/hadoop-3.0.0-beta1/share/hadoop/mapreduce/*,
         /opt/hadoop-3.0.0-beta1/share/hadoop/mapreduce/lib/*,
         /opt/hadoop-3.0.0-beta1/share/hadoop/yarn/*,
         /opt/hadoop-3.0.0-beta1/share/hadoop/yarn/lib/*
        </value>
    </property>
</configuration>
           

7、配置:/opt/hadoop-3.0.0-beta1/etc/hadoop/yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        <description>NodeManager上運作的附屬服務,需配置成mapreduce_shuffle才可運作MapReduce</description>
    </property>

    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
        <description>開啟YARN HA</description>
    </property>

    <property>
        <name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
        <value>true</value>
        <description>啟用自動故障轉移</description>
    </property>

    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>yarncluster</value>
        <description>指定YARN HA的名稱</description>
    </property>

    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
        <description>指定兩個resourcemanager的名稱</description>
    </property>

    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>namenode1</value>
        <description>配置rm1的主機</description>
    </property>

    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>namenode2</value>
        <description>配置rm2的主機</description>
    </property>

    <property>
        <name>yarn.resourcemanager.ha.id</name>
        <value>rm1</value>
        <description>namenode1上配置rm1,在namenode上配置rm2</description>
    </property>

    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>zookeeper1:2181,zookeeper2:2181,zookeeper:2181</value>
        <description>配置zookeeper的位址</description>
    </property>

    <property>
        <name>yarn.resourcemanager.store.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
        <description>配置resourcemanager的狀态存儲到zookeeper中</description>
    </property>

    <property>
        <name>yarn.resourcemanager.webapp.address.rm1</name>
        <value>namenode1:8088</value>
    </property>
           

<property> <name>yarn.resourcemanager.webapp.address.rm2</name> <value>namenode2:8088</value> </property></configuration>

7、配置:/opt/hadoop-3.0.0-beta1/etc/hadoop/workers

datanode1
datanode2
datanode3
           

8、将/opt/hadoop-3.0.0-beta1/  複制到各個節點

scp /opt/hadoop-3.0.0-beta1/ [email protected]:/opt/
           

9、格式化hdfs

1.三個ZK節點先啟動Zookeeper
/opt/zookeeper-3.5.3-beta/bin/zkServer.sh start
           
2.接着三個ZK節點啟動journalnode
/opt/hadoop-3.0.0-beta1/sbin/hadoop-daemon.sh start journalnode
           
3.在master節點上執行格式化
格式化namenode:/opt/hadoop-3.0.0-beta1/bin/hdfs namenode -format
格式化高可用:/opt/hadoop-3.0.0-beta1/bin/hdfs zkfc -formatZK
           

10、啟動hadoop :

/opt/hadoop-3.0.0-beta1/sbin/start-all.sh
           

11.檢視各節點程序jps

namenode1和namenode2如下圖:

hadoop3.0高可用HA配置詳解

zk輔助節點程序如下圖:

hadoop3.0高可用HA配置詳解

datanode節點程序如下圖:

hadoop3.0高可用HA配置詳解

12、通過web頁面檢視:

hadoop3.0高可用HA配置詳解
hadoop3.0高可用HA配置詳解
hadoop3.0高可用HA配置詳解

繼續閱讀