无法为hbase创建配置单元表

llycmphe  于 2021-06-02  发布在  Hadoop
关注(0)|答案(4)|浏览(430)

我使用的是hive版本1.1.0、hbase版本1.0.1和hadoop版本2.7.0。现在对于下面的命令,我得到了错误

  1. hive> CREATE TABLE hbase_table_1(eid int, ename string, esal double)
  2. > STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
  3. > WITH SERDEPROPERTIES
  4. > ("hbase.columns.mapping" = ":key,cfstr:enm,cfsal:esl")
  5. > TBLPROPERTIES ("hbase.table.name" = "emp1");
  6. 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文件。

  1. hduser@ubuntu:/usr/lib/hive/auxlib$ ls
  2. commons-beanutils-1.7.0.jar commons-httpclient-3.0.1.jar hbase-checkstyle-1.0.1.jar hbase-protocol-1.0.1.jar
  3. commons-beanutils-core-1.8.0.jar commons-io-2.4.jar hbase-client-1.0.1.jar hbase-rest-1.0.1.jar
  4. commons-cli-1.2.jar commons-lang-2.6.jar hbase-common-1.0.1.jar hbase-server-1.0.1.jar
  5. 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
  6. commons-collections-3.2.1.jar commons-math-2.1.jar hbase-examples-1.0.1.jar hbase-shell-1.0.1.jar
  7. 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
  8. commons-compress-1.4.1.jar commons-vfs2-2.0.jar hbase-hadoop-compat-1.0.1.jar hbase-thrift-1.0.1.jar
  9. commons-configuration-1.6.jar guava-14.0.1.jar hbase-it-1.0.1.jar hive-hbase-handler-1.1.0.jar
  10. commons-dbcp-1.4.jar hbase-annotations-1.0.1.jar hbase-it-1.0.1-tests.jar zookeeper-3.4.6.jar
  11. commons-digester-1.8.jar hbase-annotations-1.0.1-tests.jar hbase-prefix-tree-1.0.1.jar

以下详细信息在.bashrc文件中设置

  1. export JAVA_HOME=/usr/lib/jvm/jdk1.8.0/
  2. export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
  3. # alias java="`which java` -Dwhatever"
  4. export HADOOP_HOME=/usr/local/hadoop
  5. export HADOOP_MAPRED_HOME=$HADOOP_HOME
  6. export HADOOP_COMMON_HOME=$HADOOP_HOME
  7. export HADOOP_HDFS_HOME=$HADOOP_HOME
  8. export YARN_HOME=$HADOOP_HOME
  9. export HADOOP_COMMON_LIB=$HADOOP_HOME/share/hadoop/common/lib
  10. export HADOOP_TOOLS_LIB=$HADOOP_HOME/share/hadoop/tools/lib
  11. export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
  12. export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
  13. export HIVE_HOME="/usr/lib/hive"
  14. export HBASE_HOME="/usr/lib/hbase"
  15. export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$HBASE_HOME/bin:$HADOOP_COMMON_LIB:$HADOOP_TOOLS_LIB:$PATH

你能告诉我这里到底出了什么问题吗。

jjhzyzn0

jjhzyzn01#

在使用hbase版本0.98.14和hive版本1.1.0后,此问题得到了修复;plz访问 http://stackoverflow.com/questions/32701905/unable-to-load-data-in-hbase-table-‌​‌​from-hive 有关详细信息

2exbekwf

2exbekwf2#

根据HBASeigration
hive 2.x将与hbase 1.x及更高版本兼容(有关详细信息,请参阅hive-10990。)希望使用hive 1.x使用hbase 1.x的用户需要自己编译hive 1.x流代码。
简而言之,在hive2.x发布之前,您需要自己编译hive1.x流代码!

kmpatx3s

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文件,即:

  1. SET hive.cli.print.header=true;
  2. SET hbase.scan.cacheblock=0;
  3. SET hbase.scan.cache=10000;
  4. SET hbase.client.scanner.cache=10000;
  5. add JAR /usr/lib/hive/lib/zookeeper.jar;
  6. add JAR /usr/lib/hive/lib/hbase.jar;
  7. add JAR /usr/lib/hive/lib/hive-hbase-handler-0.10.0-cdh4.7.1.jar;
  8. ...
v9tzhpje

v9tzhpje4#

今天我收到了同样的问题,并用新的pom.xml配置再次构建了hivesrc请参考并更改pom.xml中的这一行 enter code here 1.1.2
注意:我使用hadoop2.7.1、hive1.2.1和hbase 1.1.2

相关问题