sql >> Base de Datos >  >> NoSQL >> HBase

Tabla de muestra de HBase

¡Creemos una tabla HBase simple desde cero!

Hay muchas formas de crear una tabla HBase y llenarla:carga masiva, shell hbase, colmena con HBaseStorageHandler, etc.
Aquí usaremos la clase ImportTsv que tiene como objetivo analizar el archivo .tsv para insertarlo en un tabla HBase existente.

Primero, ¡obtengamos algunos datos!

Descargue access.tsv a cualquier máquina de su clúster:este es un archivo comprimido de 2 Gb con datos de muestra separados por tabulaciones, que contiene columnas rowkey, date, refer-url y http-code, y colóquelo en HDFS.

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

Ahora tenemos que crear la tabla en shell HBase; contendrá solo una ColumnFamily para este ejemplo

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

Y comience la importación con la clase ad hoc, seleccione las columnas (no olvide la HBASE_ROW_KEY que podría ser cualquiera de la columna, por lo que es la primera aquí).
La sintaxis es hbase JAVA_CLASS -DPARAMETERS TABLE_NAME FILE

Tenga en cuenta que puede especificar el separador tsv ‘-Dimporttsv.separator=,’ y que obviamente puede agregar diferentes familias de columnas 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

Comprobemos:

[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

¡Esto es todo!