hadoop2.5.2+zookeeper環境搭建(二)

本教程使用虛擬機搭建共有4臺 ubuntu-14.x 的主機 涉及如下節點:2個namenode, 3-datanode, 3-journalnode, 2-zookeeper, 3-zkfc, 1-ResourceManager, 3-NodeManagerjava

如下全部的配置都是基於 /hadoop2.5.2/etc/hadoop/ 目錄下node

一、配置java環境:在hadoop-env.sh 中修改:linux

export JAVA_HOME=/usr/ib/jvm/default-java

二、HA的配置文件在 hdfs-site.xml文件中:shell

2.一、配置HA的命名服務: 命名空間的邏輯名稱。若是使用HDFS Federation,
     能夠配置多個命 名空間的名稱,使用逗號分開便可。
     
 <property>
     <name>dfs.nameservices</name>
     <value>mycluster</value>
 </property>

 2.2 配置全部namenode名字:命名空間中全部NameNode的惟一標示名稱。
 能夠配置多個,使用逗號分隔。該名稱是可讓DataNode知道每一個集羣的全部NameNode。
 當前,每一個集羣最多隻能配置兩個NameNode。
 
 <property>
     <name>dfs.ha.namenodes.mycluster</name>
     <value>nn1,nn2</value>
 </property>

 2.三、配置namenode的 rpc協議端口和主機:每一個namenode監聽的RPC地址

 <property>
     <name>dfs.namenode.rpc-address.mycluster.nn1</name>
     <value>machine1.example.com:8020</value>
 </property>
 <property>
     <name>dfs.namenode.rpc-address.mycluster.nn2</name>
     <value>machine2.example.com:8020</value> 
 </property>

 2.4 配置namenode的http協議的端口和主機:每一個namenode監聽的http地址,
 若是啓用了安全策略, 也應該對每一個namenode配置htts-address信息,與此相似。

<property>
    <name>dfs.namenode.http-address.mycluster.nn1</name>      
    <value>machine1.example.com:50070</value>
</property>
<property>
    <name>dfs.namenode.http-address.mycluster.nn2</name>
    <value>machine2.example.com:50070</value>
</property>

 2.5 配置journalNodes的的地址: 這是NameNode讀寫JournalNode組的URI, 
 經過這個URI NameNode能夠讀取edit log中的內容, 
 URI的格式: journal://host1:post1;host2:post2;host3:post3/mycluster, 
 其中host(N)是journalNode的地址,至少三個,且是奇數個,mycluster:是集羣的惟一標示

<property>
    <name>dfs.namenode.shared.edits.dir</name
    <value>qjournal://host1:post1;host2:post2;host3:post3/mycluster</value>
</property>

2.6 配置HDFS客服端的java類:這是配置HDFS客戶端鏈接到Active NameNode的一個java類
 <property>
    <name>dfs.client.failover.proxy.provider.mycluster</nam>    
    <value>                  
   org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
    </value>
</property>

 2.7 配置active NameNode出錯時的處理類:當active namenode出錯時通常須要關閉該進程,處理方式能夠是ssh 也能夠是shell. 指定私鑰的位置若是使用ssh,配置以下:

 <property>
     <name>dfs.ha.fencing.methods</name>
     <value>sshfence</value>
 </property>
 <property>
     <name>dfs.ha.fencing.ssh.private-key-files</name>
     <value>/home/exampleuser/.ssh/id_rsa</value>
 </property>

2.8 配置journalNode的工做目錄:這是JournalNode進程保持邏輯狀態的路徑。這是在linux服務器文件的絕對路徑。
<property>
    <name>dfs.journalnode.edits.dir</name
    <value>/path/to/journal/node/local/data</value>
</property>

2.9 配置NameNode的自動切換:
 
 <property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
</property>

三、core-site.xml 中配置:apache

3.1 配置NameNode的入口:

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

3.2 配置zookeeper:

 <property>
     <name>ha.zookeeper.quorum</name
     <value>zk1:2181,zk2:2181,zk3:2181</value>
 </property>

3.3 修改hdfs的默認工做目錄:bootstrap

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

四、zookeeper的配置:conf目錄下(此處是zookeeper的安裝目錄下)ubuntu

4.1 zoo-sample.cfg 文件中修改datadir屬性:
 這是zookeeper的工做目錄/opt/zookeeper

 4.2 zoo- 下增長:zookeeper(N)是zookeeper服務的一個標記,
     一、二、3是zookeeper服務的num,須要在datadir中指定
     
     server.1=zoo1:2888:3888
     server.2=zoo2:2888:3888
     server.3=zoo3:2888:3888
 
 4.3: 在 /opt/zookeeper下建立myid文件:
     mkdir /opt/zookeeper;
 vim maid
 4.4: 在zookeeper/conf/ 目錄下執行:
     cp -a zoo-sample.cfg zoo.cfg
 4.5: zkServer.sh start 啓動zookeeper;

五、配置DataNode: etc/hadoop/slaves 文件中寫入datanode的主機名vim

六、啓動journalnode: sbin/hadoop-daemon.sh start journalnode;安全

七、格式化其中一個namenode: bin/ ./hadoop namenode -format;服務器

啓動:sbin/ ./hadoop-daemon.sh start namenode;

八、在另一個namenode上執行如下命令將格式化的hdfs初始文件fsimageing 拷貝到另一個namenode上:bin/ ./hdfs namenode -bootstrapStandby;

九、在其中一個namenode節點上格式化zkfc: ./bin/hdfs zkfc -formatZK

十、yarn的配置:

配置ResourceManager:mapreduce-site.xml:

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

配置NodeManager: yarn-site.xml:

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

啓動:./sbin/start-yarn.sh

**十、中止上面啓動的節點:

./sbin/stop-dfs.sh**

**十一、全面啓動:

./sbin/start-dfs.sh**
相關文章
相關標籤/搜索