分享

hbase0.96与hive0.12整合高可靠文档及问题总结

pig2 2014-5-28 15:03:08 发表于 收藏型 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 36 124442
NIITYZU 发表于 2014-12-9 10:28:13
楼主,请问下,hive启动元数据库时候,为什么一直卡在那边?有办法像其它服务启动一样开启之后就恢复到终端命令行吗?
回复

使用道具 举报

zhujun182104906 发表于 2014-12-31 11:03:57
hive与hbase整合以后貌似可以实现hive的更新和删除操作
回复

使用道具 举报

tang 发表于 2015-3-10 16:17:52
回复

使用道具 举报

尘世随缘 发表于 2015-4-7 13:23:51
hive和hbase的整合,比如插入一条数据,是变成2份还是一份?
如果变成了2份,那么太浪费储存空间了。
求解答。。。
回复

使用道具 举报

jzm_2003 发表于 2015-7-8 15:30:49
hadoop2.6 版本

hbase1.0 + hive1.1整合后  在hbase中插入数据正确    hive 中 insert 数据的时候  会报错

Diagnostic Messages for this Task:
Error: java.lang.RuntimeException: java.lang.NoSuchMethodError: org.apache.hadoop.hbase.client.Put.setDurability(Lorg/apache/hadoop/hbase/client/Durability;)V
    at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.map(ExecMapper.java:172)
    at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:450)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)
    at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:422)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
    at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
Caused by: java.lang.NoSuchMethodError: org.apache.hadoop.hbase.client.Put.setDurability(Lorg/apache/hadoop/hbase/client/Durability;)V
    at org.apache.hadoop.hive.hbase.HiveHBaseTableOutputFormat$MyRecordWriter.write(HiveHBaseTableOutputFormat.java:142)
    at org.apache.hadoop.hive.hbase.HiveHBaseTableOutputFormat$MyRecordWriter.write(HiveHBaseTableOutputFormat.java:117)
    at org.apache.hadoop.hive.ql.io.HivePassThroughRecordWriter.write(HivePassThroughRecordWriter.java:40)
    at org.apache.hadoop.hive.ql.exec.FileSinkOperator.process(FileSinkOperator.java:753)
    at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:837)
    at org.apache.hadoop.hive.ql.exec.SelectOperator.process(SelectOperator.java:88)
    at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:837)
    at org.apache.hadoop.hive.ql.exec.TableScanOperator.process(TableScanOperator.java:97)
    at org.apache.hadoop.hive.ql.exec.MapOperator$MapOpCtx.forward(MapOperator.java:162)
    at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:508)
    at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.map(ExecMapper.java:163)
    ... 8 more




回复

使用道具 举报

jzm_2003 发表于 2015-7-8 15:37:28
jzm_2003 发表于 2015-7-8 15:30
hadoop2.6 版本

hbase1.0 + hive1.1整合后  在hbase中插入数据正确    hive 中 insert 数据的时候  会 ...

hive是1.2版本


回复

使用道具 举报

Devin小洋人 发表于 2015-8-14 18:15:15

我也正在学习这个
1.0版本会不会高了?可能不兼容,我第一次用1.1.1的版本一样失败了
第二次hadoop2.5.2+hbase0.98.13+hive1.2.1+mysql成功了,可以通过hive在hbase上建表

回复

使用道具 举报

chengzhb_about 发表于 2015-8-16 22:29:40
本帖最后由 chengzhb_about 于 2015-8-16 22:42 编辑

请教楼主:
问题1:
hadoop@ubuntu:~$ hive --service metastore
Starting Hive Metastore Server
光标在此处停止。。。。。只显示一行,与楼主的显示明显少很多。
所以我感觉我的hive service没有起来,这是第一个问题。

问题2:
在问题1依然存在的情况下,我换一个终端执行hive,发现在hive下操作hdfs上的文件是没有问题的,如普通的create table,但在hive下想整合hbase时,错误如下:

hive> CREATE TABLE hbase_table_1(key int, value string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val") TBLPROPERTIES ("hbase.table.name" = "xyz");

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
hive>

注:
我的hadoop版本为2.7.1;hbase版本为1.0.1.1;hive版本为1.2.1
我没有安装zookeeper,使用hbase自带的zookeeper,另外我的hive-site.xml如下:
<configuration>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
  <description>JDBC connect string FOR a JDBC metastore</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
  <description>Driver class name FOR a JDBC metastore</description> </property>
<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>hive</value>
  <description>username TOUSE against metastore database</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>hive</value>
  <description>password TOUSE against metastore database</description>
</property>
<property>
  <name>hive.metastore.warehouse.dir</name>
  <value>hdfs://localhost:9000/hive/warehouse</value>
</property>
<property>
  <name>hive.exec.scratchdir</name>
  <value>hdfs://localhost:9000/hive/scratchdir</value>
</property>
<property>
  <name>hive.querylog.location</name>
  <value>/usr/hive/logs</value>
</property>

<property>
  <name>hive.aux.jars.path</name>
  <value>file:///opt/hive/hive/lib/hive-hbase-handler-1.2.1.jar,file:///opt/hive/hive/lib/protobuf-java-2.5.0.jar,file:///opt/hive/hive/lib/hbase-client-1.0.1.1.jar,file:///opt/hive/hive/lib/hbase-common-1.0.1.1.jar,file:///opt/hive/hive/lib/zookeeper-3.4.6.jar,file:///opt/hive/hive/lib/guava-14.0.1.jar</value>
</property>

</configuration>


上述jar文件都是放在我的/opt/hive/hive/lib下,路径和文件名都检查过没有问题。
回复

使用道具 举报

Devin小洋人 发表于 2015-8-19 15:09:26
chengzhb_about 发表于 2015-8-16 22:29
请教楼主:
问题1:
hadoop@ubuntu:~$ hive --service metastore

我也正在学hive,一起探讨探讨

关于问题一:
其实元数据库应该是起来了,只是应为没有把日志输出到控制台,所以控制台什么都没有,看起来就像卡在那里了
试试下面这句
hive  --service metastore -hiveconf hive.root.logger=DEBUG,console

关于问题二:
我也遇到了同样的问题,当时的版本hive1.2.1 hbase1.1.1
怀疑是版本兼容问题
后来我把hbase退回0.98.13解决了问题
在hbase1.1.1该问题依旧没有解决

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条