基于字典将下列内容排序
a 1
a 3
a 5
a 4
b 9
b 7
b 3
规则:
1,第一列(word)按照字典顺序进行排序
2,第一列相同的时候,第二列(num)按照升序排列
步骤:1.准备一个sort.txt文件
sudo vi sort.txt
a 2
a 9
a 7
a 4
b 9
b 2
a 1
b 2
2.将其上传到hdfs文件系统中
hdfs dfs -put sort.txt /user/hdfs/
3.运行编写好的MapReduce jar包程序
yarn jar Hadoop-1.0-SNAPSHOT.jar com.zdz.sort.SortJob -D input=/user/hdfs/sort.txt -D output=/user/hdfs/sort-result
SortMapreduce程序代码:SortMapreduce程序
编程主要思路:在该MapReduce程序中,是将K1拿到的行文本数据封装成一个SortBean对象,在这个SortBean对象中实现了所拿到数据的序列化和反序列化方法,以及一个compareTo方法(用来对拿到的文本数据进行排序)。Map程序负责将拿到的K1(行偏移量)、V1(文本数据)处理为K2(基于行文本数据所封装的SortBean对象)、V2(NullWritable),再将其写入到上下文中。在这里需要注意的是,在我们所封装的SortBean对象中,已经完成了对文本数据的排序,所以我们的reduce程序只需要将map程序传过来的<K2,V2>写出即可。