jjzjj

Reducers

全部标签

hadoop - mapreduce 条件概率

如何使用映射器在我的reducer中进行概率聚合;我正在尝试在Hadoop上为以下任务实现“strip”方法和“对”方法,但我想知道如何在多个映射器之间进行通信以及如何在内部进行面向概率的聚合我的reducer。每对item的共现,Count(A,B)=#oftransactionscontainsbothAandB,andtheconditionalprobabilityProb(B|A)=Count(A,B)/Count(A).每个三元组项目的共现,Count(A,B,C)=#oftransactionscontainsbothAandB,andtheconditionalprob

hadoop - 使用零 Reducers 时,我能否从 Hadoop 获得单独排序的 Mapper 输出?

我在Hadoop0.20中有一份工作需要一次处理一个大文件。(这是一个预处理步骤,可将面向文件的数据转换为更适合MapReduce的更清晰、基于行的格式。)我不介意我有多少个输出文件,但每个Map的输出最多只能在一个输出文件中,并且每个输出文件都必须排序。如果我使用numReducers=0运行,它运行得很快,并且每个Mapper写出自己的输出文件,这很好-但文件没有排序。如果我添加一个reducer(普通Reducer.class),这会向单个文件添加一个不必要的全局排序步骤,这会花费很多小时(比Map任务花费的时间长得多)。如果我添加多个reducer,各个map作业的结果会混合在

java - Hadoop 中的作业和任务调度

当我阅读延迟公平调度时,我对Hadoop中的术语“作业调度”和“任务调度”感到有点困惑inthisslide.如果我的以下假设有误,请纠正我:默认调度器、容量调度器和公平调度器仅在用户调度多个作业时在作业级别有效。如果系统中只有一个作业,它们将不起任何作用。这些调度算法构成了“作业调度”的基础每个作业可以有多个map和reduce任务,它们是如何分配给每台机器的?如何为单个作业安排任务?“任务调度”的依据是什么? 最佳答案 在公平调度器的情况下,当有一个作业在运行时,该作业使用整个集群。当提交其他作业时,释放的任务槽将分配给新作业,

hadoop - Hadoop 上理想的 reducer 数量是多少?

Hadoopwiki给出的计算reducer的理想数量是0.95或1.75*(nodes*mapred.tasktracker.tasks.maximum)但是什么时候选择0.95,什么时候选择1.75?决定这个乘数时考虑的因素是什么? 最佳答案 假设您的集群中有100个可用的reduce插槽。负载因子为0.95时,所有95个reduce任务将同时启动,因为有足够的reduce槽可用于所有任务。这意味着没有任务会在队列中等待,直到其余任务之一完成。当reduce任务“小”时,我会推荐此选项,即完成相对较快,或者它们都需要相同的时间,

join - 运行 HIVE Join 查询时,Reducers 在 66.68% 时停止工作

尝试连接6个表,每个表中大约有500万行。尝试加入在所有表上按升序排序的帐号。Map任务成功完成,reducer在66.68%时停止工作。尝试了增加reducer数量等选项,还尝试了其他选项sethive.auto.convert.join=true;并设置hive.hashtable.max.memory.usage=0.9;并设置hive.smalltable.filesize=25000000L;但结果是一样的。尝试使用少量记录(如5000行),查询效果非常好。请建议可以在这里做什么以使其发挥作用。 最佳答案 66%的Redu

hadoop - hadoop 中的 reducer 数量

我在学习hadoop,我发现reducer的数量非常困惑:1)reducer的数量与分区的数量相同。2)reducer的数量是0.95或1.75乘以(节点数)*(每个节点的最大容器数)。3)reducer的数量由ma​​pred.reduce.tasks设置。4)reducer的数量最接近于:block大小的倍数*任务时间在5到15分钟之间*创建尽可能少的文件。我很困惑,我们是明确设置reducer的数量还是由mapreduce程序本身完成?reducer的数量是如何计算的?请告诉我如何计算reducer的数量。 最佳答案 1-re

hadoop - 使用 Hadoop,我的 reducers 是否保证获得具有相同键的所有记录?

我正在使用Hive运行一个Hadoop作业,实际上它应该是许多文本文件中的uniq行。在减少步骤中,它为每个键选择最近的时间戳记录。Hadoop是否保证映射步骤输出的每条具有相同键的记录都将转到单个reducer,即使多个reducer在集群中运行也是如此?我担心在一组具有相同键的记录中间发生洗牌后,映射器输出可能会被拆分。 最佳答案 键的所有值都发送到同一个缩减器。看这个Yahoo!tutorial进行更多讨论。此行为由分区程序决定,如果您使用默认分区程序以外的分区程序,则可能并非如此。

hadoop - Hive 如何为一个工作选择 reducer 的数量?

有几个地方说Hadoop作业中默认的reducer数量是1。您可以使用mapred.reduce.tasks符号手动设置reducer的数量。当我运行Hive作业(在AmazonEMR、AMI2.3.3上)时,它有一些大于1的reducer。查看工作设置,有些东西设置了mapred.reduce.tasks,我假设是Hive。它是如何选择那个数字的?注意:这里是运行Hive作业时的一些消息,应该是一个线索:...Numberofreducetasksnotspecified.Estimatedfrominputdatasize:500Inordertochangetheaveragel

hadoop - “Combiner"mapreduce 作业中的类

Combiner在Mapper之后和Reducer之前运行,它将接收由给定节点上的Mapper实例发出的所有数据作为输入。然后向Reducers发出输出。而且,如果reduce函数既是可交换的又是结合的,那么它可以用作Combiner。我的问题是短语“commutativeandassociative”在这种情况下是什么意思? 最佳答案 假设您有一个数字列表,123456。此处的关联意味着您可以将您的操作应用于任何子组,然后将其应用于这些子组的结果并获得相同的答案:(1)+(2+3)+(4+5+6)==(1+2)+(3+4)+(5)

http - Hadoop 中使用哪种协议(protocol)将数据从 Mappers 复制到 Reducers?

我对Hadoop框架用于将映射器输出(本地存储在映射器节点上)复制到缩减器任务(不在同一节点上运行)的传输协议(protocol)有一些疑问。-阅读一些它在Shuffle阶段使用HTTP的博客-另请阅读HDFS数据传输(由mapreduce作业使用)是直接使用TCP/IP套接字完成的。-阅读Hadoop权威指南中的RPC。任何指针/引用都会有很大帮助。 最佳答案 Hadoop使用HTTPServlets用于中间数据混洗。参见下图(摘自Wang等人的JVM-BypassforEfficientHadoopShuffling):要仔细对