1. 程式人生 > >8.大資料學習之旅——hadoop-Hadoop完全分散式配置

8.大資料學習之旅——hadoop-Hadoop完全分散式配置

Hadoop完全分散式配置


在這裡插入圖片描述

  1. 關閉防火牆
  2. 修改主機名
  3. 配置hosts檔案。將需要搭建叢集的主機全部配置到hosts檔案中
192.168.32.138 hadoop01
192.168.32.139 hadoop02
192.168.32.140 hadoop03
  1. 配置免密登入
  2. 安裝jdk
  3. 安裝zk
  4. 配置Hadoop
    1. 編輯hadoop-env.sh,並且重新生效
    2. 編輯core-site.xml
<!--指定hdfs的nameservice,為整個叢集起一個別名-->
<property> <name>fs.defaultFS</name> <value>hdfs://ns</value> </property> <!--指定Hadoop資料臨時存放目錄--> <property> <name>hadoop.tmp.dir</name> <value>/home/software/hadoop-2.7.1/tmp</value> </property> <!--指定zookeeper的存放地址-->
<property> <name>ha.zookeeper.quorum</name> <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value> </property>
  1. 編輯hdfs-site.xml
<!--執行hdfs的nameservice為ns,注意要和core-site.xml中的名稱保持一致-->
<property>
<name>dfs.nameservices</name>
<value
>
ns</value> </property> <!--ns叢集下有兩個namenode,分別為nn1, nn2--> <property> <name>dfs.ha.namenodes.ns</name> <value>nn1,nn2</value> </property> <!--nn1的RPC通訊--> <property> <name>dfs.namenode.rpc-address.ns.nn1</name> <value>hadoop01:9000</value> </property> <!--nn1的http通訊--> <property> <name>dfs.namenode.http-address.ns.nn1</name> <value>hadoop01:50070</value> </property> <!-- nn2的RPC通訊地址 --> <property> <name>dfs.namenode.rpc-address.ns.nn2</name> <value>hadoop02:9000</value> </property> <!-- nn2的http通訊地址 --> <property> <name>dfs.namenode.http-address.ns.nn2</name> <value>hadoop02:50070</value> </property> <!--指定namenode的元資料在JournalNode上存放的位置,這樣,namenode2可以從journalnode集 群裡的指定位置上獲取資訊,達到熱備效果--> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/ns</value> </property> <!-- 指定JournalNode在本地磁碟存放資料的位置 --> <property> <name>dfs.journalnode.edits.dir</name> <value>/home/software/hadoop-2.7.1/tmp/journal</value> </property> <!-- 開啟NameNode故障時自動切換 --> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> <!-- 配置失敗自動切換實現方式 --> <property> <name>dfs.client.failover.proxy.provider.ns</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvid er</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> <!--配置namenode存放元資料的目錄,可以不配置,如果不配置則預設放到hadoop.tmp.dir下--> <property> <name>dfs.namenode.name.dir</name> <value>file:///home/software/hadoop-2.7.1/tmp/hdfs/name</value> </property> <!--配置datanode存放元資料的目錄,可以不配置,如果不配置則預設放到hadoop.tmp.dir下--> <property> <name>dfs.datanode.data.dir</name> <value>file:///home/software/hadoop-2.7.1/tmp/hdfs/data</value> </property> <!--配置複本數量--> <property> <name>dfs.replication</name> <value>3</value> </property> <!--設定使用者的操作許可權,false表示關閉許可權驗證,任何使用者都可以操作--> <property> <name>dfs.permissions</name> <value>false</value> </property>
  1. 編輯mapred-site.xml
<property>  
<name>mapreduce.framework.name</name>  
<value>yarn</value>  
</property>
  1. 編輯yarn-site.xml
<!--配置yarn的高可用-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!--指定兩個resourcemaneger的名稱-->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!--配置rm1的主機-->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hadoop01</value>
</property>
<!--配置rm2的主機-->
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hadoop03</value>
</property>
<!--開啟yarn恢復機制-->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<!--執行rm恢復機制實現類-->
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</
value>
</property>
<!--配置zookeeper的地址-->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
<!--執行yarn叢集的別名-->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>ns-yarn</value>
</property>
<!-- 指定nodemanager啟動時載入server的方式為shuffle server -->
<property>  
<name>yarn.nodemanager.aux-services</name>  
<value>mapreduce_shuffle</value>  
</property> 
<!-- 指定resourcemanager地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop03</value>
</property>
  1. 編輯slaves
hadoop01
hadoop02
hadoop03
  1. 拷貝到其他節點上
  2. 啟動zookeeper
  3. 格式化zookeeper
hdfs zkfc -formatZK
  1. 啟動journalnode
hadoop-daemon.sh start journalnode
  1. 在第一臺節點上格式化並啟動namenode
hadoop namenode -format
hadoop-daemon.sh start namenode
  1. 在第二個節點上格式化啟動namenode
hdfs namenode -bootstrapStandby
hadoop-daemon.sh start namenode
  1. 三臺節點啟動datanode
hadoop-daemon.sh start datanode
  1. 在第一臺節點和第二節點上啟動zkfc(FailoverController)
hadoop-daemon.sh start zkfc
  1. 在第一個節點上啟動yarn
start-yarn.sh
  1. 在第三個節點上啟動resourcemanager
yarn-daemon.sh start resourcemanager

需要hadoop叢集的請在部落格中搜索
Hadoop叢集中需要編輯的檔案.part1.rar
Hadoop叢集中需要編輯的檔案.part2.rar
兩部分壓縮包,然後解壓

上一篇 7.大資料學習之旅——hadoop-MapReduce