【问题标题】:increase user capacity in hadoop capacity scheduler在 hadoop 容量调度程序中增加用户容量
【发布时间】:2013-11-13 14:45:00
【问题描述】:

我是 Hadoop 新手。在对我的 MapReduce 作业进行编码后,我决定在共享集群上对其进行测试。我最初在单个节点上测试了我的工作。但后来我添加了 4 个节点在 5 (1+4) 上进行测试。容量调度程序显示以下信息:

队列配置
容量百分比:100.0%
用户限制:100%
支持的优先级:否

地图任务
容量:10 个插槽
已用容量:2(容量的 20.0%)
运行任务:2
活跃用户:
用户“juancito”:2(已使用容量的 100.0%)

因为有 1 个节点我有 2 个插槽,而现在有 5 个节点我有 10 个插槽,我猜每个节点有两个插槽(如果我错了,请纠正我)。现在,调度程序说我只使用了 20% 的容量。这是否意味着我实际上并没有使用我添加的 4 个节点?插槽数量是否会影响我正在运行的作业的性能?有没有办法知道并行化是否真的发生了?如果不使用我添加的 4 个节点,如何将用户“juancito”(我自己)的容量从 2 个增加到 10 个,以便他可以享受 5 个节点的全部映射容量?谢谢。

【问题讨论】:

    标签: hadoop


    【解决方案1】:

    您只使用了 20% 的容量,因为您只使用了 10 个插槽中的 2 个。这样做的原因是您的工作只需要两个地图任务。您是否只有两个输入文件(或者一个输入文件大到可以分成 2 个部分)?

    仅仅因为你有更多的容量,这并不意味着你的工作实际上需要额外的容量。但是,您可以同时运行更多作业,并能够更好地利用集群资源。

    【讨论】:

    • 您好,感谢您的洞察力。我只有一个大约 300 MB 的文件。如果我理解正确,每个输入拆分为 64 MB,所以我猜我的文件应该被拆分为 4/5 拆分?如果是,那是否意味着我的工作需要 4/5 地图任务?
    • @juancito 当前的默认块大小为 128MB,因此是 3 个映射器。也许您的集群配置了 256MB 的默认块大小?
    • 集群没有运行在最新版本的hadoop上,所以块是64MB。但是你告诉我的让我想知道,事实证明你是绝对正确的。实际上,我正在运行的由三个作业链组成,第一个作业的输出是第二个作业的输入,第二个作业的输出是第三个作业的输入。我最初没有提供这些细节,因为我认为它们没有那么相关。
    • 在我上面的问题中,我在谈论第二个工作和第一个工作的输入,错误地假设在工作之间或多或少会保持大小。但是第二个任务的输入只有 110 MB。正如您正确解释的那样,这仅占 2 个地图位置。
    猜你喜欢
    • 2016-07-10
    • 2013-01-11
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多