Entorno web
Línea dedicada: los usuarios deben configurar la información de red relacionada con VPC del clúster hbase en la línea dedicada, que puede conectarse directamente al entorno hbase.
Entorno de VPC de máquina virtual de nube pública: elija comunicarse con hbase VPC
Otros: necesidad de abrir la red pública hbase
Nota: Importe datos de hbase de forma predeterminada y utilice el paquete de la comunidad para los protocolos hbase-common, hbase-client, hbase-server y hbase-protocol dependientes. Si se trata de una red pública, debe utilizar el paquete relevante publicado por cloud hbase
Opción 1: tabla hbase de asociación de colmenas
Escenarios aplicables: la cantidad de datos es inferior a 4T (porque necesita importar datos a través de la api de hbase)
Obtenga la dirección de conexión zk de la página de hbase e inicie el cliente de hive de la siguiente manera
colmena --hiveconf hbase.zookeeper.quorum = xxxx
El caso donde la tabla hbase no existe
Cree la tabla de colmena hive_hbase_table para mapear la tabla hbase base_table, la tabla hbase hbase_table se creará automáticamente y se eliminará cuando se elimine la tabla de colmena. Aquí debe especificar la relación de mapeo del esquema de colmena al esquema de hbase. Para el tipo, consulte Hive / HBaseIntegration
CREAR TABLA hive_hbase_table (clave int, cadena de valor) ALMACENADO POR 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'WITH SERDEPROPERTIES ("hbase.columns.mapping" = ": key, cf1: val") TBLPROPERTIES ("hbase. table.name "=" hbase_table ", " hbase.mapred.output.outputtable "=" hbase_table ");
Cree una tabla de colmena original y prepare algunos datos
crear tabla hive_data (mykey int, myval string); insertar en los valores de hive_data (1, "www.ymq.io");
Importe los datos de la tabla de colmena original hive_data en la tabla hbase hbase_table a través de la tabla de colmena hive_hbase_table
insertar en la tabla hive_hbase_table select * from hive_data;
Compruebe si hay datos en la tabla hbase hbase_table
La existencia de la tabla hbase
Cree una tabla externa de colmena para asociar la tabla hbase, preste atención a la relación de mapeo entre el esquema de colmena y el esquema de hbase. Eliminar la tabla externa no eliminará la tabla hbase correspondiente
CREAR TABLA EXTERNA hive_hbase_external_table (clave int, cadena de valor) ALMACENADA POR 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'WITH SERDEPROPERTIES ("hbase.columns.mapping" = ": key, cf1: val") TBLPROPERTIES ("hbase .table.name "=" hbase_table ", " hbase.mapred.output.outputtable "=" hbase_table ");
Otros datos importados están relacionados con 2
Solución 2: Genere hfile desde la tabla de colmena e importe a hbase mediante carga masiva
Escenarios aplicables: gran cantidad de datos (por encima de 4T)
Convierta los datos de la colmena en hfile
Inicie Hive y agregue el paquete jar de hbase relevante
agregar jar /usr/lib/hive-current/lib/hive-hbase-handler-2.3.3.jar;add jar /usr/lib/hive-current/lib/hbase-common-1.1.1.jar;add jar /usr/lib/hive-current/lib/hbase-client-1.1.1.jar;add jar /usr/lib/hive-current/lib/hbase-protocol-1.1.1.jar;add jar / usr / lib /hive-current/lib/hbase-server-1.1.1.jar;
Cree una tabla de colmena cuyo formato de salida sea HiveHFileOutputFormat
其中/tmp/hbase_table_hfile/cf_0是hfile保存到hdfs的路径,cf_0是hbase family的名字
create table hbase_hfile_table(key int, cf_0_c0 string) stored asINPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat'OUTPUTFORMAT 'org.apache.hadoop.hive.hbase.HiveHFileOutputFormat'TBLPROPERTIES ('hfile.family.path' = '/tmp/hbase_table_hfile/cf_0');
把原始数据表的数据通过hbase_hfile_table表保存为hfile
insert into table hbase_hfile_table select * from hive_data;
查看对应hdfs路径是否生成了hfile
通过bulkload将数据导入到hbase表中
使用阿里云hbase客户端创建具有上面对应family的hbase表
hbase(main):012:0> create 'hbase_hfile_load_table','cf_0'
下载云hbase客户端,配置hbase-site.xml,并将hdfs-site.xml、core-site.xml拷贝到hbase/conf目录
wget http://public-hbase.oss-cn-hangzhou.aliyuncs.com/installpackage/alihbase-1.1.4-bin.tar.gz. vi conf / hbase-site.xml <property> <name> hbase.zookeeper.quorum </name> <value> xxx </value> </property>
Ejecute la carga masiva para importar a la tabla hbase
bin / hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles hdfs: // maste: puerto / tmp / hbase_table_hfile / hbase_hfile_load_table
Compruebe si los datos se importan en la tabla hbase hbase_hfile_load_table