2015-05-08 2 views
2

Я бегу с версией улья 1.1.0, версией Hbase 1.0.1 и версией 2.7.0. Теперь для следующей команды я получаю ошибкуНевозможно создать таблицу hive для hbase

hive> CREATE TABLE hbase_table_1(eid int, ename string, esal double) 
 
    > STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
 
    > WITH SERDEPROPERTIES 
 
    > ("hbase.columns.mapping" = ":key,cfstr:enm,cfsal:esl") 
 
    > TBLPROPERTIES ("hbase.table.name" = "emp1"); 
 
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org.apache.hadoop.hbase.HTableDescriptor.addFamily(Lorg/apache/hadoop/hbase/HColumnDescriptor;)V

Если я создаю таблицу в HBase и ссылаются на то, из улья, используя внешнюю таблицу, которая работает отлично.

В доме куста я создал каталог auxlib и скопировал приведенные ниже файлы jar.

[email protected]:/usr/lib/hive/auxlib$ ls 
 
commons-beanutils-1.7.0.jar  commons-httpclient-3.0.1.jar  hbase-checkstyle-1.0.1.jar  hbase-protocol-1.0.1.jar 
 
commons-beanutils-core-1.8.0.jar commons-io-2.4.jar     hbase-client-1.0.1.jar   hbase-rest-1.0.1.jar 
 
commons-cli-1.2.jar    commons-lang-2.6.jar    hbase-common-1.0.1.jar   hbase-server-1.0.1.jar 
 
commons-codec-1.4.jar    commons-logging-1.1.3.jar   hbase-common-1.0.1-tests.jar hbase-server-1.0.1-tests.jar 
 
commons-collections-3.2.1.jar  commons-math-2.1.jar    hbase-examples-1.0.1.jar  hbase-shell-1.0.1.jar 
 
commons-compiler-2.7.6.jar  commons-pool-1.5.4.jar    hbase-hadoop2-compat-1.0.1.jar hbase-testing-util-1.0.1.jar 
 
commons-compress-1.4.1.jar  commons-vfs2-2.0.jar    hbase-hadoop-compat-1.0.1.jar hbase-thrift-1.0.1.jar 
 
commons-configuration-1.6.jar  guava-14.0.1.jar     hbase-it-1.0.1.jar    hive-hbase-handler-1.1.0.jar 
 
commons-dbcp-1.4.jar    hbase-annotations-1.0.1.jar  hbase-it-1.0.1-tests.jar  zookeeper-3.4.6.jar 
 
commons-digester-1.8.jar   hbase-annotations-1.0.1-tests.jar hbase-prefix-tree-1.0.1.jar

Приведенные ниже сведения установлены в файле .bashrc

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0/ 
 
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH 
 
#alias java="`which java` -Dwhatever" 
 

 
export HADOOP_HOME=/usr/local/hadoop 
 
export HADOOP_MAPRED_HOME=$HADOOP_HOME 
 
export HADOOP_COMMON_HOME=$HADOOP_HOME 
 
export HADOOP_HDFS_HOME=$HADOOP_HOME 
 
export YARN_HOME=$HADOOP_HOME 
 
export HADOOP_COMMON_LIB=$HADOOP_HOME/share/hadoop/common/lib 
 
export HADOOP_TOOLS_LIB=$HADOOP_HOME/share/hadoop/tools/lib 
 
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
 
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib" 
 
export HIVE_HOME="/usr/lib/hive" 
 
export HBASE_HOME="/usr/lib/hbase" 
 
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$HBASE_HOME/bin:$HADOOP_COMMON_LIB:$HADOOP_TOOLS_LIB:$PATH

Можете ли вы предположить, что здесь не так на самом деле.

ответ

0

Эта проблема исправлена ​​после использования hbase версии 0.98.14 с версией улья 1.1.0; плз посетить http://stackoverflow.com/questions/32701905/unable-to-load-data-in-hbase-table-‌​‌​from-hive подробности

0

Кажется, вы пропустили hbase.jar

Сначала проверьте файл hive-site.xml для свойства hive.aux.jars.path и убедитесь hbase.jar, zookeeper.jar & hive-hbase-handlerXXXX.jar указаны.

После этого войдите в оболочку улья и запустите list jars, чтобы убедиться, что они были загружены. Вы также можете загрузить их вручную (для текущего сеанса) с помощью команды add jar [your-jar].jar


Кроме того, если вы не хотите возиться с файлами конфигурации, вы можете создать свой собственный файл .hiverc в вашем доме путь с предпочтительные ваши команды инициализации, то есть:

SET hive.cli.print.header=true; 
SET hbase.scan.cacheblock=0; 
SET hbase.scan.cache=10000; 
SET hbase.client.scanner.cache=10000; 
add JAR /usr/lib/hive/lib/zookeeper.jar; 
add JAR /usr/lib/hive/lib/hbase.jar; 
add JAR /usr/lib/hive/lib/hive-hbase-handler-0.10.0-cdh4.7.1.jar; 
... 
+0

Да, hive.aux.jars.path отсутствовал ранее. –

+0

Я добавил это для zookeeper-3.4.6.jar, hive-hbase-handler-1.1.0.jar, guava-14.0.1.jar, hbase-common-1.0.1.jar, hbase-client-1.0. 1.jar, HBase-hadoop2-Compat-1.0.1.jar, HBase-Hadoop-Compat-1.0.1.jar, обыкновенные-конфигурации-1.6.jar В hive_env.sh Я установил HIVE_AUX_JARS_PATH, JAVA_HOME, HADOOP_HOME, HIVE_HOME и PATH –

+0

Но все же у меня такая же ошибка –

0

в текущее время, по HBaseIntegration

Hive 2.x will be compatible with HBase 1.x and higher. (See HIVE-10990 for details.) Consumers wanting to work with HBase 1.x using Hive 1.x will need to compile Hive 1.x stream code themselves.

Короче говоря, до улья 2.x выпуска, вам нужно скомпилировать код потока Hive 1.x самостоятельно!

+0

Не могли бы вы дать мне знать шаги для компиляции кода потока Hive 1.x –

+0

https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-BuildingHivefromSource –

+0

Я изменил версию hbase до 0.98.14- hadoop2, и с этим я успешно могу создать таблицу, но я не могу вставить данные. Не могли бы вы заглянуть в сообщение «http: // stackoverflow.com/ questions/32701905/невозможно загрузить-data-in-hbase-table-from-hive» и предложить –

0

В день, когда я получил тот же вопрос, и построить улей-Src снова с новой pom.xml конфигурации Пожалуйста, обратитесь и измените эту строку в pom.xml enter code here1.1.2

Примечание: Я использую Hadoop 2.7.1, Hive 1.2.1 и Hbase 1.1.2

+0

1.1.2

Смежные вопросы