Combate real de HBase | Importación de datos de Hive Cloud HBase

Entorno web

  1. 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.

  2. Entorno de VPC de máquina virtual de nube pública: elija comunicarse con hbase VPC

  3. Otros: necesidad de abrir la red pública hbase

  4. 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

  1. Escenarios aplicables: la cantidad de datos es inferior a 4T (porque necesita importar datos a través de la api de hbase)

  2. 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
  1. 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

imagen

  1. 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

  1. Escenarios aplicables: gran cantidad de datos (por encima de 4T)

  2. 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

imagen

  1. 通过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

imagen


Supongo que te gusta

Origin blog.51cto.com/15060465/2677284
Recomendado
Clasificación