hadoop2.X的ha完全分布式安裝和部署

來源:互聯網
上載者:User

節點分布狀況

hostname

ip

zookeeper

namenode

datanode

journalnode

resourceManager

node1

192.168.139.137

 

y

 

y

Y

node2

192.168.139.138

 

y

 

y

y

node3

192.168.139.139

 

 

y

y

 

node4

192.168.139.140

y

 

y

 

 

node5

192.168.139.141

y

 

y

 

 

node6

192.168.139.142

y

 

 

 

 

zookeeper的安裝和部署

1、  下載並且解壓zookeeper

2、  在zookeeper的conf目錄下建立zoo.cfg   vim ./zoo.cfg

3、  在zoo.cfg中增加

tickTime=2000

dataDir=/opt/zookeeperdata

clientPort=2181

initLimit=5

syncLimit=2

server.1=node1:2888:3888

server.2=node2:2888:3888

server.3=node3:2888:3888

4、  在配置的各台節點dataDir目錄下建立myid檔案添加對應server後的數字

5、  配置zookeeper的環境變數

6、  啟動zookeeperzkServer.sh start  啟動三台

以下為hadoop2.X的部署

編輯hdfs-site.xml增加以下配置

<configuration>

    <property>

        <name>dfs.nameservices</name>

        <value>albert</value>

    </property>

    <property>

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

       <value>nn1,nn2</value>

    </property>

    <property>

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

       <value>node1:8020</value>

    </property>

    <property>

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

       <value>node2:8020</value>

    </property>

    <property>

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

       <value>node1:50070</value>

    </property>

    <property>

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

       <value>node2:50070</value>

    </property>

    <property>

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

       <value>qjournal://node1:8485;node2:8485;node3:8485/albert</value>

    </property>

    <property>

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

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

    </property>

    <property>--如果此處配置的是私密金鑰將會出現串連被拒絕

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

       <value>shell(/bin/true)</value>

    </property>

    <property>

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

       <value>/opt/journalnode</value>

    </property>

    <property>

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

        <value>true</value>

     </property>

</configuration>

<!--不用檢查hdfs的檔案許可權-->

<property>

         <name>dfs.permissions.enabled</name>

         <value>false</value>      </property>

編輯core-site.xml修改訪問為hdfs://albert    --即nameservices

<property>

       <name>fs.defaultFS</name>

       <value>hdfs://albert</value>

    </property>

    <property>

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

       <value>/opt/hadoop_tmp</value>

    </property>

    <property>

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

        <value>node4:2181,node5:2181,node6:2181</value>

     </property>

scp ./* root@node3:/opt/hadoop-2.5.1/etc/hadoop/

配置hadoop環境變數export HADOOP_HOME=/opt/hadoop-2.5.1

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

 

啟動journalnode hadoop-daemon.sh start journalnode   一定要在namenode格式化之前執行此命令

 

5、格式化任一namenode節點 hdfs namenode -format

6、將當前格式化的節點上的/opt/hadoop_tmp複製到另外一台在hdfs-site.xml中配置的主機上scp -r ./hadoop_tmp root@node2:/opt/

7、初始化在HA的任一台namenode的節點上執行      hdfs zkfc –formatZK

8、在設定免密碼登陸上的namenode的節點上啟動hdfs命令     start-dfs.sh

 

 

啟動單節點 hadoop-daemon.sh start namenode 

啟動整個叢集 start-dfs.sh      停止整個叢集   stop-all.sh

 

二 、hadoop 核心組件 MapReduce 分布式離線計算架構 移動計算而不移動資料

MapReduce->執行步驟 split(分割)->map(映射即你寫的程式,執行java代碼的一段線程 map task)->shuffling(洗牌:排序,分組,合并)->reduce(歸約/計算通過線程執行reduce task)

 

1、  配置yarn-site.xml

<property>

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

  <value>mapreduce_shuffle</value>

</property>

 <property>

<property>

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

  <value>true</value>

 </property>

 <property>

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

  <value>yarnablert</value>

 </property>

 <property>

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

  <value>rm1,rm2</value>

 </property>

 <property>

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

  <value>node5</value>

 </property>

 <property>

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

  <value>node6</value>

 </property>

 <property>

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

  <value>node4:2181,node5:2181,node6:2181</value>

 </property>

配置mapred-site.xml

 

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

啟動yarn時需要單獨啟動resourceManage啟動命令

start-yarn.sh

啟動另外一台  yarn-daemon.sh start resourcemanager

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.