草庐IT

reducer-combiner

全部标签

java - 反向排序 Reducer 键

以相反顺序将Map输出键获取到reducer的最佳方法是什么?默认情况下,reducer按键的升序接收所有键。非常感谢任何帮助或评论。简单来说,在正常情况下,如果map发出键1,4,3,5,2,reducer接收到与1,2,3,4相同的键,5。我希望reducer接收5,4,3,2,1。 最佳答案 在Hadoop1.X中,您可以使用JobConf.setOutputKeyComparatorClass为您的输出指定自定义比较器类.您的比较器必须实现RawComparatorinterface.对于Hadoop2.X,这是通过使用Jo

hadoop - reducer 和 mapper 可以在同一个数据节点上吗?

我已经开始阅读有关大数据和Hadoop的内容,所以这个问题对您来说可能听起来很愚蠢。这就是我所知道的。每个映射器处理少量数据并产生中间输出。在此之后,我们有洗牌和排序的步骤。现在,Shuffle=将中间输出移至各自的Reducer,每个Reducer都处理一个或多个特定的键。那么,一个数据节点是否可以在其中运行Mapper和Reducer代码,或者我们为每个节点设置不同的DN? 最佳答案 术语:数据节点用于HDFS(存储)。Mappers和Reducers(计算)在具有TaskTracker守护进程的节点上运行。每个tasktrac

hadoop - 在 Elastic Map Reduce 上将分布式缓存与 Pig 结合使用

我正在尝试在Amazon的ElasticMapReduce上运行我的Pig脚本(使用UDF)。我需要在我的UDF中使用一些静态文件。我在我的UDF中做了这样的事情:publicclassMyUDFextendsEvalFunc{publicDataBagexec(Tupleinput){...FileReaderfr=newFileReader("./myfile.txt");...}publicListgetCacheFiles(){Listlist=newArrayList(1);list.add("s3://path/to/myfile.txt#myfile.txt");retu

eclipse - 如何使用 Java -jar 命令运行 map reduce 作业

我使用Java编写了一个Mapreduce作业。设置配置Configurationconfiguration=newConfiguration();configuration.set("fs.defaultFS","hdfs://127.0.0.1:9000");configuration.set("mapreduce.job.tracker","localhost:54311");configuration.set("mapreduce.framework.name","yarn");configuration.set("yarn.resourcemanager.address","

sql - 修改配置单元查询以强制超过 1 个 reducer

WRT由c3.2xlarge实例组成的3节点集群。我有两张table。表U有大约6500万条记录,包含在其他领域的纬度和经度。L表有100万左右记录并包含经纬度。U存储为ORC表。任务是确定有多少U记录落在10英里半径内L中的位置。selectl.id,count(u.id)fromUu,Llwhere3960*acos(cos(radians(l.lat))*cos(radians(u.lat))*cos(radians(l.long)-radians(u.long))+sin(radians(l.lat))*sin(radians(u.lat)))位3960*acos(cos(ra

Python Streaming : how to reduce to multiple outputs?(尽管使用 Java 是可能的)

我读了HadoopinAction并发现在Java中使用MultipleOutputFormat和MultipleOutputs类,我们可以将数据减少到多个文件,但我不确定如何实现使用Python流式处理也是一样。例如:/out1/part-0000mapper->reducer\out2/part-0000如果有人知道,听说过,做过类似的事情,请告诉我 最佳答案 DumboFeathers,一组与Dumbo一起使用的java类(一个python库,可以轻松为hadoop编写高效的p​​ythonM/R程序),在其outputcla

hadoop - 如何根据我的映射器输出大小动态设置 reducer 的数量?

我知道可以通过将mapred.min.split.size设置为dfs.block.size来根据我的dfs拆分大小设置映射器的数量。类似地,如何根据我的映射器输出大小设置reducer的数量?PS:我知道下面的选项可以用来控制reducer的数量。mapred.tasktracker.reduce.tasks.maximummapred.reduce.tasks 最佳答案 作业提交后不能设置reducer的数量。以这种方式考虑-在映射器输出上调用分区器,它不需要知道要分区的缩减器。 关

hadoop - 在 Mapper 或 Reducer 中处理异常的 Hadoop 最佳实践是什么?

想要了解在Mapper/Reducer中处理异常的最佳实践。选项1:不进行任何try/catch,让任务失败,MR将重试最终终止作业的任务。属性ma​​preduce.map/reduce.maxattempts在这里发挥作用。选项2:使用计数器记录catchblock中的失败次数。并根据这些错误的某个阈值终止作业或仅使用计数器显示失败记录的数量。在map-reduce中处理异常的任何(其他)通用/标准做法? 最佳答案 列出的选项1和2是我们在项目中处理的一些方法。请看here.它列出了更多选项

hadoop - 是否可以在 Hadoop Mapreduce 中为单个作业打印 Mapper 和 reducer 输出

对于给定的MR作业,我需要生成两个输出文件。一个文件应该是Mapper的输出另一个文件应该是Reducer的输出(它只是上面Mapper的聚合)我能否将mapper和reducer输出都写在一个作业中?编辑:在作业1中(仅Mapper阶段)输出包含单行中的20个字段,必须将其写入hdfs(file1)。在Job2(Mappernreducer)中,Mapper从Job1的输出中获取输入,删除几个字段以使其成为标准格式(仅10个字段)并将其传递给写入file2的reducer。我需要hdfs中的file1和file2...现在我的疑问是,在Job1映射器中,我是否可以将数据作为file1

hadoop - 在用 Java 编写 MR 代码时,如何决定何时使用 Map-Side Join 或 Reduce-Side?

在用Java编写MR代码时,如何决定何时使用Map-SideJoin或Reduce-Side? 最佳答案 Mapsidejoin在数据到达Map之前执行join。在map端加入数据之前,map功能需要一个强大的先决条件。这两种方法都有一些优点和缺点。Mapsidejoin与reduceside相比效率更高,但它需要严格的格式。先决条件:数据应以特定方式进行分区和排序。每个输入数据都应划分为相同数量的分区。必须使用相同的键排序。特定键的所有记录必须位于同一分区中。Reducesidejoin也称为Repartitionedjoin或R