HBase
 sql >> Database >  >> NoSQL >> HBase

Tabella di esempio HBase

Creiamo da zero un semplice tavolo HBase!

Esistono molti modi per creare una tabella HBase e popolarla:caricamento in blocco, shell hbase, hive con HBaseStorageHandler, ecc.
Qui useremo la classe ImportTsv che mira ad analizzare il file .tsv per inserirlo in un tabella HBase esistente.

Per prima cosa, prendiamo alcuni dati!

Scarica access.tsv su qualsiasi macchina del tuo cluster:questo è un file zippato da 2 Gb con dati di esempio separati da tabulazioni, contenente colonne rowkey, data, URL di riferimento e codice http, e inseriscilo su HDFS.

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

Ora dobbiamo creare la tabella nella shell HBase; conterrà solo una ColumnFamily per questo esempio

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

E avvia l'importazione con la classe ad hoc, seleziona le colonne (non dimenticare la HBASE_ROW_KEY che potrebbe essere una qualsiasi delle colonne, quindi è la prima qui).
La sintassi è hbase JAVA_CLASS -DPARAMETERS TABLE_NAME FILE

Nota che puoi specificare tsv separator '-Dimporttsv.separator=' e che ovviamente puoi aggiungere diverse famiglie di colonne 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

Controlliamo :

[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

Questo è tutto!