Flume-1.4.0和Hbase-0.96.0整合
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 NodeManager |
2、以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 = 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] 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列中(见上面的配置)。
$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. 软件依赖 ...
随机推荐
- 解决iframe重定向让父级页面跳转
原文:http://www.jb51.net/article/40583.htm 有内嵌iframe的页面,当session过期时,点击连接重定向后的跳转会在iframe中跳转,在登录页面中加入下面的 ...
- 开箱即用,Knative 给您极致的容器 Serverless 体验
作者 | 冬岛 阿里巴巴技术专家 导读:托管 Knative 开箱即用,您不需要为这些常驻实例付出任何成本.结合 SLB 云产品提供 Gateway 的能力以及基于突发性能型实例的保留规格功能,极大 ...
- 【Python】利用python自动发送邮件
前言 在训练网络的过程中,需要大量的时间,虽然可以预估网络训练完成时间,但蹲点看结果着实有点不太聪明的亚子. 因此,参照师兄之前发的python利用smtp自动发邮件的代码,我作了些调整,并参照网上的 ...
- Map,HashMap五种遍历方法
假设有数组 HashMap<Integer, String> h=new HashMap<Integer,String>(); h.put( ...
- Spring 使用注解对事务控制详解与实例
1.什么是事务 一荣俱荣,一损俱损,很多复杂的操作我们可以把它看成是一个整体,要么同时成功,要么同时失败. 事务的四个特征ACID: 原子性(Atomic):表示组成一个事务的多个数据库的操作的不可分 ...
- 是时候扔掉cmder, 换上Windows Terminal
作为一个Windows的长期用户,一直没有给款好用的终端,知道遇到了 cmder,它拯救一个习惯用Windows敲shell命令的人. 不用跟我安利macOS真香!公司上班一直用macOS,一方面确实 ...
- 利用Python网络爬虫采集天气网的实时信息—BeautifulSoup选择器
相信小伙伴们都知道今冬以来范围最广.持续时间最长.影响最重的一场低温雨雪冰冻天气过程正在进行中.预计,今天安徽.江苏.浙江.湖北.湖南等地有暴雪,局地大暴雪,新增积雪深度4-8厘米,局地可达10-20 ...
- 使用VUE开发用户后台时的动态路由问题、按钮权限问题以及其他页面处理问题
如今前后端分离是大势所趋,笔者虽然是做后台的,但也不得不学学前端的流行框架VUE -_-||| . 为了学习VUE,笔者搭建了一个简单的用户后台,以此来了解VUE的开发思路(注:本项目不用于实际开发, ...
- Rocket - tilelink - HintHandler
https://mp.weixin.qq.com/s/MHW_aBSL72YNee9bVWWeaw 简单介绍HintHandler的实现. 1. 基本功能 实现Hint请求的处理 ...
- 概念辨析-Description Language还是Description Library?
https://mp.weixin.qq.com/s/p7eyD6GkniFGHrnr8t2SZQ 概念辨析-Description Language还是Description Library? ...