在本博客的《Flume-1.4.0和Hbase-0.96.0整合》我们已经学习了如何使用Flume-1.4.0和Hbase-0.96.0进行整合。我们可以很容易的配置Hbase sink,并和最新版的Hbase整合,但是由于项目的特殊情况,我需要将Flume-0.9.4和Hbase-0.96整合,搞过这个的人应该知道,Flume-0.9.4和Hbase-0.96非常棘手,各种版本的不兼容等情况,最终通过我和同事的两天奋战,终于通过修改Hadoop-2.2.0和Flume-0.9.4的一些源码,使得Flume-0.9.4.0和Hbase-0.96.0整合成功了(如果有需要知道我们如何修改Hadoop-2.2.0和Flume-0.9.4的源码的人,可以邮件联系我:wyphao.2007@163.com)。今天主要是分享如何在Flume-0.9.4里面配置Hbase sink。
在下载好的Flume-0.9.4里面有两个用于测试Hbase sink的插件类,但是默认情况下,这个插件类是没有被启用的,读完这篇文章你将会了解到如何配置Hbase sink。
1、修改$FLUME_HOME/conf/flume-site.xml的配置文件,在里面添加以下配置:
<property> <name>flume.plugin.classes</name> <value>com.cloudera.flume.hbase.HBaseSink, com.cloudera.flume.hbase.Attr2HBaseEventSink</value> <description>Comma separated list of plugin classes</description> </property>
其中value属性配置的是Hbase sink类,需要将包名添加进去。
如果你需要编写自己的Hbase Sink类,只需要使你的类继承自EventSink.Base类,并按要求重写其中的一些方法,具体可以参照Flume源码自带的HBaseSink和Attr2HBaseEventSink类的写法。
2、拷贝Hbase sink jar文件到$FLUME_HOME/plugins文件夹里面
[wyp@master plugins] cp ~/flume-plugin-hbasesink-0.9.4-cdh3u3.jar $FLUME_HOME/plugins
其实不需要拷贝到$FLUME_HOME/plugins里面,你随便放都行,这里主要是为了便于以后的管理而这样配置的。
3、修改$FLUME_HOME/bin/flume-env.sh文件,在里面添加如下内容
export FLUME_CLASSPATH= /home/q/flume-0.9.4-cdh3u3/plugins/flume-plugin-hbasesink-0.9.4-cdh3u3.jar
4、重启Flume master节点
重启完Flume master节点之后,可以在http://master:35871/masterext.jsp页面中的Sinks表格里面看到attr2hbase和hbase两个Hbase sink,这样你就可以在collector里面用到这个Sink。当然,如果默认的Hbase sink不能满足你的要求,可以自己写一个Hbase sink。关于如何写自己的Hbase sink,感兴趣的同学可以留言或者给我发邮件。
本博客文章除特别声明,全部都是原创!
尊重原创,转载请注明: 转载自过往记忆(http://www.iteblog.com/)
本文链接地址: 《Flume-0.9.4配置Hbase sink》(http://www.iteblog.com/archives/912)
E-mail:wyphao.2007@163.com QQ:397090770
尊重原创,转载请注明: 转载自过往记忆(http://www.iteblog.com/)
本文链接地址: 《Flume-0.9.4配置Hbase sink》(http://www.iteblog.com/archives/912)
E-mail:wyphao.2007@163.com QQ:397090770