hive +hbase 得不到返回结果

蓝必照 发布于 2012/09/11 10:17
阅读 3K+
收藏 0

在hive中建立外表链接到hbase的表,在做复杂查询时发现得不到结果返回。都是hive 0.9 版本。

远程客户端错误:

Caused by: java.sql.SQLException: Query returned non-zero code: 9, cause: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask

at org.apache.hadoop.hive.jdbc.HivePreparedStatement.executeImmediate(HivePreparedStatement.java:177)

at org.apache.hadoop.hive.jdbc.HivePreparedStatement.executeQuery(HivePreparedStatement.java:140)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:122)

... 88 more

Caused by: HiveServerException(message:Query returned non-zero code: 9, cause: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask, errorCode:9, SQLState:08S01)

at org.apache.hadoop.hive.service.ThriftHive$execute_result.read(ThriftHive.java:1318)

at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78)

at org.apache.hadoop.hive.service.ThriftHive$Client.recv_execute(ThriftHive.java:105)

at org.apache.hadoop.hive.service.ThriftHive$Client.execute(ThriftHive.java:92)

at org.apache.hadoop.hive.jdbc.HivePreparedStatement.executeImmediate(HivePreparedStatement.java:175)

... 94 more





hadoop 日志:


java.io.IOException: Cannot create an instance of InputSplit class = org.apache.hadoop.hive.hbase.HBaseSplit:org.apache.hadoop.hive.hbase.HBaseSplit
>         at org.apache.hadoop.hive.ql.io.HiveInputFormat$HiveInputSplit.readFields(HiveInputFormat.java:145)
>         at org.apache.hadoop.io.serializer.WritableSerialization$WritableDeserializer.deserialize(WritableSerialization.java:67)
>         at org.apache.hadoop.io.serializer.WritableSerialization$WritableDeserializer.deserialize(WritableSerialization.java:40)
>         at org.apache.hadoop.mapred.MapTask.getSplitDetails(MapTask.java:348)
>         at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:364)
>         at org.apache.hadoop.mapred.MapTask.run(MapTask.java:324)
>         at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at javax.security.auth.Subject.doAs(Subject.java:415)
>         at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1115)
>         at org.apache.hadoop.mapred.Child.main(Child.java:262)



 

加载中
0
rainyshadow
rainyshadow

把相关的包导入进hive

修改hive-site.xml

添加(以下是cloudera的):

<property>
    <name>hive.aux.jars.path</name>
    <value>file:///opt/cloudera/parcels/CDH-4.4.0-1.cdh4.4.0.p0.39/lib/hbase/hbase.jar,file:///opt/cloudera/parcels/CDH-4.4.0-1.cdh4.4.0.p0.39/lib/hive/lib/hive-hbase-handler-0.10.0-cdh4.4.0.jar,file:///opt/cloudera/parcels/CDH-4.4.0-1.cdh4.4.0.p0.39/lib/zookeeper/zookeeper.jar</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>zookeeper的主机名</value>
  </property>

返回顶部
顶部