Hadoop单个伪分布式节点集群中的问题

时间:2017-01-09 15:52:39

标签: java hadoop mapreduce

我正在尝试在伪分发中设置hadoop服务器,以允许并行执行map / reduce任务。现在,当我运行一个作业时,控制台输出以下行:

Running job: job_local1508664063_0001

这意味着我处于本地模式,因此所有任务都按顺序排列是正常的。这是我当前的配置,我必须编辑让hadoop运行并行映射任务/减少任务? (我使用start-dfs和start-yarn运行hadoop服务器)

mapred-site.xml中

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

    <property>
        <name>mapreduce.jobtracker.address</name>
        <value>mymachine:54311</value>
        <description>The host and port that the MapReduce job tracker runs
        at.  If "local", then jobs are run in-process as a single map
        and reduce task.
        </description>
    </property>

    <property>
        <name>mapreduce.jobtracker.http.address</name>
        <value>mymachine:50030</value>
        <description>The host and port that the MapReduce job tracker runs
        at.  If "local", then jobs are run in-process as a single map
        and reduce task.
        </description>
    </property>

</configuration>

mymachine是服务器的帐户名称。我也试过ip得到相同的结果,工作经理仍然认为服务器是“本地的”。 当前作业创建12个地图任务,这些任务按顺序运行。

正如本帖所述:

stackoverflow.com/questions/26267476/why-my-map-reduce-job-is-running-sequentially

PS:为了确保加载配置,在我的java webservice中我做了一个冗余集:

conf.set("mapreduce.jobtracker.address", "mymachine:54311");
conf.set("mapreduce.jobtracker.http.address", "mymachine:50030");

我还设置资源以允许多个contaniers ==&gt;并行映射任务

(i7 4 / 8,8gb ram)

conf.set("yarn.nodemanager.resource.memory-mb", "6144");
conf.set("yarn.nodemanager.resource.cpu-vcores", "8");
conf.set("yarn.scheduler.minimum-allocation-mb", "1024");

我该如何修改配置?我的hadoop版本是2.7.1

2 个答案:

答案 0 :(得分:0)

在hadoop 2.x中,没有jobtracker和tasktrakers。这是来自hadoop 1.x。

我在github上维护一个脚本,从头开始设置hadoop。你会发现它很有用。它包含最少的Hadoop配置以便入门。

https://github.com/hadoopfromscratch/hadoopfromscratch/

答案 1 :(得分:0)

您可以使用免费的开源Apache Ambari来安装,配置和管理完整的hadoop集群,无论是单节点还是多节点,具有来自Web UI的所有配置或将您的配置模板存储在版本控制中。

DEPLOYING, MANAGING AND CONFIGURING HDP WITH AMBARI