我使用的是hive版本1.1.0、hbase版本1.0.1和hadoop版本2.7.0。现在对于下面的命令,我得到了错误
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中创建一个表,并使用外部表从配置单元引用该表,那么工作正常。
在hivehome中,我创建了一个auxlib目录并复制了下面的jar文件。
hduser@ubuntu:/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
你能告诉我这里到底出了什么问题吗。
4条答案
按热度按时间jjhzyzn01#
在使用hbase版本0.98.14和hive版本1.1.0后,此问题得到了修复;plz访问
http://stackoverflow.com/questions/32701905/unable-to-load-data-in-hbase-table-from-hive
有关详细信息2exbekwf2#
根据HBASeigration
hive 2.x将与hbase 1.x及更高版本兼容(有关详细信息,请参阅hive-10990。)希望使用hive 1.x使用hbase 1.x的用户需要自己编译hive 1.x流代码。
简而言之,在hive2.x发布之前,您需要自己编译hive1.x流代码!
kmpatx3s3#
你好像错过了
hbase.jar
首先检查你的hive-site.xml
属性的文件hive.aux.jars.path
确保hbase.jar
,zookeeper.jar
&hive-hbase-handlerXXXX.jar
已指定。之后,进入Hive外壳并运行
list jars
确保他们已经上膛了。也可以使用命令手动加载它们(对于当前会话)add jar [your-jar].jar
此外,如果不想弄乱配置文件,可以使用首选的初始化命令在主路径中创建自己的.hiverc文件,即:v9tzhpje4#
今天我收到了同样的问题,并用新的pom.xml配置再次构建了hivesrc请参考并更改pom.xml中的这一行
enter code here
1.1.2注意:我使用hadoop2.7.1、hive1.2.1和hbase 1.1.2