Flume-1.4和Hbase-0.96整合

原创 2016年05月31日 17:27:33

最近由于项目需要把Flume收集到的日志信息插入到Hbase中,由于第一次接触这些,在整合的过程中,我遇到了许多问题,我相信很多人也应该会遇到这些问题的,于是我把整个整合的过程写出来,希望给那些同样遇到这样问题的朋友帮助。

1、本程序一共用了三台集群搭建集群,这三台机器的Hostname分别为master、node1、node2;master机器是Hadoop以及Hbase集群的master。三台机器上分别启动的进程如下:

[wyp@master ~]$ jps
2973 HRegionServer
4083 Jps
2145 DataNode
3496 HMaster
2275 NodeManager
1740 NameNode
2790 QuorumPeerMain
1895 ResourceManager

[wyp@node1 ~]$ jps
7801 QuorumPeerMain
11669 DataNode
29419 Jps
11782 NodeManager
29092 HRegionServer

[wyp@node2 ~]$ jps
2310 DataNode
2726 HRegionServer
2622 QuorumPeerMain
3104 Jps
2437 NodeManager
2、以master机器作为flume数据的源、并将数据发送给node1机器上的flume,最后node1机器上的flume将数据插入到Hbase中。master机器上的flume和node1机器上的flume中分别做如下的配置:
在master的$FLUME_HOME/conf/目录下创建以下文件(文件名随便取),并做如下配置,这是数据的发送端:
[wyp@master conf]$ vim example.conf
agent.sources = baksrc
agent.channels = memoryChannel
agent.sinks = remotesink

agent.sources.baksrc.type = exec
agent.sources.baksrc.command = tail -F /home/wyp/Documents/data/data.txt
agent.sources.baksrc.checkperiodic = 1000

agent.channels.memoryChannel.type = memory
agent.channels.memoryChannel.keep-alive = 30
agent.channels.memoryChannel.capacity = 10000
agent.channels.memoryChannel.transactionCapacity = 10000

agent.sinks.remotesink.type = avro
agent.sinks.remotesink.hostname = node1
agent.sinks.remotesink.port = 23004
agent.sinks.remotesink.channel = memoryChannel
在node1的$FLUME_HOME/conf/目录下创建以下文件(文件名随便取),并做如下配置,这是数据的接收端:
[wyp@node1 conf]$ vim example.conf
agent.sources = avrosrc
agent.channels = memoryChannel
agent.sinks = fileSink

agent.sources.avrosrc.type = avro
agent.sources.avrosrc.bind = node1
agent.sources.avrosrc.port = 23004
agent.sources.avrosrc.channels = memoryChannel

agent.channels.memoryChannel.type = memory
agent.channels.memoryChannel.keep-alive = 30
agent.channels.memoryChannel.capacity = 10000
agent.channels.memoryChannel.transactionCapacity =10000

agent.sinks.fileSink.type = hbase
agent.sinks.fileSink.table = wyp
agent.sinks.fileSink.columnFamily = cf
agent.sinks.fileSink.column = charges
agent.sinks.fileSink.serializer = 
                  org.apache.flume.sink.hbase.RegexHbaseEventSerializer
agent.sinks.fileSink.channel = memoryChannel
3、在master机器和node1机器上分别启动flume服务进程:
[wyp@master apache-flume-1.4.0-bin]$ bin/flume-ng agent 
                                  --conf conf 
                                  --conf-file conf/example.conf 
                                  --name agent 
                                  -Dflume.root.logger=INFO,console

[wyp@node1 apache-flume-1.4.0-bin]$ bin/flume-ng agent 
                                  --conf conf 
                                  --conf-file conf/example.conf 
                                  --name agent 
                                  -Dflume.root.logger=INFO,console
当分别在node1和master机器上启动上面的进程之后,在node1机器上将会输出以下的信息:
2014-01-20 22:41:56,179 (pool-3-thread-1) 
[INFO - org.apache.avro.ipc.NettyServer$NettyServerAvroHandler.
                                      handleUpstream(NettyServer.java:171)] 
[id: 0x16c775c5, /192.168.142.161:42201 => /192.168.142.162:23004] OPEN
2014-01-20 22:41:56,182 (pool-4-thread-1) 
[INFO - org.apache.avro.ipc.NettyServer$NettyServerAvroHandler.
                                      handleUpstream(NettyServer.java:171)]
[id: 0x16c775c5, /192.168.142.161:42201 => /192.168.142.162:23004] 
                                      BOUND: /192.168.142.162:23004
2014-01-20 22:41:56,182 (pool-4-thread-1) 
[INFO - org.apache.avro.ipc.NettyServer$NettyServerAvroHandler.
                                      handleUpstream(NettyServer.java:171)] 
[id: 0x16c775c5, /192.168.142.161:42201 => /192.168.142.162:23004] 
                                      CONNECTED: /192.168.142.161:42201
