1.まず、我々は最初の良いテーブルを作成する必要があります
#Baiduの李に名前空間でこの名前空間を作成し、列のクラスタ情報を開発するために 作成し、「李:百度」、「情報」
輸入org.apache.hadoop.conf.Configuration。 輸入org.apache.hadoop.fs.Path。 輸入org.apache.hadoop.hbase.HBaseConfiguration。 輸入org.apache.hadoop.hbase.client.Put; 輸入org.apache.hadoop.hbase.io.ImmutableBytesWritable; 輸入org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil; 輸入org.apache.hadoop.hbase.util.Bytes。 輸入org.apache.hadoop.io.LongWritable; 輸入org.apache.hadoop.io.Text; 輸入org.apache.hadoop.mapreduce.Job。 輸入org.apache.hadoop.mapreduce.Mapper; 輸入org.apache.hadoop.mapreduce.lib.input.FileInputFormat。 インポートにjava.io.IOException; パブリック クラスReadFromFileIntoHbase { 静的 クラス ReadFromFileMapperが延びるマッパー<LongWritable、テキスト、ImmutableBytesWritable、プット> { ImmutableBytesWritable IBW = 新しいImmutableBytesWritable()。 プライベート バイト [] FAMILY = Bytes.toBytes(" 情報" ); プライベート バイト [] SEARCH = Bytes.toBytes(" SERCH " )。 プライベート バイト [] RANK = Bytes.toBytes(" ランク" ); プライベート バイト []をクリックしてください= Bytes.toBytes(" クリック" ); プライベート バイト [] = Bytes.toBytes URL(" URL " ); @Overrideは、 保護された 無効地図(LongWritableキー、テキスト値、コンテキストコンテキスト)はIOExceptionが、InterruptedExceptionあるが{スロー // 新しいテーブルで指定された区切り文字 のString []言葉=値。.toString()スプリット(" \ T " ); // ユーザID +のような時間のrowKey 文字単語RK = [ 1 +] " - " +言葉[ 0 ]; 。IBW SET (Bytes.toBytes(RK))。 // 元のテーブルには、持っている IF(words.lengthを==6 ){ プットプット = 新しいプット(Bytes.toBytes(RK))。 put.addColumn(FAMILY、SEARCH、Bytes.toBytes(ワード[ 2 ]))。 put.addColumn(FAMILY、RANK、Bytes.toBytes(単語[ 3 ]))。 put.addColumn(FAMILY、CLICK、Bytes.toBytes(単語[ 4 ]))。 put.addColumn(FAMILY、URL、Bytes.toBytes(単語[ 5 ]))。 context.write(IBW、PUT)。 } 他{ 返します。 } } 公共の 静的な 無効メイン(文字列[] argsが){にIOException、ClassNotFoundExceptionが、例外:InterruptedExceptionをスロー 構成設定 = HBaseConfiguration.create()。 設定。セット(" hbase.zookeeper.quorum "、" server3の:2181 " ); 設定。セット(" zookeeper.znode.parent "、" / HBaseの、安全でありません" )。 ジョブジョブ = Job.getInstance(設定、" ExampleRead " ); job.setJarByClass(ReadFromFileIntoHbase。クラス); Job.setMapperClass(ReadFromFileMapper。クラス) 。job.setOutputKeyClass(ImmutableBytesWritable クラス) 。(PUTのjob.setOutputValueClass クラス); // 私たちはテーブルに最終的なデータが欲しいので、私たちは何をする必要があるため TableMapReduceUtilを.initTableReducerJob(" 梁:sogo4 "、ヌル、仕事); // 設定減らす job.setNumReduceTasks(0 ); FileInputFormat.addInputPath(仕事、新しい新しいパス(" D:\\ sogou.500w.utf8 " )); ブールB= job.waitForCompletion(真)。 もし(!のB){ スロー 新しいのIOException(" ジョブにエラーを!" ); } } } }
2.クイズについて
#前10の参照データ スキャン" のLi:百度"、LIMIT = {> 10 }