草庐IT

sort_value

全部标签

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

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

hadoop - 我们可以在一个 map 函数中生成 2 对 (key, value) 吗?如果是如何?

我有一个userID数据集和一个与每个UserID相关的帖子。我想计算每个用户的帖子数。我还想将每个用户ID的所有帖子放在一起(将所有帖子分开一些)。有什么建议吗? 最佳答案 恕我直言,您可以有一个映射器和一个缩减器。映射器:classPostMapperextendsMappermap()可以将作为UserID(文本)的键和作为Post(文本)的值写入上下文。reducer:classPostReducerextendsReducerreduce()可以有一个可迭代循环,其中(i)一个计数的计数器对于每个获取的Post和(ii)一

java - 带有纯 java 配置的 Spring 3.2 @value 注释不起作用,但 Environment.getProperty 有效

在这个问题上我一直很头疼。不知道我错过了什么。我无法让@Value注释在纯java配置的spring应用程序(非web)中工作@Configuration@PropertySource("classpath:app.properties")publicclassConfig{@Value("${my.prop}")Stringname;@AutowiredEnvironmentenv;@Bean(name="myBean",initMethod="print")publicMyBeangetMyBean(){MyBeanmyBean=newMyBean();myBean.setName

java - 带有纯 java 配置的 Spring 3.2 @value 注释不起作用,但 Environment.getProperty 有效

在这个问题上我一直很头疼。不知道我错过了什么。我无法让@Value注释在纯java配置的spring应用程序(非web)中工作@Configuration@PropertySource("classpath:app.properties")publicclassConfig{@Value("${my.prop}")Stringname;@AutowiredEnvironmentenv;@Bean(name="myBean",initMethod="print")publicMyBeangetMyBean(){MyBeanmyBean=newMyBean();myBean.setName

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阶段之间的通信。组合器

hadoop - hive : Read a struct value inside a map in hive

我有一个包含以下数据类型的列的配置单元表:map>我正在尝试使用横向View爆炸从map中读取id的值,但它抛出了以下错误:selectvalue.idfrommy_tablelateralviewexplode(my_map)valuelimit10;FAILED:SemanticException[Error10002]:Line1:14Invalidcolumnreference'id'谁能帮我从map中读取结构值。 最佳答案 selectval.idfrommy_tablelateralviewexplode(my_map)

java - Spark saveAsNewAPIHadoopFile java.io.IOException : Could not find a serializer for the Value class

我正在尝试将java对RDD存储为Hadoop序列文件,如下所示:JavaPairRDDputRdd=...config.set("io.serializations","org.apache.hadoop.io.serializer.JavaSerialization,org.apache.hadoop.io.serializer.WritableSerialization");putRdd.saveAsNewAPIHadoopFile(outputPath,ImmutableBytesWritable.class,Put.class,SequenceFileOutputFormat

hadoop - 配置单元 : group column based on max value

我有一个包含字段的表datevalue10-02-19002309-05-19012210-03-19001010-02-190124....我必须返回每年的最大值即,190023190124我尝试了以下查询,但得到了错误的答案。SELECTYEAR(FROM_UNIXTIME(UNIX_TIMESTAMP(date,'dd-mm-yyyy')))asdate,MAX(value)FROMtebGROUPBYdate;有人可以建议我查询吗? 最佳答案 选项1selectyear(from_unixtime(unix_timestam

hadoop - Map reduce value list顺序问题

正如我们所知,Hadoop按键对值进行分组,并将它们发送到同一个reduce任务。假设我在hdfs上的文件中有下一行。第1行2号线3号线....亚麻在maptask中,我打印文件名和行。在reduce中,我收到了不同的订单。例如key=>{line3,line1,line2,....}现在,我有下一个问题。我想得到这个值列表,以便它们位于文件中,作为key=>{line1,line2,...linen}有什么办法吗? 最佳答案 如果您使用TextInputFormat,你会得到一个作为映射器输入。LongWritable部分(或键)

sorting - Hadoop 中的 Terasort 调度程序

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