在master机器上将会输出以下的信息:
2014-01-20 22:42:16,625 (lifecycleSupervisor-1-0) 
[INFO - org.apache.flume.sink.AbstractRpcSink.
createConnection(AbstractRpcSink.java:205)] 
Rpc sink remotesink: Building RpcClient with hostname: node1, port: 23004
2014-01-20 22:42:16,625 (lifecycleSupervisor-1-0) 
[INFO - org.apache.flume.sink.AvroSink.initializeRpcClient(AvroSink.java:126)] 
Attempting to create Avro Rpc client.
2014-01-20 22:42:19,639 (lifecycleSupervisor-1-0) 
[INFO - org.apache.flume.sink.AbstractRpcSink.start(AbstractRpcSink.java:300)] 
Rpc sink remotesink started.
这样暗示node1上的flume和master上的flume已经连接成功了。
  4、如何测试?可以写一个脚本往/home/wyp/Documents/data/data.txt(见上面master机器上flume上面的配置)文件中追加东西:
for i in {1..1000000}; do 
    echo "test flume to Hbase $i" >> 
           /home/wyp/Documents/data/data.txt; 
    sleep 0.1; 
done
运行上面的脚本,这样将每隔0.1秒往/home/wyp/Documents/data/data.txt文件中添加内容,这样master上的flume将会接收到/home/wyp/Documents/data/data.txt文件内容的变化,并变化的内容发送到node1机器上的flume,node1机器上的flume把接收到的内容插入到Hbase的wyp表中的cf:charges列中(见上面的配置)。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Flume-0.9.4和Hbase-0.96整合

1、修改Flume-src根目录下的pom.xml文件中的部分依赖版本 (1)、Hadoop2x里面已经没有hadoop-core jar包,所以修改Hadoop的依赖包的版本: ...
  • LW_GHY
  • LW_GHY
  • 2016年05月31日 17:36
  • 396

Flume-0.9.4和Hbase-0.96整合(1)

作者:过往记忆 | 新浪微博:左手牵右手TEL | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明博客地址:http://www.iteblog.com/文章标题:《Flume-0...
  • w397090770
  • w397090770
  • 2014年02月13日 10:07
  • 7150

Flume-0.9.4和Hbase-0.96整合(2)

作者:过往记忆 | 新浪微博:左手牵右手TEL | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明博客地址:http://www.iteblog.com/文章标题:《Flume-0...
  • w397090770
  • w397090770
  • 2014年02月14日 10:33
  • 7175

Flume-0.9.4和Hbase-0.96整合实践

导读:  Flume-1.4.0和Hbase-0.96.0整合还是比较简单的,那么Flume-0.9.4和Hbase-0.96整合比Flume-1.4.0和Hbase-0.96整合麻烦多了!不是随便...
  • u010022051
  • u010022051
  • 2015年01月07日 14:09
  • 309

hadoop2.4.1下整合hbase-0.96和hive-0.14

1.正常安装hbse和hive,这里不再赘述。 2.修改hive-env.sh(可选) # Set HADOOP_HOME to point to a specific hadoopinstall...
  • u010482159
  • u010482159
  • 2016年10月12日 22:30
  • 184

Hadoop Hive与Hbase整合+thrift

Hadoop Hive与Hbase整合  一 、简介 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为Map...
  • hguisu
  • hguisu
  • 2012年02月22日 09:47
  • 37365

云凡教育分享-Flume-0.9.4和Hbase-0.96整合(2)

Flume-0.9.4和Hbase-0.96整合(2) 这几天由于项目的需要,需要将Flume收集到的日志插入到Hbase中,有人说,这不很简单么?Flume里面自带了Hbase sink,可以...
  • cloudydream1
  • cloudydream1
  • 2014年09月30日 01:45
  • 304

Struts2和Hibernate的整合

本文主要讲Struts和Hibernate两种框架的整合,以模仿用户登录为例 第一步:写三个页面(分别为inde.jsp,success.jsp,fail.jsp) index.jsp的主要代码: ...
  • do_action
  • do_action
  • 2016年06月29日 17:18
  • 1696

SVN与eclipse整合与使用、SVN与Apache整合

解压到eclipse 安装目录中dropins 参考前面的文章,启动svn服务、添加用户、设置权限等操作 使用Eclipse创建一个项目,右击team→Share Project,全部的操作都在Tea...
  • Jerome_s
  • Jerome_s
  • 2014年06月01日 21:32
  • 1841

spring和spring MVC整合

spring和springMVC之间的整合,springMVC中的jar包包含spring中的jar包,所以无需再另外导入jar包,只需导入springMVC的jar包即可。 如图一所示: 这...
  • u012734441
  • u012734441
  • 2015年05月16日 07:32
  • 8814
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Flume-1.4和Hbase-0.96整合
举报原因:
原因补充:

(最多只允许输入30个字)