教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

Hadoop如何实现二次排序?【大数据面试题】

更新时间:2021年05月26日14时28分 来源:传智教育 浏览次数:

传智教育-一样的教育,不一样的品质


问题分析

即对key和value双排序。默认情况下,Map输出的结果会对Key进行默认的排序,但是有时候需要对Key排序的同时还需要对Value进行排序,这时候就要用到二次排序了。

核心答案讲解

有两种方法进行二次排序,分别为:buffer and in memory sort和 value-to-key conversion。
buffer and in memory sort
主要思想是:在reduce()函数中,将某个key对应的所有value保存到内存中,然后进行排序。 这种方法最大的缺点是:可能会造成out of memory。

value-to-key conversion
主要思想是:将key和部分value拼接成一个组合key(实现WritableComparable接口或者调用 setSortComparatorClass函数),这样reduce获取的结果便是先按key排序,后按value排序的结果,需要注意的是,用户需 要自己实现Paritioner,以便只按照key进行数据划分。Hadoop显式的支持二次排序,在Configuration类中有个 setGroupingComparatorClass()方法,可用于设置排序被group的key值。

问题扩展

MapReduce:写Mapreduce进行数据处理,需要利用java、python等语言进行开发调试,如果没有一项技术(如 Java)基础,几乎不可能学会 MapReduce。

Hive:Hive 构建于传统的数据库和数据仓库理念之上。它对待数据的方式就像是它有一个基于 SQL 或基于架构的结构。Apache Hive提供了一种更具体和更高级的语言,通过运行Hadoop作业来查询数据,而不是直接编写脚本来逐步操作Hadoop上的几个MapReduce作业。Hive的初步设计思路在于提供与SQL类似的使用体验,开发人员只需要掌握Sql相关的知识就可以使用。

项目应用

在大数据的复杂统计分析中,可以使用Hive的SQL功能来实现排序等不同的算法,降低入门难度,提高研发效率。





猜你喜欢:

Hadoop集群有几种部署模式?各种模式有什么特点?

Hadoop安装教程,8大安装目录的内容和作用分别是什么?

hadoop大数据开发培训机构推荐

Hadoop实现join的有几种方法?【大数据面试题】

传智教育Python+大数据开发培训

0 分享到:
和我们在线交谈!