【问题标题】:Sandbox - Mappers and reducers determined沙箱 - 确定映射器和缩减器
【发布时间】:2015-07-21 20:04:51
【问题描述】:

我学习了云计算,并在 Mapreduce 中创建了一个用于天气分析的项目。为此,我在笔记本电脑中安装了以下软件。

  • Oracle 虚拟机
  • HortonWorks 沙盒

我选择了 Redhat Linux 并分配了 2 GB 作为主内存。我使用来自沙盒站点的 hadoop 映像并使用 virtualbox 加载它。如果我的理解是正确的,那么 2 GB 是从我的系统中分配的,而 MapReduce 作业是在我的本地机器上完成的。我在这一点上是正确的吗?

我创建了我的 MapReduce 程序并在沙盒中运行它。它工作得很好,我得到了想要的输出。

  • 对于我的工作,工作跟踪器显示使用了 8 个映射器,而对于 reduce,使用了一个减速器。所以 8 个映射器基本上是我的 2 GB 主内存的 8 个拆分,用作处理数据的映射器。

如果上面的说法是正确的,为什么我看到只使用了一个减速器?

如果映射器来自沙盒,它们是否有像 Amazon 的 EMR 这样的服务器?

【问题讨论】:

  • 我建议您阅读“HBase:权威指南”。它会回答你的问题。
  • @zsxwing :他根本不在谈论 HBase。您是指 Hadoop 权威指南吗?
  • 对不起我的错误。是的,我的意思是“Hadoop:权威指南”。对于 hadoop 新手,我强烈推荐这本书。

标签: hadoop mapreduce


【解决方案1】:

很抱歉,我并没有完全明白你想问的究竟是什么。你的问题看起来更像是一个帖子的标题,而不是一个问题。

Mappers 和 Reducers 是 MapReduce framework 的组件。 Hortonworks 只是提供定制 Hadoop 发行版的供应商之一。这些不同风格的 Hadoop 之间存在一定的差异,但 Mapper 和 Reducer 创建的标准在任何地方都是相同的。

如果我的理解是正确的,那么 2 GB 是从我的系统分配的 并且 MapReduce 工作是在我的本地机器上完成的。我对么 在这一点上?

首先推荐的内存是4GB

是的,它将从运行 virtualbox 的机器上分配。当 virtualbox 在“这台”机器上运行时,你还能从哪里获得资源?分配的内存与 MR 作业的运行位置有什么关系?当您使用沙箱时,它们将在沙箱中运行。

对于我的工作,工作跟踪器显示使用了 8 个映射器,并且 reduce 使用了一个减速器。所以 8 个映射器基本上是 8 个拆分 我的 2 GB 主内存用作映射器来处理 数据。

8 个映射器是您的 Mapper 代码的 8 个实例,它们正在处理您的输入数据的 8 个拆分和NOT 8 个内存拆分或其他任何内容。

If the mappers are from sandbox, do they have servers like Amazon's EMR?

这对我来说是个十足的保镖。请改写。

【讨论】:

  • 我想知道我的代码是在 Sandbox 的服务器上运行还是在我自己的本地机器上运行。基本上,我的问题是,如果它是我的机器本身,那么只使用一台机器而不是多台机器,因为它应该用于 mapreduce 工作。我对这个概念很陌生,如果您对我的问题不清楚,请告诉我。
  • 虽然 MR 设计用于分布式环境,但它并没有阻止我们在单台机器上运行作业。如果您在一台多核机器上,很有可能不止一个映射器在并行运行,这取决于 CPU 插槽的可用性......希望这会有所帮助。
【解决方案2】:

当您想要读取数据并按原样处理时使用身份映射器而不进行任何更改。

【讨论】:

    猜你喜欢
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    • 2010-10-23
    • 2014-06-17
    • 2023-03-31
    • 2016-05-24
    相关资源
    最近更新 更多