tables tablas ejemplo describe crear comandos hadoop hive hbase apache-zookeeper hortonworks-data-platform

hadoop - tablas - hbase insert



Integrando Hbase con Hive: registra la tabla Hbase (1)

Estoy usando Hortonworks Sandbox 2.0 que contiene la siguiente versión de Hbase y Hive

Component Version ------------------------ Apache Hadoop 2.2.0 Apache Hive 0.12.0 Apache HBase 0.96.0 Apache ZooKeeper 3.4.5

... y estoy tratando de registrar mi tabla hbase en colmena usando la siguiente consulta

CREATE TABLE IF NOT EXISTS Document_Table_Hive (key STRING, author STRING, category STRING) STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’ WITH SERDEPROPERTIES (‘hbase.columns.mapping’ = ‘:key,metadata:author,categories:category’) TBLPROPERTIES (‘hbase.table.name’ = ‘Document’);

Esto no funciona, obtengo la siguiente excepción:

2014-03-26 09:14:57,341 ERROR exec.DDLTask (DDLTask.java:execute(435)) – java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration at org.apache.hadoop.hive.hbase.HBaseStorageHandler.setConf(HBaseStorageHandler.java:249) at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:73) at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:133) 2014-03-26 09:14:57,368 ERROR ql.Driver (SessionState.java:printError(419)) – FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org/apache/hadoop/hbase/HBaseConfiguration

Ya he creado la tabla Hbase "Documento" y el comando describir da la siguiente descripción

‘Document’, {NAME => ‘categories’,..}, {NAME => ‘comments’,..}, {NAME => ‘metadata’,..}

He intentado las siguientes cosas

  1. agregue hive.aux.jars.path en hive-site.xml

    hive.aux.jars.path file:///etc/hbase/conf/hbase-site.xml,file:///usr/lib/hbase/lib/hbase-common-0.96.0.2.0.6.0-76-hadoop2.jar,file:///usr/lib/hive/lib/hive-hbase-handler-0.12.0.2.0.6.0-76.jar,file:///usr/lib/hbase/lib/hbase-client-0.96.0.2.0.6.0-76-hadoop2.jar,file:///usr/lib/zookeeper/zookeeper-3.4.5.2.0.6.0-76.jar

  2. agregar frascos con el comando colmena agregar jar

    add jar /usr/lib/hbase/lib/hbase-common-0.96.0.2.0.6.0-76-hadoop2.jar; add jar /usr/lib/hive/lib/hive-hbase-handler-0.12.0.2.0.6.0-76.jar; add jar /usr/lib/hbase/lib/hbase-client-0.96.0.2.0.6.0-76-hadoop2.jar; add jar /usr/lib/zookeeper/zookeeper-3.4.5.2.0.6.0-76.jar; add file /etc/hbase/conf/hbase-site.xml

  3. especifica el hadoop_classpath

    export HADOOP_CLASSPATH=/etc/hbase/conf:/usr/lib/hbase/lib/hbase-common-0.96.0.2.0.6.0-76-hadoop2:/usr/lib/zookeeper/zookeeper-3.4.5.2.0.6.0-76.jar

¡Y todavía no está funcionando!

¿Cómo puedo agregar los archivos jar en el classpath de hive para que encuentre la clase hbaseConfiguration, o es un problema completamente diferente?


No es necesario copiar los frascos enteros. Solo hbase-*.jar , zookeeper*.jar, hive-hbase-handler*.jar sería suficiente. De forma predeterminada, todos los jar relacionados con hadoop se agregarían a hadoop classpath, ya que internamente usa el comando hadoop para ejecutarse.

O

En lugar de copiar hbase jar a la biblioteca de colmenas especificando la variable de entorno HIVE_AUX_JARS_PATH a / usr / lib / hbase / lib / en /etc/hive/conf/hive-env.sh también lo hará.

El segundo enfoque es más sugerido que el primero