Flume-1.4.0和Hbase-0.96.0整合
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 |
这两个文件配置的含义我就不介绍了,自己google一下吧。
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列中(见上面的配置)。
$HADOOP_HOME/share/hadoop/common/lib/guava-11.0.2.jar替换$FLUME_HOME/lib/guava-10.0.1.jar包;
用$HADOOP_HOME/share/hadoop/common/lib/protobuf-java-2.5.0.jar替换$HBASE_HOME/lib/protobuf-java-2.4.0.jar包。然后再启动步骤三的两个进程。
Flume-1.4.0和Hbase-0.96.0整合的更多相关文章
- dial tcp 10.96.0.1:443: getsockopt: no route to host --- kubernetes(k8s)DNS 服务反复重启
kubernetes(k8s)DNS 服务反复重启解决: k8s.io/dns/pkg/dns/dns.go:150: Failed to list *v1.Service: Get https:// ...
- (转)dial tcp 10.96.0.1:443: getsockopt: no route to host --- kubernetes(k8s)DNS 服务反复重启
转:https://blog.csdn.net/shida_csdn/article/details/80028905 kubernetes(k8s)DNS 服务反复重启解决: k8s.io/dns/ ...
- hbase0.96.0单机模式安装(win7 无需cygwin)
之前折腾了几天,想让hbase的单机模式在cygwin上跑起来,都不成功.正当我气馁之时,我无意中发现hbase0.96.0的bin和conf目录下有一些扩展名为cmd的文件.这难道是给win ...
- x509: certificate is valid for 10.96.0.1, 172.18.255.243, not 120.79.23.226
服务器:阿里云服务器 master:120.79.23.226 node:39.108.131.246 系统:Centos 7.4 node节点加入集群中是报错: x509: certificate ...
- 最新版大数据平台安装部署指南,HDP-2.6.5.0,ambari-2.6.2.0
一.服务器环境配置 1 系统要求 名称 地址 操作系统 root密码 Master1 10.1.0.30 Centos 7.7 Root@bidsum1 Master2 10.1.0.105 Cent ...
- .NET Core 2.0及.NET Standard 2.0
.NET Core 2.0的发布时间,.NET Core 2.0预览版及.NET Standard 2.0 Preview大概在5月中旬或下旬发布. .NET Core 2.0正式版本发布时间大约在Q ...
- .NET Core 2.0及.NET Standard 2.0 Description
NET Core 2.0的发布时间,.NET Core 2.0预览版及.NET Standard 2.0 Preview大概在5月中旬或下旬发布. .NET Core 2.0正式版本发布时间大约在Q3 ...
- 环境篇:Kylin3.0.1集成CDH6.2.0
环境篇:Kylin3.0.1集成CDH6.2.0 Kylin是什么? Apache Kylin™是一个开源的.分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析( ...
- CDH6.3.0下Apache Atlas2.1.0安装与配置
CDH6.3.0下Apache Atlas2.1.0安装与配置 0. 说明 文中的${ATLAS_HOME}, ${HIVE_HOME} 环境变更需要根据实际环境进行替换. 1. 依赖 A. 软件依赖 ...
随机推荐
- SDK内本地化处理 localizedStringForKey:value:table:
参考: 1,https://developer.apple.com/documentation/foundation/nsbundle/1417694-localizedstringforkey 2, ...
- poj2455 k条路最小化最长边
Secret Milking Machine Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12414 Accepted ...
- #!/usr/bin/python
它是用来指定用什么解释器运行脚本以及解释器所在的位置. 参考链接:https://www.cnblogs.com/qmfsun/p/6291982.html
- 实用算法系列之RT-Thread链表堆管理器
[导读] 前文描述了栈的基本概念,本文来聊聊堆是怎么会事儿.RT-Thread 在社区广受欢迎,阅读了其内核代码,实现了堆的管理,代码设计很清晰,可读性很好.故一方面了解RT-Thread内核实现,一 ...
- 【NLP】常用优化方法
目录 梯度下降法 动量法 AdaGrad算法 RMSProP算法 AdaDelta算法 Adam算法 1.梯度下降法 梯度下降法可以分为三种,批量梯度下降法(BGD).小批量梯度下降(MBGD).随机 ...
- NodeJS——大汇总(一)(只需要使用这些东西,就能处理80%以上业务需求,全网最全node解决方案,吐血整理)
一.前言 本文目标 本文是博主总结了之前的自己在做的很多个项目的一些知识点,当然我在这里不会过多的讲解业务的流程,而是建立一个小demon,旨在帮助大家去更加高效 更加便捷的生成自己的node后台接口 ...
- httppost的用法
一,案例一 定义了一个list,该list的数据类型是NameValuePair(简单名称值对节点类型),这个代码多处用于Java像url发送Post请求.在发送post请求时用该list来存放参数. ...
- 阿里云服务器centOS安装Docker
环境准备 1.需要有Linux的基础 2.centOS 7 环境查看 # 系统内核是 3.10 以上的 [root@iz2zeaet7s13lfkc8r3e2kz ~]# uname -r -.el7 ...
- Linux—vim/vi 翻页跳转命令快捷键
以下组合若没有特殊说明,基本都是键位组合. vim翻页 vim翻半页 ctr-d:向后翻半页 ctr-u:向前翻半页 vim整整页 ctr+f:向后翻整页 ctr+b:向前翻整页 vim跳转 vim跳 ...
- C# 基础之参数修饰符
参数传参的时候一共有四种传递方式: 一.无修饰符传参 也就是说没有传参修饰符,这种情况传过去的是一个副本,本体是不会被改变的 二.out传参修饰符 在传参的参数全面加一个out: public voi ...