草庐IT

sort_buffer

全部标签

hadoop - 能否自定义 Hadoop 的 Shuffle/Sort(或分区)阶段来执行图形遍历?

我还在学习MapReduce框架,具体由Hadoop实现,我想知道是否可以修改它来执行以下任务:Map()函数将发出(key,value)对,其键是大小为2的数组,比如int[2]。我希望将包含两个共同整数中的任何一个的每一对映射到同一个reducer。例如,如果Map()发出:([2,3],4),([2,4],5),([6,5],2),([5,7],1),那么Reduce1应该接收前两对,Reduce2接收后两对(前两对共享2,后两对共享5)。这可以看作是一个连通分量问题,其中顶点是int[]中的整数,边在同一int[]中的任意两个整数之间共享。 最佳答案

hadoop - 如何从 "sort"中出现频率最高的 30 个词降序排列?

我的映射器(Hadoop1.2.1)创建键值对标记,我从一个简单的文本文件中读取它们。没有火箭科学。reducer最终“捆绑”(在Hadoop中,您是否像在SQL中那样称呼该分组?)相同的键并对值1求和。这是默认的Hadoop教程。但是,当我的reducer可以使用这些值时,我想对它们进行降序排序。仅显示前30个标记(字符串、单词)。我好像有些概念不是很清楚。首先,为每个键值对调用reduce方法,对吗?因此,我看不到一个地方可以缓冲像HashMap这样的东西,它可以保存最高的结果(最频繁的标记)。我在想,如果我有这样一个变量,我可以很容易地比较和插入值在前30名内的每个键。处理这个频

hadoop - Mapper Combiner patitioner shuffle/sort 顺序

我在DefiniteGuide:Hadoopinpg206中有以下文字。在写入磁盘之前,线程首先将数据划分为对应的分区到他们最终将被发送到的reducer。在每个分区内,后台线程按键执行内存中排序,如果有组合器功能,它在排序的输出上运行。运行combiner函数可以得到更多紧凑的map输出,因此写入本地磁盘和传输到的数据较少reducer。那么有了这个理解,我可以排序为Mapper,partitioner,shuffle/sort,Combiner的顺序吗? 最佳答案 我写了一篇关于此的好文章:http://0x0fff.com/h

hadoop - ArrayIndexOutOfBoundsException 在 MapOutputBuffer$Buffer.write 在 MapTask (Hadoop 2.7.1)

在Hadoop2.7.1上运行的Scalding驱Action业中出现ArrayIndexOutOfBounds的情况非常奇怪。下面的映射器日志转储。看起来Equator在spill2中以某种方式设置为负数。这正常吗?2015-08-1223:39:19,649INFO[main]org.apache.hadoop.mapred.MapTask:numReduceTasks:12015-08-1223:39:20,174INFO[main]org.apache.hadoop.mapred.MapTask:(EQUATOR)0kvi469762044(1879048176)2015-08

sorting - 为什么 mapreduce 二次排序不在复合键的 compareTo() 上?

要执行二次排序,我们必须创建一个复合键,它扩展了WritableComparable接口(interface)并实现了compareTo()。在“Hadoop:权威指南”一书和几乎所有其他地方的博客中,排序都是基于扩展WritableComparator的单独类(书中的KeyComparator)的compare()方法进行的。compare()和compareTo()具有相同的逻辑。既然WritableComparator的compare()是用来对compositekey进行排序的,那么CompositeKey的compareTo()到底什么时候用到呢?

hadoop - shuffle 和 sort 阶段是 map 还是 reduce 阶段的一部分?

我的理解是,在mapreduce编程模型中我们有map和reduce两个阶段。完成映射阶段后,生成中间值(键、值)并将这些值传递给缩减器。我怀疑在map()阶段之后,shuffle和sort会到来。所以,我觉得shuffle和sort是reducer阶段的一部分,是这样吗?如果是这种情况,combiner()是如何工作的? 最佳答案 其实map/reduce中有3个阶段:map随机排序减少Shuffle&sort是一个纯框架阶段(作为开发人员,您只需编写map和reduce函数),它允许map任务和reduce阶段之间的通信。组合器

sorting - Hadoop 中的 Terasort 调度程序

在Hadoop的Terasort实现中,有一个名为TeraScheduler的调度程序。通读代码后,调度程序基本上执行以下操作:选择split次数最少的宿主对于该主机,选择主机数量最少的固定数量的拆分,并将它们“固定”在该主机上执行。“未选择的”拆分将从该主机中删除。对所有主机重复。我不明白这个时间表背后的基本原理。它如何比默认调度程序执行得更好(无论如何,默认调度程序是什么)?有没有论文解释它的好处? 最佳答案 好处有两个:(1)尽可能使排序本地化。(2)跨机器平均分配工作两者都旨在提高性能。

java - Hadoop:测量每个阶段的持续时间(map、shuffle/sort、reduce)

有一个非常相似的问题我想知道。HowcanImeasurethedurationofeachphase(map,shuffle/sort,reduce)inHadoop?答案是tasktracker的web/ui显示应用程序的每个持续时间。但是我的环境是hadoop-2.2.0,没有tasktracker。所以tasktrackerweb/ui"localhost:50030/tasktracker.jsp"不工作。我猜答案只适用于较低版本的hadoop(1.x.x)。我如何测量hadoop-2.x.x版本中每个阶段(map、shuffle/sort、reduce)的持续时间?是否有任

sorting - 在 Hbase 中的日期之间搜索

我有这样的Hbase表和rowKeys(delimter='#')0CE5C485#1481400000#A#B#C#T00C6F485#1481600000#F#J#C#G065ED485#1481500000#T#X#C#G......第一部分实际上是时间戳的十六进制反转(第二部分是时间戳)。我有这种rowkey格式,这样我就可以将key均匀地分成不同的区域。我的区域根据rowKey的前两个字符('00'、'01'、...、'FE'、'FF')进行拆分。共256个有没有办法在不覆盖值中的时间戳的情况下获取两个时间戳之间的所有行?ItriedRegexComparatorsontop

sorting - 冒泡排序不是排序 - IntDoublePair

为了对IntDoublePair进行排序,我实现了冒泡排序。例如:[10.5][10.8][10.67]排序为:[10.5][10.67][10.8]当我执行代码时,它给我的数据没有按排序顺序排列。我很困惑我哪里出错了。我需要一些帮助。privateArrayListsortCollection(ArrayListcollection){for(intcurrent=0;current=collection.get(next).getFirst().get()){if(collection.get(current).getSecond().get()>collection.get(ne