MapReduce初体验——WordCount 单词总和

2021-04-15 15:08:43 浏览数 (1)

第一步:配置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、返回执行状态编号

0 人点赞