第一步:配置pom文件
cloudera https://repository.cloudera.com/artifactory/cloudera-repos/
代码语言:javascript复制 org.apache.Hadoop
Hadoop-client
2.6.0-mr1-cdh5.14.0
org.apache.Hadoop
Hadoop-hdfs
2.6.0-cdh5.14.0
org.apache.hadoop
hadoop-common
2.6.0-cdh5.14.0
org.apache.hive
hive-exec
1.1.0-cdh5.14.0
org.apache.Hadoop
Hadoop-mapreduce-client-core
2.6.0-cdh5.14.0
junit
junit
4.11
test
org.testng
testng
RELEASE
org.apache.maven.plugins
maven-compiler-plugin
3.0
1.8
1.8
UTF-8
org.apache.maven.plugins
maven-shade-plugin
2.2
package
shade
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*/RSA
第二步 编写Map代码
1、实例一个实体类,继承Mapper<输入放入key的类型,输入的value的类型,输出放入key的类型,输出的value的 类型> 2 、重写map(LongWritable key, Text value, Context context)
key 每行行首的偏移量 value 每一行的数据 context 上下文对象
3、实现自己业务逻辑的代码 将数据进行拆分,并进行逐一输出。
第三步 编写Reduce代码
1、实例一个实体类,继承Reducer<输入放入key的类型,输入的value的类型,输出放入key的类型,输出的value 的类型> 2、重写reduce(Text key, Iterable values, Context context)
key: 每一个唯一的数据 values:map 输出value的集合 context:上下文对象
3、遍历values(1的list) 进行求和
4、将key 和这个key对应的value输出
第四步 Driver代码流程 //1 、实例一个job
//2、使用job 设置读物数据(包括数据的路径)
//3、使用job 设置MAP类(map 输入和输出的类型)
//4、使用job 设置Reduce类(Reduce 输入和输出的类型)
//5、使用job 设置数据的输出路径
//6、返回执行状态编号