草庐IT

custom-sort

全部标签

hadoop - 使用哪个 : Custom datatype or TwoDArrayWritable

为了发出2个矩阵作为键值对:Key-MatrixA值-矩阵B。我应该创建一个自定义数据类型还是可以直接使用TwoDArrayWritable?那么自定义类中的compareTo()方法呢? 最佳答案 您肯定需要为您的Key编写一个自定义类,因为TwoDArrayWritable没有实现WritableComparable(即使您只是扩展TwoDArrayWritable类添加接口(interface)和compareTo方法)。至于是否应该在自定义类上使用TwoDArrayWritable-取决于几个因素(在我看来):您的数组的大小

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

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

java - 具有 "customized"键的 MapReduce

我有以下问题:我有很多键值对形式的数据。关键是一些id和值-一些文本。我的目标是将这些对象分组到文本片段以某种方式“相似”的集群中。所以它看起来像是MapReduce的任务,如果将我的文本片段作为键,并将id作为值。但是这样的键不是MapReduce使用的传统方式,并且由于我并不真正了解MapReduces框架的内部实现,所以我不确定这种方式是否有效。所以我的详细想法是:1.在Java中使用一些MapReduce(Hadoop、GridGain)2.为我的文本片段创建特殊类(比如TextKey)3.覆盖类的equals(),在这里打包文本比较逻辑(比如levenstein距离比较,或其

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