sql >> データベース >  >> NoSQL >> HBase

HBaseサンプルテーブル

    簡単なHBaseテーブルを最初から作成しましょう!

    HBaseテーブルを作成してデータを取り込む方法はたくさんあります。バルクロード、hbaseシェル、HBaseStorageHandlerを使用したハイブなどです。
    ここでは、.tsvファイルを解析して挿入することを目的としたImportTsvクラスを使用します。既存のHBaseテーブル。

    まず、いくつかのデータを取得しましょう!

    クラスターの任意のマシンにaccess.tsvをダウンロードします。これは2Gbのzipファイルで、タブで区切られたサンプルデータが含まれ、rowkey、date、refer-url、http-codeの列が含まれ、HDFSに配置されます。

    [root@sandbox ~]# gunzip access.tsv.gz
    [root@sandbox ~]# hdfs dfs -copyFromLocal ./access.tsv /tmp/

    次に、HBaseシェルでテーブルを作成する必要があります。この例では、ColumnFamilyが1つだけ含まれます

    [root@sandbox ~]# hbase shell
    hbase(main):001:0> create 'access_demo','cf1'
    0 row(s) in 14.2610 seconds

    そして、アドホッククラスでインポートを開始し、列を選択します( HBASE_ROW_KEY を忘れないでください) これはどの列でもかまいません。したがって、ここで最初になります。
    構文はhbaseJAVA_CLASS -DPARAMETERS TABLE_NAME FILE

    tsvセパレータ「-Dimporttsv.separator=」を指定でき、明らかに異なる列ファミリcf1:field1、cf1:field2、cf2:field3、cf2:field4

    を追加できることに注意してください。
    [root@sandbox ~]# hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=HBASE_ROW_KEY,cf1:date,cf1:refer-url,cf1:http-code access_demo /tmp/access.tsv
    
    2015-05-21 19:55:38,144 INFO [main] mapreduce.Job: Job job_1432235700898_0002 running in uber mode : false
    2015-05-21 19:55:38,151 INFO [main] mapreduce.Job: map 0% reduce 0%
    2015-05-21 19:56:00,718 INFO [main] mapreduce.Job: map 7% reduce 0%
    2015-05-21 19:56:03,742 INFO [main] mapreduce.Job: map 21% reduce 0%
    2015-05-21 19:56:06,785 INFO [main] mapreduce.Job: map 65% reduce 0%
    2015-05-21 19:56:10,846 INFO [main] mapreduce.Job: map 95% reduce 0%
    2015-05-21 19:56:11,855 INFO [main] mapreduce.Job: map 100% reduce 0%
    2015-05-21 19:56:13,948 INFO [main] mapreduce.Job: Job job_1432235700898_0002 completed successfully

    確認しましょう:

    [root@sandbox ~]# hbase shell
    hbase(main):001:0> list
    TABLE
    access_demo
    iemployee
    sales_data
    3 row(s) in 9.7180 seconds
    
    => ["access_demo", "iemployee", "sales_data"]
    hbase(main):002:0> scan 'access_demo'
    ROW COLUMN+CELL
    # rowkey column=cf1:date, timestamp=1432238079103, value=date
    # rowkey column=cf1:http-code, timestamp=1432238079103, value=http-code
    # rowkey column=cf1:refer-url, timestamp=1432238079103, value=refer-url
    74.201.80.25/san-rafael-ca/events/sho column=cf1:date, timestamp=1432238079103, value=2008-01-25 16:20:50
    w/80343522-eckhart-tolle
    74.201.80.25/san-rafael-ca/events/sho column=cf1:http-code, timestamp=1432238079103, value=200
    w/80343522-eckhart-tolle
    74.201.80.25/san-rafael-ca/events/sho column=cf1:refer-url, timestamp=1432238079103, value=www.google.com/search
    w/80343522-eckhart-tolle
    calendar.boston.com/ column=cf1:date, timestamp=1432238079103, value=2008-01-25 19:35:50
    calendar.boston.com/ column=cf1:http-code, timestamp=1432238079103, value=200

    これだ!


    1. Pythonを使用して複雑なネストされたJSONをRedisに保存する方法

    2. DataImportHandlerを使用してMongoDBとSolrを接続する手順

    3. Hadoop Map/Reduceと組み込みのMap/Reduce

    4. MongoDBコレクションのオブジェクト配列内のクエリされた要素のみを取得します