2014-12-06 189 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