kettle连接hbase

org.apache.hadoop.hbase.MasterNotRunningException:The node /hbase-unsecure is not in Zookeeper. It should have been written by the master.Check the value configured in "zookeeper.znode.parent".There could be a mismatch with the one configured in the master.

最近在测试开源etl工具kettle的可使用性。因为网上的资料不多。而且都比较老。只能自己摸索。今天在测试kettle连接hbase的时候遇到了错误。怎么都连不上。

我的集群是用hadoop2.6.0+hbase1.1.2搭建起来的。

开始的时候是各种报错。搜了一下资料才发现是版本不对。kettle默认是hadoop0.20版本的。而且并不是支持所有的hadoop的。对于2.xapache hadoop,以及cdh,等版本的hadoop。需要我们自己去配置。

在安装目录的data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations目录下有安装包自带的hadoop版本。当然并不全,如果需要其他的需要去官网找。

在该目录的上级目录,也就是data-integration\plugins\pentaho-big-data-plugin\下有一个plugin.properties文件。

我们如果不是用的hadoop0.20版本的hadoop就需要修改这里面的active.hadoop.configuration=hadoop-20配置。将后面的hadoop-20改成hadoop-configurations下对应的目录名就可以了。比如我这次用的是Apache hadoop2.2.x版本。我就需要改成hdp22这样就可以了。

但是配置好的使用的时候又遇到了上面第一句的问题。bing搜了一下。说是版本不对的问题。登录zookeeper看了一下。原来zookeeper存储元数据的目录是/hbase。

而这里读取的是/ hbase-unsecure.所以,需要改一下data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations目录下对应hadoop目录中的hbase-site.xml中的配置。修改成/hbase即可。

至此。终于能正常的从hbase中读出数据以及导入数据了。



你可能感兴趣的:(Hbase)