sql >> Databáze >  >> NoSQL >> HBase

Vzorová tabulka HBase

Pojďme vytvořit jednoduchou tabulku HBase od začátku!

Existuje mnoho způsobů, jak vytvořit tabulku HBase a naplnit ji:hromadné načtení, prostředí hbase, podregistr s HBaseStorageHandler atd.
Zde použijeme třídu ImportTsv, která má za cíl analyzovat soubor .tsv a vložit jej do souboru existující tabulku HBase.

Nejprve si vezměte nějaká data!

Stáhněte si access.tsv do libovolného počítače svého clusteru:jedná se o 2Gb zazipovaný soubor s ukázkovými daty oddělenými tabulátory, který obsahuje sloupce rowkey, date, referenční-url a http-kód, a vložte jej na HDFS.

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

Nyní musíme vytvořit tabulku v prostředí HBase; pro tento příklad bude obsahovat pouze jednu rodinu sloupců

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

A spusťte import s třídou ad hoc, vyberte sloupce (nezapomeňte na HBASE_ROW_KEY což může být kterýkoli ze sloupců, proto je zde první).
Syntaxe je hbase JAVA_CLASS -DPARAMETERS TABLE_NAME FILE

Všimněte si, že můžete zadat oddělovač tsv ‘-Dimporttsv.separator=,‘ a že samozřejmě můžete přidat různé rodiny sloupců 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

Zkontrolujeme:

[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

To je ono!


  1. Nelze nainstalovat doktrínu mongodb v symfony2 se skladatelem

  2. Jak zjistím, kde mongoDB ukládá data? (není ve výchozím /data/db!)

  3. Vytvoření funkce zobrazení bez vrácení odpovědi ve Flasku

  4. Proč se KEYS nedoporučuje používat v Redis?