Flume-1.4和Hbase-0.96整合
来源:互联网 发布:手机查看守望先锋数据 编辑:程序博客网 时间:2024/04/30 10:15
最近由于项目需要把Flume收集到的日志信息插入到Hbase中,由于第一次接触这些,在整合的过程中,我遇到了许多问题,我相信很多人也应该会遇到这些问题的,于是我把整个整合的过程写出来,希望给那些同样遇到这样问题的朋友帮助。
1、本程序一共用了三台集群搭建集群,这三台机器的Hostname分别为master、node1、node2;master机器是Hadoop以及Hbase集群的master。三台机器上分别启动的进程如下:
[wyp@master ~]$ jps2973 HRegionServer4083 Jps2145 DataNode3496 HMaster2275 NodeManager1740 NameNode2790 QuorumPeerMain1895 ResourceManager[wyp@node1 ~]$ jps7801 QuorumPeerMain11669 DataNode29419 Jps11782 NodeManager29092 HRegionServer[wyp@node2 ~]$ jps2310 DataNode2726 HRegionServer2622 QuorumPeerMain3104 Jps2437 NodeManager2、以master机器作为flume数据的源、并将数据发送给node1机器上的flume,最后node1机器上的flume将数据插入到Hbase中。master机器上的flume和node1机器上的flume中分别做如下的配置:
在master的$FLUME_HOME/conf/目录下创建以下文件(文件名随便取),并做如下配置,这是数据的发送端:
[wyp@master conf]$ vim example.confagent.sources = baksrcagent.channels = memoryChannelagent.sinks = remotesinkagent.sources.baksrc.type = execagent.sources.baksrc.command = tail -F /home/wyp/Documents/data/data.txtagent.sources.baksrc.checkperiodic = 1000agent.channels.memoryChannel.type = memoryagent.channels.memoryChannel.keep-alive = 30agent.channels.memoryChannel.capacity = 10000agent.channels.memoryChannel.transactionCapacity = 10000agent.sinks.remotesink.type = avroagent.sinks.remotesink.hostname = node1agent.sinks.remotesink.port = 23004agent.sinks.remotesink.channel = memoryChannel在node1的$FLUME_HOME/conf/目录下创建以下文件(文件名随便取),并做如下配置,这是数据的接收端:
[wyp@node1 conf]$ vim example.confagent.sources = avrosrcagent.channels = memoryChannelagent.sinks = fileSinkagent.sources.avrosrc.type = avroagent.sources.avrosrc.bind = node1agent.sources.avrosrc.port = 23004agent.sources.avrosrc.channels = memoryChannelagent.channels.memoryChannel.type = memoryagent.channels.memoryChannel.keep-alive = 30agent.channels.memoryChannel.capacity = 10000agent.channels.memoryChannel.transactionCapacity =10000agent.sinks.fileSink.type = hbaseagent.sinks.fileSink.table = wypagent.sinks.fileSink.columnFamily = cfagent.sinks.fileSink.column = chargesagent.sinks.fileSink.serializer = org.apache.flume.sink.hbase.RegexHbaseEventSerializeragent.sinks.fileSink.channel = memoryChannel3、在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] OPEN2014-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:230042014-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: 230042014-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列中(见上面的配置)。
0 0
- Flume-1.4和Hbase-0.96整合
- Flume-0.9.4和Hbase-0.96整合
- Flume-0.9.4和Hbase-0.96整合(1)
- Flume-0.9.4和Hbase-0.96整合(2)
- Flume-0.9.4和Hbase-0.96整合(1)
- Flume-0.9.4和Hbase-0.96整合实践
- hbase+flume+hdfs整合
- 云凡教育分享-Flume-0.9.4和Hbase-0.96整合(2)
- flume-1.4.0整合hbase-0.98.0实战数据采集,同时将采集到的数据放入hbase和h
- kafka和flume整合
- Flume和Kafka整合
- flume整合kafka和hdfs
- Flume和Kafka整合安装
- Hbase和Hive整合
- hbase和hive整合
- Hive和Hbase整合
- hive和hbase整合
- Hive和Hbase整合
- 关于从边测划出控件
- 悬浮窗口的显示位置设置不生效的原因
- 收拾好心情,装备上tomcat,搭乘nginx,出发之一: Tomcat
- 第10周 C语言程序设计(新2版) 第三章例题 swich统计数字、字符和其它符号
- JVM学习笔记(四)------内存调优
- Flume-1.4和Hbase-0.96整合
- jQuery-遍历
- 浅谈机器翻译之瓶颈及目前的研发趋势
- redis[0] 通讯报文协议
- 汇编语言(四) debug 常用命令
- 一、FrameBuffer 原理、实现与应用 写屏(转)
- POJ 2406 Power Strings [KMP+循环节规律]
- Dockfile
- 图像处理-线性滤波-3 高斯滤波器