hadoop-2.7.2-HA安裝筆記


配置方案如圖

 

NN

DN

ZK

ZKFC

JN

RM

NM(任務管理器)

 HMaster

 Region Server

Node1

1

 

1

1

 

1

 

 

 1

Node2

1

1

1

1

1

 

1

 

 1

Node3

 

1

1

 

1

 

1

 1

 1

Node4

 

1

 

 

1

 

1

 1

 1

一、進入hadoop2.7/etc/hadoop/文件夾,修改hadoop-env.sh的JAVA_HOME路徑。

二、 修改hdfs-site.xml配置文件

  1、配置命名服務

<property>
  <name>dfs.nameservices</name>
  <value>mycluster</value>
</property>

2、配置所有namenode名字
<property>
  <name>dfs.ha.namenodes.mycluster</name>
  <value>nn1,nn2</value>
</property>

3、配置RPC協議端口

<property> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>node1:8020</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>node2:8020</value> </property>

4、配置http端口

<property> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>node1:50070</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>node2:50070</value> </property>

5、配置journalname的uri

<property>
  <name>dfs.namenode.shared.edits.dir</name>
  <value>qjournal://node2:8485;node3:8485;node4:8485/mycluster</value>
</property>

6、配置客戶端使用的類
<property>
  <name>dfs.client.failover.proxy.provider.mycluster</name>
  <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

7、配置sshfence

<property>
  <name>dfs.ha.fencing.methods</name>
  <value>sshfence</value>
</property>
<property>
  <name>dfs.ha.fencing.ssh.private-key-files</name>
  <value>/root/.ssh/id_dsa</value>
</property>

8、配置journalname的工作目錄

<property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/opt/journalname/data</value>
</property>

9、開啟自動切換
<property>
   <name>dfs.ha.automatic-failover.enabled</name>
   <value>true</value>
 </property>

三、配置core-site.xml配置文件

1、配置namenode入口

<property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property>

2、配置zookeeper集群的位置

<property>
   <name>ha.zookeeper.quorum</name>
   <value>node1:2181,node2:2181,node3:2181</value>
 </property>

3、配置hadoop的工作目錄

<property>
   <name>hadoop.tmp.dir</name>
   <value>/opt/hadoop2</value>
 </property>

四、配置slaves
node2
node3
node4

五、進入zookeeper的conf/zoo.cfg 配置zookeeper集群

1、
dataDir=/opt/zookeeper
2、
server.1=node1:2888:3888 server.2=node2:2888:3888 server.3=node3:2888:3888
3、創建mkdir /opt/zookeeper,創建一個文件myid
里面寫上機器編號(node1里寫1,Node2里寫2)每台zookeeper機器都要創建
4、在etc/profile配置zookeeper的環境變量
export PATH=$PATH:/home/zookeeper-3.4.6/bin

六、啟動集群

1、啟動zookeeper集群,裝有zookeeper都要啟動,在zookeeper/bin/zkServer.sh start

2、啟動JournalNode daemons(僅在所在的機器啟動)
hadoop/sbin/
./hadoop-daemon.sh start journalnode

3、格式化namenode(任意一個)
hadoop/bin/
./hdfs namenode -format
然后啟動這個節點,復制到另一個節點
 ./hadoop-daemon.sh start namenode
在另一台沒有格式化的機器執行
hadoop/bin下
 ./hdfs namenode -bootstrapStandby

4、停止hdfs的所有服務
./stop-dfs.sh

5、初始化zkfc
./hdfs zkfc -formatZK

6、啟動hdfs
 ./start-dfs.sh
七、配置mapreduce

1、 mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
2、yarn-site.xml
<property>
     <name>yarn.resourcemanager.hostname</name>
     <value>node1</value>
</property>
<property>
     <name>yarn.nodemanager.aux-services</name>
     <value>mapreduce_shuffle</value>
</property>
<property>
     <name>yarn.nodemanager.aux-services.shuffle.class</name>
     <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

八、配置hbase

1、修改
hbase-env.sh的Javahome
和export HBASE_MANAGES_ZK=false



2.修改hbase-site.xml
<property>
   
<name>hbase.rootdir</name>
 
<value>hdfs://node1:8020/hbase</value>
 
</property>

<property>

 <name>hbase.cluster.distributed</name>
  
  <value>true</value>

</property>
<property>
    
  <name>hbase.zookeeper.quorum</name>
   
   <value>node1,node2,node3</value>
  
  </property>
 
   <property>
    
  <name>hbase.zookeeper.property.dataDir</name>
  
    <value>/opt/zookeeper</value>
  
  </property>


3、修改regionservers
node1
node2
node3
node4

4、復制hdfss-site.xml到hbase/conf下

5、啟動hbase
隨意一台機器都可以啟動,啟動的那台機器為hmaster
./start-hbase.sh
也可以在其他機器增加hmaster
./hbase-daemon.sh start master



其他:
一些/etc/profile變量
export HADOOP_HOME=/home/hadoop-2.7.2
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOOME/sbin:$HADOOP_HOME/lib
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

遇到的問題:
1、安裝過程有些步驟需要關閉防火牆
2、雖然我在64位的linux上重新編譯了hadoop,並跟蹤編譯后端hadoop2.7.2進行部署。部署后啟動,但出現了警告:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
該警告通過如下方法消除了:
在hadoop-env.sh中 修改HADOOP_OPTS:
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib:$HADOOP_PREFIX/lib/native"


博文地址:http://julyme.com/c/hadoop_2_7_2_HA安裝筆記
個人博客地址:http://julyme.com








 
        

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM