一开始用hadoop2.2.0 + hbase 0.96 + hive 0.12 ,基本全部都配好了。只有在hive中查询hbase的表出错。以直报如下错误:
java.io.IOException: java.lang.ClassCastException: org.apache.hadoop.hbase.client.Result cannot be cast to org.apache.hadoop.io.Writabl
后来发现hbase0.96和hive0.12不兼容,hive-hbase-handle-0.12.0.jar不兼容hbase0.96,hive0.12还停留在hadoop1。于是乎采用hbase0.94测试。
鉴于hbase0.94不兼容hadoop2,同事在网上找到一篇文章http://yanbohappy.sinaapp.com/?p=192
在文中讲到用mvn clean package assembly:assembly -DskipTests -Dhadoop.profile=2.0 重编hbase-0.94.2.tar.gz,
1,将hbase-0.94.0.jar复制到每台hadoop的/hadoop_home/share/hadoop/common/lib/下重启hadoop,
2,将hbase-0.94.0.jar拷贝到hive/lib下,hbase-site.xml拷贝到hive/conf/下
3,将hive-hbase-handle-0.12.0.jar拷贝到hbase/lib下。
至于hbase整合hive的其他配置和hadoop1的时候一样。