jar -cvf MergeSort.jar *.class
创建 Hadoop 主目录为 /user/hadoop 并创建 input 文件夹:
/usr/local/hadoop/bin/hdfs dfs -mkdir -p /user/hadoop
/usr/local/hadoop/bin/hdfs dfs -mkdir input
若 intput 已存在则删除原有文件:
/usr/local/hadoop/bin/hdfs dfs -rm input/*
上传 1、2 和 3 文件到 input 文件夹中:
/usr/local/hadoop/bin/hdfs dfs -put ./1 input
/usr/local/hadoop/bin/hdfs dfs -put ./2 input
/usr/local/hadoop/bin/hdfs dfs -put ./3 input
使用之前确保 output 文件夹不存在:
/usr/local/hadoop/bin/hdfs dfs -rm -r output
使用我们刚生成的 Merge.jar 包:
/usr/local/hadoop/bin/hadoop jar MergeSort.jar MergeSort
查看输出结果:
/usr/local/hadoop/bin/hdfs dfs -cat output/*
输出如下:
hadoop@fzqs-Laptop:/usr/local/hadoop$ hdfs dfs -cat output/*
4 12
5 16
6 25
7 33
8 37
9 39
10 40
11 45
hadoop@fzqs-Laptop:/usr/local/hadoop$
此外,有想用 Python 写的可以参考我这篇博客:实验5 MapReduce初级编程实践(Python实现)
(一)编程实现文件合并和去重操作
对于两个输入文件,即文件 A 和文件 B,请编写 MapReduce 程序,对两个文件进行合并,
并剔除其中重复的内容,得到一个新的输出文件 C。下面是输入文件和输出文件的一个样例 供参考。
输入文件 A 的样例如下:
现在有多个输入文件,每个文件中的每行内容均为一个整数。要求读取所有文件中的整数,进行升序排序后,输出到一个新的文件中,输出的数据格式为每行两个整数,第一个数字为第二个整数的排序位次,第二个整数为原待排列的整数。
运行Java代码直接得出结果
package Mersort;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import
package org.apache.hadoop.examples;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apach...
二、实例描述
对输入文件中的数据进行排序。输入文件中的每行内容均为一个数字,即一个数据。要求在输出中每行有两个间隔的数字,其中,第二个数字代表原始数据,第一个数字代表这个原始数据在原始数据集中的位次。
样例输入:
file1:
读写HDFS文件,即将变量存在一个地方
配置Job属性,即将变量写道配置(Configuration)中
使用DistributedCache,但是DistributedCache是只读的
首先联想MapReduce过程,先Map,给输入,并给输出。Reduce则是将结...
大家好,又见面了,我是夜阑的狗,本文是专栏【大数据学习笔记(华为云)】专栏的第3篇文章,主要讲解是华为云MapReduce编程实践。【大数据学习笔记(华为云)】, 此专栏是我是夜阑的狗对华为云MapReduce编程实践,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。通过本次实验基本掌握了基本的MapReduce编程方法;以及用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖掘等。
序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。.......................................
MapReduce编程之排序问题一、问题描述文件中存储了商品id和商品价格的信息,文件中每行2列,第一列文本类型代表商品id,第二列为double类型代表商品价格。数据格式如下
数据排序目录一、实验内容二、实验过程
一、实验内容
对输入文件中数据进行排序。输入文件中的每行内容均为一个数字,即一个数据。要求在输出中每行有两个间隔的数字,其中,第一个代表原始数据在原始数据集中的位次,第二个代表原始数据。
1)file1:
65223
2)file2:
3)file3:
1 ...
三、实验内容
编程实现文件合并和去重操作
对于两个输入文件,即文件A和文件B,请编写MapReduce程序,对两个文件进行合并,并剔除其中重复的内容,得到一个新的输出文件C。下面是输入文件和输出文件的一个样例供参考。
输入文件A的样