草庐IT

data_reduced

全部标签

Hadoop reducer 未被调用

全部我有简单的map/reduce实现。Mapper被调用并完成其工作,但reducer从未被调用。这是映射器:staticpublicclassInteractionMapextendsMapper{@Overrideprotectedvoidmap(LongWritableoffset,Texttext,Contextcontext)throwsIOException,InterruptedException{System.out.println("mapper");String[]tokens=text.toString().split(",");for(intidx=0;idx

java - 我如何调试 Hadoop map reduce

这个问题在这里已经有了答案:Howtodebughadoopmapreducejobsfromeclipse?(6个答案)WheredoeshadoopmapreduceframeworksendmySystem.out.print()statements?(stdout)(5个答案)关闭2年前。我正在尝试构建mapreduce作业。它运行到完成但最后出现奇怪的数据。当我尝试使用system.out.println("debugdata")调试它时它不显示在屏幕上。使用javaAPI生成外部日志文件,尝试使用log.severe("logdata")或使用log4j记录器方法log.i

hadoop - java.lang.OutOfMemoryError : unable to create new native thread for big data set 错误

我运行的hive查询对于小型数据集运行良好。但我正在运行2.5亿条记录,我在日志中遇到的错误低于此FATALorg.apache.hadoop.mapred.Child:Errorrunningchild:java.lang.OutOfMemoryError:unabletocreatenewnativethreadatjava.lang.Thread.start0(NativeMethod)atjava.lang.Thread.start(Thread.java:640)atorg.apache.hadoop.mapred.Task$TaskReporter.startCommuni

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 - "code moving to data"而不是数据转码的原理是什么?

在最近关于分布式处理和流的讨论中,我遇到了“代码移动到数据”的概念。有人可以帮忙解释一下吗?此短语的引用是MapReduceWay.在Hadoop方面,it'sstatedinaquestion但仍然无法以技术不可知的方式找出对原理的解释。 最佳答案 基本思想很简单:如果代码和数据在不同的机器上,则必须先将其中一个移动到另一台机器上,然后才能在数据上执行代码。如果代码小于数据,最好将代码发送到保存数据的机器,而不是相反,如果所有机器都同样快且代码兼容。[可以说您可以根据需要发送源代码和JIT编译]。在大数据的世界里,代码几乎总是比数

java - Hadoop Map Reduce For Google web graph

我们的任务是创建mapreduce函数,该函数将为google网络图中的每个节点n输出,列出您可以在3跳中从节点n到达的节点。(实际数据可以在这里找到:http://snap.stanford.edu/data/web-Google.html)以下是列表中项目的示例:121324343541454656从上面的示例图将是这个在上面的简化示例中,例如节点1的路径是α[1->2->4->1],[1->2->4->5],[1->2->4->6],[1->3->4->1],[1->3->4->5],[1->3->4->6]και[1->3->5->6]因此mapreduce将为节点1输出顶点1

hadoop - 没有 Map/Reduce 的 HDFS 分布式读取

是否可以在一台机器上使用HDFS客户端实现从HDSF集群的分布式读取?我用一个由3个数据节点(DN1、DN2、DN3)组成的集群进行了实验。然后我从位于DN1上的客户端程序运行10个同时读取10个独立文件,它似乎只从DN1读取数据。其他数据节点(DN2、DN3)显示为零事件(从调试日志判断)。我检查了所有文件的block是否在所有3个数据节点上都被复制了,所以如果我关闭DN1,那么数据将从DN2读取(仅DN2)。增加读取的数据量没有帮助(尝试从2GB到30GB)。由于我需要读取多个大文件并仅从中提取少量数据(几Kb),因此我想避免使用map/reduce,因为它需要设置更多服务并且还需

hadoop - 在 Hadoop 中处理之前对 reducer 输入迭代器值进行排序

我有一些值类型为Iterator的输入数据进入reducer。如何将此值列表按升序排序?我需要按顺序对它们进行排序,因为它们是时间值,然后再在reducer中进行处理。 最佳答案 要使用hadoop的内置特性实现reducer输入值的排序,你可以这样做:1.修改map输出键-在map输出键上附加相应的值。发出这个复合键和map中的值。由于hadoop默认使用整个键进行排序,map输出记录将按(您的旧键+值)。2.虽然步骤1做了排序,但是你在这个过程中操作了map输出的key,Hadoop默认是根据key进行Partitioning和

Hadoop- hive : Delete data which is older than specified no of days

我正在从事一个电信项目,该项目使用Hadoop-hive进行数据分析。一天,我们将获得数百万条记录。在指定的天数之后,我们需要删除旧数据,因为我们没有存储容量。删除记录的最佳方法是什么?附加信息:这些配置单元表将有一个包含填充日期的列。 最佳答案 我认为您的用例非常适合在Hive表中使用“日”分区。如果“天”只是一列,那么维护和清理表格将变得困难。分区在Hive中的真正含义是每个“天”都有一个目录例如:createtablemytable(...)partitionedby(daystring)因此,当您添加数据时,您将在HDFS中

java - 由于 Task attempt failed to report status 600 秒,reduce 失败。杀戮!解决方案?

作业的reduce阶段失败并显示:失败的Reduce任务超出了允许的限制。每个任务失败的原因是:任务attempt_201301251556_1637_r_000005_0未能报告状态达600秒。杀!问题详情:Map阶段接收格式为:time,rid,data的每条记录。数据的格式为:数据元素及其计数。例如:a,1b,4c,7对应一条记录的数据。映射器为每个数据元素输出每条记录的数据。例如:key:(time,a,),val:(rid,data)键:(时间,b,),val:(删除,数据)key:(time,c,),val:(rid,data)每一个reduce从所有的记录中接收同一个ke