2014-12-06 237 views
1

我在VMware上的centos linux上安裝了Hadoop 2.4.1。 我應該將Hadoop的羣集配置爲多節點羣集。首先,我不知道如何在Hadoop的羣集上構建多個節點。第二,我應該如何在Hadoop集羣上配置節點?請一步一步詳細指導我,特別是在定義節點時。將Hadoop配置爲多節點羣集

+0

嗯,這是一個非常寬泛的問題。也許你應該使用預先配置好的Hadoop環境來了解它們是如何掛在一起的。例如查看hortonworks。祝你好運。 – 2014-12-06 19:34:09

回答

0

假設你正在設計雙節點羣集

我們假設是你的節點和他們的角色如下:

NN-host NameNode, DataNode 
DD-host DataNode1 

讓我們開始的NameNode 192.168.3.171

和配置XML文件中 然後更新指向我們目錄的hdfs-site.xml文件:

$ HADOOP_INSTALL的/ etc/Hadoop的/ HDFS-site.xml中

並粘貼<configuration>標籤之間如下:

<property> 
     <name>dfs.datanode.data.dir</name> 
     <value>/home/user/hdfs/datanode</value> 
     <description>DataNode directory</description> 
    </property> 

    <property> 
     <name>dfs.namenode.name.dir</name> 
     <value>/home/user/hdfs/namenode</value> 
     <description>NameNode directory for namespace and transaction logs storage.</description> 
    </property> 

    <property> 
     <name>dfs.replication</name> 
     <value>2</value> 
    </property> 
    <property> 
     <name>dfs.permissions</name> 
     <value>false</value> 
    </property> 
    <property> 
     <name>dfs.datanode.use.datanode.hostname</name> 
     <value>false</value> 
    </property> 
    <property> 
     <name>dfs.namenode.datanode.registration.ip-hostname-check</name> 
     <value>false</value> 
    </property> 

讓Hadoop的模塊知道,這裏的NameNode所在位置:

$ HADOOP_INSTALL/etc/hadoop/core-site.xml

並粘貼以下內容EEN <configuration>標籤:

 <property> 
     <name>fs.defaultFS</name> 
     <value>hdfs://NN-host:50000</value> 
     <description>NameNode URI</description> 
    </property> 

$ HADOOP_INSTALL的/ etc/Hadoop的/ mapred-site.xml中

<configuration> 
<property> 
    <name>mapred.job.tracker</name> 
    <value>NN-host:50001</value> 
</property> 

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

</configuration> 

$ HADOOP_INSTALL的/ etc/Hadoop的/紗-site.xml中

<configuration> 

<!-- Site specific YARN configuration properties --> 
    <property> 
     <name>yarn.nodemanager.aux-services</name> 
     <value>mapreduce_shuffle</value> 
    </property> 

</configuration> 

現在我們可以通過發行格式化我們的NameNode:

HDFS的NameNode -format

Hadoop的NameNode的格式

現在我們必須確保,我們的NN主機主節點可以無密碼登錄到其他節點:

ssh-copy-id -i /home/user/.ssh/id_rsa.pub [email protected] 
ssh-copy-id -i /home/user/.ssh/id_rsa.pub [email protected] 

並將您的從站(DataNodes)添加到從站文件。在我的情況下:

NN-host 
DD-host 

讓我們配置我們的從屬數據節點192.168.3。44個步驟是相同的​​兩個人:

準備和創建目錄:

然後更新HDFS-site.xml文件指向我們的目錄:

$HADOOP_INSTALL/etc/hadoop/hdfs-site.xml 

並粘貼<configuration>標籤之間以下:

 <property> 
     <name>dfs.datanode.data.dir</name> 
     <value>/home/user/hdfs/datanode</value> 
     <description>DataNode directory</description> 
    </property> 
    <property> 
     <name>dfs.replication</name> 
     <value>2</value> 
    </property> 
    <property> 
     <name>dfs.permissions</name> 
     <value>false</value> 
    </property> 
    <property> 
     <name>dfs.datanode.use.datanode.hostname</name> 
     <value>false</value> 
    </property> 

讓Hadoop的模塊知道,這裏的NameNode位於:

$ HADOOP_INSTALL的/ etc/Hadoop的/核心-site.xml中

和粘貼標籤之間的以下內容:

<property> 
    <name>fs.defaultFS</name> 
    <value>hdfs://NN-host:50000</value> 
    <description>NameNode URI</description> 
</property> 

運行數據節點可以在多節點集羣見

DD主機:50075

看到所有aplications在UI

NN-主持人:8088

+0

非常感謝您的回答。但我的問題在於設計。換句話說,我如何在集羣中定義多個節點?我需要解決hadoop的可擴展性問題。 – 2014-12-06 21:24:24

+0

有穩定版本的hadoop-2.x.x可以解決可伸縮性問題。以上答案是設計多節點集羣的。 – 2014-12-07 08:01:27

+0

我在多節點集羣中使用hadoop-2.5.2。它工作正常。 – 2014-12-07 08:08:21