草庐IT

reducer-combiner

全部标签

java - Hadoop 应用程序找不到 Reducer

我正在尝试制作一个mapreduce应用程序,它从Hbase表中读取并将作业结果写入文本文件。我的驱动程序代码如下所示:Configurationconf=HBaseConfiguration.create();Jobjob=Job.getInstance(conf,"mrtest");job.setJarByClass(Driverclass.class);job.setCombinerClass(reducername.class);job.setReducerClass(reducername.class);Scanscan=newScan();scan.setCaching(5

hadoop - Hive Tez reducer 运行速度超慢

我加入了多个表,总行数约为250亿行。最重要的是,我正在做聚合。下面是我的配置单元设置,我用它来生成最终输出。我不太确定如何调整查询并使其运行得更快。目前,我正在反复试验,看看是否能产生一些结果,但似乎没有用。Mappers运行得更快,但reducers需要很长时间才能完成。谁能分享您对此的看法?谢谢。SEThive.execution.engine=tez;SEThive.exec.dynamic.partition.mode=nonstrict;SEThive.qubole.cleanup.partial.data.on.failure=true;SEThive.tez.conta

hadoop - Mapper 和 Reducer 如何协同工作 "without"排序?

我知道mapreduce是如何工作的以及我有哪些步骤:绘图随机排序减少当然,我有分区、组合器,但现在这些并不重要。有趣的是,当我运行mapreduce作业时,看起来mappers和reducers并行工作:所以我不明白这怎么可能。问题1.如果我有多个节点在做映射操作,reducer如何开始工作?因为Reducer不能在没有排序的情况下开始工作吗?(输入必须为Reducer排序-如果mapper仍在工作,则输入无法排序)。问题2.如果我有多个reducer,最后的数据如何合并在一起?换句话说,最终结果应该排序对吧?这意味着我们要花费额外的O(n*Logn)时间来合并“多个reducer结

python - 用于 win32 平台的 Hadoop/Map-reduce 框架的替代品

我发现Windows上的Hadoop有点令人沮丧:我想知道是否有适合Win32用户的Hadoop的任何重要替代品。我最看重的功能是:在小型网络上易于初始设置和部署(如果我们为这个项目分配了超过20台工作PC,我会感到惊讶)易于管理-理想的框架应该具有基于Web/GUI的管理系统,这样我就不必自己编写一个。流行且稳定的东西。奖金取决于我们能否及时交付该项目。背景:我工作的公司想要构建一个新的网格系统来运行一些财务计算。我一直在评估的第一个框架是Hadoop。这似乎完全符合预期,只是它非常面向UNIX。我能够在UbuntuVirtualBox上启动并运行所有教程。不幸的是,在Win32上似

python - 一个 Hadoop 就绪的 reducer ,用于查找最长的 1 运行。不可能?

是否可以编写一个Hadoop就绪的reduce函数来找到1的最长运行(仅运行的长度)?我正在考虑可以在Python的functools.reduce上运行的东西.但我最终希望在Hadoop集群上运行(“Hadoop就绪”是指缩减步骤可以按任意顺序运行)。动机是在生物序列中搜索串联重复,如此处讨论http://biostar.stackexchange.com/questions/10582/counting-repeat-sequence-寻找最长的重复。因此,这个问题是微不足道的。但是在大数据上可以这样处理吗?试图将其构建为一个map-reduce问题:map函数会将所有感兴趣的单词

hadoop streaming 确保每个 reducer 一个 key

我有一个映射器,它在处理数据时将输出分为3种不同的类型(类型是输出键)。我的目标是通过reducer创建3个不同的csv文件,每个文件都包含一个带有标题行的键的所有数据。键值可以改变并且是文本字符串。现在,理想情况下,我想要3个不同的reducer,每个reducer只会获得一个键及其整个值列表。除了,这似乎不起作用,因为键没有映射到特定的reducer。在其他地方对此的答案是编写一个自定义分区器类,将每个所需的键值映射到特定的缩减器。这会很棒,除了我需要使用python流式传输并且我无法在我的工作中包含自定义流式传输jar,所以这似乎不是一个选项。我看到inthehadoopdocs

hadoop - 如何在两个 map reduce 作业之间传递变量

我链接了两个Mapreduce作业。Job1将只有一个reducer,我正在计算一个浮点值。我想在Job2的reducer中使用这个值。这是我的主要方法设置。publicstaticStringGlobalVriable;publicstaticvoidmain(String[]args)throwsException{intruns=0;for(;runs{publicvoidreduce(Textkey,Iterablevalues,Contextcontext)throwsIOException,InterruptedException{floats=0;for(FloatWri

python - 先生工作 :- Display intermediate values in map reduce

如何在使用pythonMRJob库运行mapreduce程序时在终端上显示中间值(即打印变量或列表)? 最佳答案 您可以使用sys.stderr.write()将结果输出到标准错误。这是一个例子:frommrjob.jobimportMRJobimportsysclassMRWordCounter(MRJob):defmapper(self,key,line):sys.stderr.write("MAPPERINPUT:({0},{1})\n".format(key,line))forwordinline.split():yield

hadoop - 最后的 reducer 任务需要很长时间才能完成

我有一个有8个节点的集群设置,我正在使用mapreduce解析一个20GB的文本文件。通常,我的目的是通过映射器获取每一行并发送一个键,该键是输入文件行中的列之一。reducer获取到后,会根据key值写入不同的目录。如果我举个例子:输入文件:test;1234;A;24;49;100test2;222;B;29;22;22test2;0099;C;29;22;22所以这些行会这样写:/output/A-r-0001/output/B-r-0001/output/C-r-0001我在reducer中使用MultipleOutputs对象,如果我使用小文件,一切正常。但是当我使用20GB

Hadoop:如何选择reducer节点?

刚开始学Hadoop,不明白datanode是怎么变成reducer节点的。map任务完成后,其排序缓冲区的内容将刷新到本地磁盘KV对排序分区后然后jobtracker会收到有关溢出分区的通知。之后,reducer开始从特定分区询问数据。但是jobtracker如何决定哪个节点成为reducer节点?我正在阅读Hadoop权威指南,但书中没有提到这一步。谢谢,布鲁克瓦尔德 最佳答案 几乎先到先得。任务由心跳分配,因此如果Tasktracker向Jobtracker发出它处于事件状态的ping命令,它会收到一个响应,其中可能包含要运行