基本のHadoopのMapReduceのフレームワーク

パッケージday02。

輸入org.apache.hadoop.conf.Configuration。
輸入org.apache.hadoop.fs.Path。
輸入org.apache.hadoop.io.IntWritable;
輸入org.apache.hadoop.io.LongWritable;
輸入org.apache.hadoop.io.Text;
輸入org.apache.hadoop.mapreduce.Job。
輸入org.apache.hadoop.mapreduce.Mapper;
輸入org.apache.hadoop.mapreduce.Reducer。
輸入org.apache.hadoop.mapreduce.lib.input.FileInputFormat。
輸入org.apache.hadoop.mapreduce.lib.output.FileOutputFormat。

インポートにjava.io.IOException; 

/ ** 
 * @author
 @Create 2019年9月17日16:33 * 
 * * / 

  // 記録のLongWritable(地図入力側)オフセット

  // 処理されるデータの種類をテキスト読ん
     //は、(これらの2つのタイプ不変ということに注意してください。 )

  // テキスト(マップ出力端子)

  // IntWritable 

パブリック クラスWordCount1 {
     // マップ側
    パブリック 静的 クラス MapTask 延びマッパー<LongWritable、テキスト、テキスト、IntWritableは> { 
        @Overrideが
        保護 ボイドマップ(LongWritableキー、テキスト値、コンテキスト・コンテキスト)スローにIOException、InterruptedExceptionが{
             //オフセット値は、我々のデータを維持するための鍵である
             // コンテキストが外に処理されたデータを書き込むために使用された

            []の単語文字列 = value.toString()スプリット(「」); 

            //は(Hadoopの、1データを書き出します)
            のために(文字列ワード:ワード){ 
                context.write(新しい新しいテキスト(ワード)、新しい新しい IntWritable(1。 )); 
            } 
        } 
    } 


    // 減らす側(Hadoopの,. 1)(Hadoopの、35)

    公共の 静的 クラス ReduceTask 延び減速を<テキスト、IntWritable、テキスト、IntWritable> { 
        @Overrideは、
        保護された ボイド(テキストキー、反復処理可能<IntWritable>値は、コンテキスト・コンテキスト)が低減スローにIOException、InterruptedExceptionある{
             // キー指的是单词Hadoopの
             // 値(1,1,1,1,1,1,1)
            int型のカウント= 0 ;
            ため(IntWritable値:値){ 
                カウント ++ 
            } 
            // 写出去 
            context.write()テキスト(キー、新しいIntWritable(カウント)); 
        } 
    } 

    パブリック 静的 ボイドメイン(文字列[]引数)をスローIOException、ClassNotFoundExceptionが、InterruptedExceptionある{ 

        するSystem.setProperty( "HADOOP_USER_NAME"、 "ルート" ); 

        //は、実行するために、入力、JVMのタイプを教えて 
        設定を= confの新しい新しいコンフィギュレーション();
         // 接続のHadoopクラスタのパラメータを設定 
        conf.set(「FSを。 defaultFS "" HDFS:// hadoop01:9000 " ); 

        求人 = Job.getInstance(CONF); 

        job.setMapperClass(MapTask。クラス); 
        job.setReducerClass(ReduceTask。クラス); 
        job.setJarByClass(WordCount1。クラス) ; 

        // ジョブは、出力のタイプの出力パラメータを語りました
        job.setMapOutputKeyClass(テキスト。クラス); 
        job.setMapOutputValueClass(IntWritable。クラス); 
        job.setOutputKeyClass(テキスト。クラス); 
        job.setOutputValueClass(IntWritable。クラス); 

        // 仕事を出力パスで入力を伝える 
        FileInputFormat.addInputPath(仕事、新しい新しいパス( "/ベイダ/ wc.txt" )); 
        FileOutputFormat.setOutputPath(仕事、新しい新しいパス( "/ TEST1" )); 

        // ?bはトリプル表現である場所についてのヒント
        ブール = job.waitForCompletion B (真の); 
        System.out.printlnは(B "Niubiの成功": "問題があります"? )。
    } 
}

 

おすすめ

転載: www.cnblogs.com/VisionY/p/11567544.html