最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

[Flume] Flume功能简介

[复制链接]
跳转到指定楼层
楼主
发表于 2019-6-26 10:32:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 168主编 于 2019-7-3 12:31 编辑

Flume概述:


Apache Flume是一个分布式的、可靠的、可用的系统,用于有效地收集、


聚合和将大量日志数据从许多不同的源移动到一个集中的数据存储。



Apache Flume的使用不仅仅局限于日志数据聚合。由于数据源是可定制的,


Flume可以用于传输大量事件数据,包括但不限于网络流量数据、


社交媒体生成的数据、电子邮件消息和几乎所有可能的数据源。


=================================================================


flume的优点:


1.可以和任意集中式存储进行集成(HDFS,HBASE)


2.输入的数据速率大于写入存储目的地速率,flume会进行缓冲


3.flume提供上下文路由(数据流路线)


4.flume中的事物基于channel,使用了两个事物模型(sender+receiver)


确保消息被可靠发送


5.flume是 可靠的,容错的,可扩展的,。


flume特点


----------------------------------------


1.flume高效收集web server的log到HDFS HBASE)


2.高校获取数据到hadoop


3.导入大量数据


4.flume支持大量的source和destination类型


5.flume支持多级跳跃,source和destination的扇入和扇出


6.flume可以水平伸缩



为什么用flume而不用hdfs的put


------------------------------------------


1.同一时刻只能传输一个文件


2.put处理的是静态文件



架构-组件-配置说明




Flume架构:



1. 描述


在数据生成器运行的节点上启动单独的flume agent。来收集数据


数据收集器收集数据,推送到HDFS,HBASE


2. Flume Event


事件是flume的传输单元,主要是byte[],可以含有一些header信息


在source和destination之间



3. Flume agent


每个agent是一个独立的Java进程,从客户端(其他agent)接收数据


然后转发到下一个destination(sink(沉槽) | agent)


Agent包含三个组件:


A. Source(源)->生成数据的地方


从事件生成器接收数据,以event事件的形式传给一个或多个channel


B. Channel(通道)


从source中接受flume event,作为临时存放地,缓存到buffer中,直到sink


将其消费掉,是source和sink之间的桥梁


Channel是事务的,可以和多个source或sink协同


C.sink(沉槽)


存放数据到HDFS,从channel中消费event,并分发给destination,sink的


Destination 也可以是另一个agent或者HDFS,HBASE



注意:一个flume的agent,可以有多个source,channel,sink


Flume的附加组件



1. 拦截器


2. 通道选择器


3. Sink处理器


安装flumn-1.6.0


------------------------


1.下载flume-


2.tar        ln -s apahe-flume-1.6.-bin flume


3.配置环境变量


export FLUMN_HOME=/usr/local/soft/flume-1.6.0


export PATH=$PATHFLUMN_HOME/bin


4.验证安装


[hadoop@master conf]$ flume-ng version


5.配置flume


flume-env.sh


export JAVA_HOME=/usr/local/soft/jdk1.8.0


  

配置Flume


1.命名agent组件


2.描述配置source


3.描述配置channel


4.描述配置sink


5.绑定source,sink,到channel


agent_name)


a1.sources=r1,r2


a1.sinks=s1,s2


a1.channels=c1,c2



#sources-r1


a1.sources.r1.type=


a1.sources.r1.xxx=


a1.sources.r1.yyy=



#sink-s1


a1.source.r1.type=


a1.sources.r1.xxx=



#channels-c1


a1.channels.c1.type=


a1.channels.c1.xxx=



#binding(绑定)一个source可以配置多个channel


a1.sources.r1.channels=c1        (可以配多个通道)


a1.sinks.s1.channel=c1        (sink只能配置一个channel)



Flume核心类考察



Simple案例


flume-conf.properties:



# Name the components on this agent


a1.sources = r1


a1.sinks = k1


a1.channels = c1



# Describe/configure the source


a1.sources.r1.type = netcat


a1.sources.r1.bind =localhost         //0.0.0.0 (统配到本机的所有ip上面去)


a1.sources.r1.port = 44444



# Describe the sink


a1.sinks.k1.type = logger  -->通过控制台或者文件可以控制输出



# Use a channel which buffers events in memory


a1.channels.c1.type = memory


a1.channels.c1.capacity = 1000


a1.channels.c1.transactionCapacity = 100



# Bind the source and sink to the channel


a1.sources.r1.channels = c1


a1.sinks.k1.channel = c1



  


运行flume agent


#--conf        :配置目录


#--conf-file        :配置文件


#--name  :代理名称


#-D    :指定额外的参数


$>cd flume/conf


$>flume-ng agent --conf .--conf-file flume-conf.properties --name a1 -Dflume.root.logger=INFO,console


  


flume-ng agent --conf . --conf-file flume-conf.properties --name a1 -Dflume.root.logger=INFO,console(控制台)



打开另一个终端:


[hadoop@master ~]$ nc localhost 44444


helloworld


OK



核心类考察


1. Source


生成Event,调用ChannelProcessor的方法,将Event put到Channel中去

  


2.Sink


连接到Channel,消费里面的Event,将其发送到destination,有很多相应的sink类型你


Sink可以根据Sinkgroup和Sinkprocessor进行分组


Sink的process()方法只能有一个线程访问


SetChannel()        getCannel()        process()



3.Channel


连接Source(Event Procuder)和Sink(Event Consumer),本质上Channel就是Buffer


支持事务处理,保证原子性(Put+take)


Channel是线程安全的


Put()        take()        getTransaction()

---------------------

作者:qq_41028958

来源:CSDN

原文:https://blog.csdn.net/qq_41028958/article/details/80955805  

楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-5-8 10:19

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表