问题标签 [mrv2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2181 浏览

hadoop - 确定 Yarn 中的最佳减速器数量

在 MRv1 中,我们有以下两个可配置参数来设置每个节点的 Map 和 reduce 槽数。

mapred.tasktracker.map.tasks.maximum
mapred.tasktracker.reduce.tasks.maximum

此外,建议 Map 槽的数量略高于 Reduce 槽的数量。Map Reduce 作业的理想化简器数量应等于或大于集群中可用的化简槽数。

如果我的上述理解对 MRv1 不正确,请更正...

在 MRv2 中,我们不再有插槽的概念,而是容器为执行 Map/Reduce 任务提供所需的内存和 CPU。

我的问题来了,如何确定 MRv2 中任何 Map Reduce 作业的减速器数量?

谢谢

0 投票
1 回答
1483 浏览

hadoop - Hive 在本地模式下运行,占用过多的 /tmp 本地磁盘空间

我在 hive 中运行一个复杂的查询,运行时开始使用 /tmp 文件夹中的大量本地磁盘空间,并最终以空间错误结束,因为 /tmp 文件夹完全填满了中间 map-reduce 结果,因为提到的查询(/tmp 文件夹是在一个单独的分区中创建的,有 100 GB 的空白空间)。运行时它说:

Execution completed successfully

MapredLocal task succeeded

Launching Job 1 out of 3

Number of reduce tasks is set to 0 since there's no reduce operator

Job running in-process (local Hadoop)

正如您在上面看到的,Hive 以某种方式在本地模式下运行。在网上做了一些研究后,我检查了一些相关参数,结果如下:

hive> set hive.exec.mode.local.auto;

hive.exec.mode.local.auto=false

hive> set mapred.job.tracker;

mapred.job.tracker=local

hive> set mapred.local.dir;

mapred.local.dir=/tmp/hadoop-hive/mapred/local

所以我对此有两个问题:

  1. 这可能是 map-reduce 作业消耗本地磁盘空间而不是 hdfs /tmp 文件夹上的空间的原因吗,就像猪脚本通常的情况一样?
  2. 给定当前设置,如何使 Hive 在分布式模式下运行?请注意,我在集群中使用 MRV2,但上述选项令人困惑,因为它们似乎与 MRV1 相关。作为新手,我在这里可能是错的。

任何帮助都感激不尽!

0 投票
1 回答
355 浏览

hadoop - YARN:控制作业的并发性

我一直在尝试使用 YARN 资源队列通过控制任何给定时间的作业数量(我只有 MR 作业,没有其他 YARN 应用程序)来控制争用。我的情况是——

我有一个接受用户请求并运行一些报告(作为 MR 作业)的服务。这些工作有时会很耗时,在高峰期,这些工作会争夺资源,过多的共享意味着没有一项工作能取得体面的进展。我正在尝试最小化在任何给定时间可以在队列上运行的报告数量。

我可以通过将队列的最大运行应用程序设置为所需值来完成其中的一部分。现在,我可以将 MR 应用程序/作业提交到集群,并且在任何给定时间只运行(假设为“n”)作业。现在,问题是,没有办法在同一个队列中抢占任务(或者我不知道有一个)。我希望我能够以这样的方式将作业提交到这个队列,当有一个作业时,它占据所有队列,当有 2 个作业时,第一个作业的一些任务被杀死并且两个作业相等资源和第三个工作来进一步划分资源等等(基本上是 FairShareScheduler 与抢占一起工作的方式,但在一个队列中而不是多个队列中)。

这可能吗?我现在只有一个用户(我的服务)提交作业。我可以将我的服务的用户传播到集群(我不喜欢,但如果没有其他方法可以这样做),以便基于用户创建子队列。但是我不知道如何获得我想要的行为,因为有很多用户并且我不确定如何在不知道队列名称的情况下为每个队列设置限制(权重)(将在提交作业时创建) .

提前感谢您的帮助。

0 投票
1 回答
169 浏览

hadoop - YARN MRv2 JobClient 等效项

我找不到与 MRv2 等效的 JobClient (Java, MRv1)。我正在尝试读取正在运行的作业的 MR 作业状态、计数器等。我必须从我相信的资源管理器那里获取信息(因为历史服务器在作业结束之前不会有信息,我需要在作业仍在运行时读取计数器)。mapreduce api中是否有我缺少的客户端?

0 投票
1 回答
1017 浏览

hadoop - 了解 mapreduce.framework.name wrt Hadoop

我正在学习 Hadoop,并开始知道该框架有两个版本,即:Hadoop1 和 Hadoop2。

如果我的理解是正确的,在 Hadoop1 中,执行环境基于两个守护进程,即TaskTrackerJobTracker而在 Hadoop2(又名纱线)中,执行环境基于“新守护进程”,即ResourceManager, NodeManager, ApplicationMaster.

如果这不正确,请纠正我。

我知道了以下配置参数:

mapreduce.framework.name
可以取的可能值:local, classic,yarn

我不明白它们实际上是什么意思;例如,如果我安装 Hadoop 2 ,那么它怎么会有旧的执行环境(有TaskTracker, JobTracker)。

谁能帮我这些值是什么意思?

0 投票
2 回答
236 浏览

apache-spark - YARN 和 MapReduce 框架

我知道 YARN 框架的基础知识,但是我对 MapReduce 仍然缺乏一些了解。

对于 YARN,我了解到 MapReduce 只是可以在 YARN 上运行的应用程序之一;例如,使用 YARN,可以在同一个集群上运行各种不同的作业、MapReduce 作业、Spark 作业等。

现在,重点是,每种类型的作业都有其“自己”的“作业阶段”,例如,当我们谈论 MapReduce 时,它​​有各种阶段,如 Mapper、Sorting、Shuffle、Reducer 等。

具体到这个场景,谁“决定”、“控制”这些阶段?是 MapReduce 框架吗?

据我了解,YARN 是运行不同作业的基础设施;那么当我们提交一个 MapReduce Job 的时候,是不是先进入 MapReduce 框架,然后再由 YARN 执行代码呢?我有这个疑问,因为 YARN 是通用执行引擎,所以它不会了解 MapReduce(以及不同类型的作业)特有的映射器、reducer 等知识,所以 MapReduce 框架运行在YARN,在 YARN 帮助下执行作业,MapReduce 框架是否知道它必须为特定类型的作业经历的阶段?

任何澄清以理解这一点都会有很大帮助。