通过 .net SDK 配置的 HDinsight 集群:所有 MapReduce 作业 运行 具有 1 个减速器
HDinsight clusters provisioned through the .net SDK: All MapReduce jobs run with 1 reducer
我对 Hadoop 相对缺乏经验,但在过去一年左右的时间里我一直在使用样板代码,通过 HDInsight .net SDK 编写和提交 C# MapReduce 控制台应用程序。
这些工作似乎经常 运行 许多映射器,但只有一个减速器。
我的 reducer 承担了相当多的繁重工作,因此只有一个 reducer 似乎是个瓶颈。通常我可以通过 RDP 进入集群并观察作业 运行 就像液态黄金一样,然后在减速器启动时磨成...非常慢的东西)。
如何控制应用于减速器的资源量?我可以将更多资源分配给缩减器而不是映射器吗?
集群以编程方式启动(根据 here)- 我可以看到我可以控制配置文件中的各种参数:我在正确的轨道上吗?有什么指点吗?
谢谢!
您可以明确设置编号。通过使用 "mapred.reduce.tasks" 配置,你希望你的工作使用的减速器的数量。您看到的一个减速器是默认的。
使用 HDInsight .net SDK,可以使用 MapReduceJobCreateParameters
的 "Defines" 属性 在作业级别进行设置
这个 blog post 有一个关于如何为作业定义额外配置的示例
我对 Hadoop 相对缺乏经验,但在过去一年左右的时间里我一直在使用样板代码,通过 HDInsight .net SDK 编写和提交 C# MapReduce 控制台应用程序。
这些工作似乎经常 运行 许多映射器,但只有一个减速器。
我的 reducer 承担了相当多的繁重工作,因此只有一个 reducer 似乎是个瓶颈。通常我可以通过 RDP 进入集群并观察作业 运行 就像液态黄金一样,然后在减速器启动时磨成...非常慢的东西)。
如何控制应用于减速器的资源量?我可以将更多资源分配给缩减器而不是映射器吗?
集群以编程方式启动(根据 here)- 我可以看到我可以控制配置文件中的各种参数:我在正确的轨道上吗?有什么指点吗?
谢谢!
您可以明确设置编号。通过使用 "mapred.reduce.tasks" 配置,你希望你的工作使用的减速器的数量。您看到的一个减速器是默认的。
使用 HDInsight .net SDK,可以使用 MapReduceJobCreateParameters
的 "Defines" 属性 在作业级别进行设置这个 blog post 有一个关于如何为作业定义额外配置的示例