ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:48.63KB ,
资源ID:7032637      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7032637.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(Flume 文档2.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Flume 文档2.doc

1、Flume日志收集系统介绍 1. Flume介绍 Flume是一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。 1.1. 设计目标: (1) 可靠性 当节点出现故障时,日志能够被传送到其他节点上而不会丢失。Flume提供了三种级别的可靠性保障,从强到弱依次分别为: end-to-end(收到数据agent首先将event写到磁盘上,当数据传送成功后,再删除;如果数据发送失败,可以重新发送。Agent sink with write ahead log and

2、end-to-end ack.),Store on failure(这也是scribe采用的策略,当数据接收方crash时,将数据写到本地,待恢复后,继续发送),Best effort(数据发送到接收方后,不会进行确认)。 (2) 可扩展性 Flume采用了三层架构,分别为agent,collector和storage,每一层均可以水平扩展。其中,所有agent和collector由master统一管理,这使得系统容易监控和维护,且master允许有多个(使用ZooKeeper进行管理和负载均衡),这就避免了单点故障问题。 (3) 可管理性 所有agent和colletor由maste

3、r统一管理,这使得系统便于维护。多master情况,Flume利用ZooKeeper和gossip,保证动态配置数据的一致性。用户可以在master上查看各个数据源或者数据流执行情况,且可以对各个数据源配置和动态加载。Flume提供了web 和shell script command两种形式对数据流进行管理。 (4) 功能可扩展性 用户可以根据需要添加自己的agent,collector或者storage。此外,Flume自带了很多组件,包括各种agent(file, syslog等),collector和storage(file,HDFS等)。 1.2. Flume架构 正如前面提到

4、的,Flume采用了分层架构:分别为agent,collector和storage。其中,agent和collector均由两部分组成:source和sink,source是数据来源,sink是数据去向。 Flume使用两个组件:Master和Node,Node根据在Master shell或web中动态配置,决定其是作为Agent还是Collector。 agent agent的作用是将数据源的数据发送给collector。 Flume自带了很多直接可用的数据源(source),如: l text("filename"):将文件filename作为数据源,按行发送 l ta

5、il("filename"):探测filename新产生的数据,按行发送出去 l fsyslogTcp(5140):监听TCP的5140端口,并且接收到的数据发送出去 l tailDir("dirname"[, fileregex=".*"[, startFromEnd=false[, recurseDepth=0]]]):监听目录中的文件末尾,使用正则去选定需要监听的文件(不包含目录),recurseDepth为递归监听其下子目录的深度 更多可参见这位朋友的整理: 同时提供了很多sink,如: l console[("format")] :直接将将数据显示在console

6、上 l text("txtfile"):将数据写到文件txtfile中 l dfs("dfsfile"):将数据写到HDFS上的dfsfile文件中 l syslogTcp("host",port):将数据通过TCP传递给host节点 l agentSink[("machine"[,port])]:等价于agentE2ESink,如果省略,machine参数,默认使用flume.collector.event.host与flume.collector.event.port作为默认collecotr l agentDFOSink[("machine" [,port])]:本地

7、热备agent,agent发现collector节点故障后,不断检查collector的存活状态以便重新发送event,在此间产生的数据将缓存到本地磁盘中 l agentBESink[("machine"[,port])]:不负责的agent,如果collector故障,将不做任何处理,它发送的数据也将被直接丢弃 l agentE2EChain:指定多个collector提高可用性。 当向主collector发送event失效后,转向第二个collector发送,当所有的collector失败后,它会非常执着的再来一遍 更多可参见这位朋友的整理: collector c

8、ollector的作用是将多个agent的数据汇总后,加载到storage中。 它的source和sink与agent类似。 数据源(source),如: l collectorSource[(port)]:Collector source,监听端口汇聚数据 l autoCollectorSource:通过master协调物理节点自动汇聚数据 l logicalSource:逻辑source,由master分配端口并监听rpcSink sink,如: l collectorSink( "fsdir","fsfileprefix",rollmillis):collectorS

9、ink,数据通过collector汇聚之后发送到hdfs, fsdir 是hdfs目录,fsfileprefix为文件前缀码 l customdfs("hdfspath"[, "format"]):自定义格式dfs l storage storage是存储系统,可以是一个普通file,也可以是HDFS,HIVE,HBase,分布式存储等。 Master Master是管理协调agent和collector的配置等信息,是flume集群的控制器。 在Flume中,最重要的抽象是data flow(数据流),data flow描述了数据从产生,传输、处理并最终写入目标的一条路径。

10、 1. 对于agent数据流配置就是从哪得到数据,把数据发送到哪个collector。 2. 对于collector是接收agent发过来的数据,把数据发送到指定的目标机器上。 注:Flume框架对hadoop和zookeeper的依赖只是在jar包上,并不要求flume启动时必须将hadoop和zookeeper服务也启动。 2. Flume分布式环境部署和测试 2.1. 安装部署 安装 1) flume的安装包 2) 需要在集群的每台机器上部署Flume,接解压即可 配置 flume的配置文件在conf目录下,有两个文件,一个为flume-conf.xml,一

11、个为flume-site.xml, 在该文件下默认一个flume-sizte.xml.template为模块。 选择一个或多个节点当做master 对于master的选择情况,可以在集群上定义一个master,也可以为了提高可用性选择多个节点做为master。 当master模式:容易管理,但在系统的容错和扩展性有缺陷 多master模式:通常是运行3/5个master,能很好的容错 Flume master数量的选择原则: 分布式的master能够继续正常工作不会崩溃的前提是正常工作的master数量超过总master数量的一半。 Flume mas

12、ter 的作用主要有两个: 1)跟踪各节点的配置情况,通知节点配置的改变; 2)跟踪来自flow的结尾,操控在可靠模式下(E2E)的信息,以至于让flow的源头知道什么时候停止传输event。 修改静态配置文件 site-specific设置对于flume节点和master通过在每一个集群节点的conf/flume-site.xml是可配置的,如果这个文件不存在,设置的属性默认的在conf/flume-conf.xml中,在接下来的例子中,在flume的节点上设置master名,让节点自己去寻找叫"master"的flume Master。

13、"1.0"?> flume.master.servers master 在多master的情况下需要如下配置: flume.mas

14、ter.servers ,, A comma-separated list of hostnames, one for each machine in the Flume Master. flume.master.store zookeeper How the Flume Master stores node confi

15、gurations. Must be either 'zookeeper' or 'memory'. flume.master.serverid 2 The unique identifier for a machine in a Flume Master ensemble. Must be different on every master instance.

16、rty> 注意:flume.master.serverid 属性的配置主要是针对master,集群上Master节点的flume.master.serverid 必须是不能相同的,该属性的值以0开始。 当使用agent角色时,你可以通过添加下面的配置文件在flume-conf.xml中,来设置默认的collector主机: flume.collector.event.host collector This is the host name of

17、 the default "remote" collector. flume.collector.port 35853 This default tcp port that the collector listens to in order to receive events it is collecting. 关于配置可参见: 启动集群

18、集群上节点启动 1. 在命令行输入:flume master 启动master节点 2. 在命令行输入:flume node -n nodeName 启动其他节点,nodeName最好根据集群逻辑的划分来取名子,这样在 master进行配置的时候比较清晰。 名字规则自己定义,方便记忆和动态配置即可(后续会有介绍动态配置) 5.基于flume shell的动态配置 关于flume shell 中的command参见: 假设我们目前部署的Flume集群结构如下: 我们想将A-F所在的机器的系统日志收集到HDFS中,怎么样在flume shell中配置达到我们

19、的目的呢? 1. 设置逻辑节点(logical node) $flume shell >connect localhost >help >exec map 192.168.0.1 agentA >exec map 192.168.0.2 agentB >exec map 192.168.0.3 agentC >exec map 192.168.0.4 agentD >exec map 192.168.0.5 agentE >exec map 192.168.0.6 agentF >getnodestatus 192.168.0.1 --> IDLE

20、 192.168.0.2 --> IDLE 192.168.0.3 --> IDLE 192.168.0.4 --> IDLE 192.168.0.5 --> IDLE 192.168.0.6 --> IDLE agentA --> IDLE agentB --> IDLE agentC --> IDLE agentD --> IDLE agentE --> IDLE agentF --> IDLE

21、 >exec map 192.168.0.11 collector 这里你也可以打开web master界面查看。 http://192.168.227.46:35871 2.启动Collector的监听端口 >exec config collector 'collectorSource(35853)' 'collectorSink("","") '#collector节点监听35853端口过来的数据,这一部非常重要 登陆到collector服务器进行端口检测 $netstat -nalp|grep 35853 如果在master中未进行上述配置,在collec

22、tor上检测不到此打开端口 3.设置各节点的source和sink >exec config collector 'collectorSource(35853)' 'collectorSink("hdfs://namenode/flume/","syslog")' >exec config agentA 'tail("/tmp/log/message")' 'agentBESink("192.168.0.11")' #经过实验,好像一个逻辑节点,最多只能有一个source和sink. >... >exec config agentF 'tail("/tmp/log/messag

23、e")' 'agentBESink("192.168.0.11")' 这时的配置情况可从master web中一目了然,此时已经可以达到我们最初的目的了。 以上通过flume shell进行的动态配置,在flume master web中都可以进行,在此不做进一步说明。 3. 高级动态配置 高级配置其实就是在上述简单配置中增加了以下几个特性来保证系统更好的运行: l 多Master(Master节点的高可用) l Collector Chain(Collector的高可用) l 多Master的情况在上面已经有过介绍,包括用途和master个数等。下面来简单看一下Colle

24、ctor Chain,其实也很简单,就是在动态配置时,使用agent*Chain来指定多个Collector来保证其日志传输的可用性。看一下一般正式环境中flume的逻辑图: 这里agentA和agentB指向collectorA,如果CollectorA crach了,根据配置的可靠性级别agent会有相应的动作,我们很可能为了保障高效传输而没有选择E2E(即使是这种方式,Agent本地日志累积过多依然是一个问题),一般会配置多个Collector,形成collector chain。 >exec config agentC 'tail("/tmp/log/message")' '

25、agentE2EChain("collectorB:35853","collectorA:35853")' >exec config agentD 'tail("/tmp/log/message")' 'agentE2EChain("collectorB:35853","collectorC:35853")' 这样collectorB在出问题时: 4. 问题和总结 上述节点有如下几类:master、agent、collector、storage,针对每类节点我们看一下高可用和有没有可能引起性能瓶颈问题。 首先,storage层的失败和collector层的失败是一样的,只要数据

26、放不到最终的位置,就认为节点是失败的。我们一定会根据收集数据的可靠性设定合适的传输模式,而且会根据我们的配置,自己控制collector接收数据的情况,collector的性能影响的是整个flume集群的数据吞吐量,所以collector最好单独部署,所以一般不用考虑高可用问题。 然后,agent层的失败,Flume数据安全级别的配置主要Agent的配置上,Agent提供三种级别发送数据到collector:E2E、DFO、BF,在些不赘述。看一下一位大牛的总结: agent节点监控日志文件夹下的所有文件,每一个agent最多监听1024个文件,每一个文件在agent的都会有一个

27、类似游标的东西,记录监听文件读取的位置,这样每次文件有新的记录产生,那么游标就会读取增量记录,根据agent配置发送到collector的安全层级属性有E2E,DFO。 如果是E2E的情况那么agent节点会首先把文件写入到agent节点的文件夹下,然后发送给collector,如果最终数据最终成功存储到storage层,那么agent删除之前写入的文件,如果没有收到成功的信息,那么就保留信息。 如果agent节点出现问题,那么相当于所有的记录信息都消失了,如果直接重新启动,agent会认为日志文件夹下的所有文件都是没有监听过的,没有文件记录的标示,所以会重新读取文件,这样,日志就会有重复

28、具体恢复办法如下 将agent节点上监听的日志文件夹下已经发送的日志文件移出,处理完,故障重新启动agent即可。 注:在agent节点失败的情况下,按照失败的时间点,将时间点之前的数据文件移出,将flume.agent.logdir配置的文件夹清空,重新启动agent。 最后,master失败,master宕机,整个集群将不能工作,在重新启动集群,将agent监听的日志文件夹下的所有文件移出,然后重新启动master即可。在多master节点情况下,只要集群上正常工作的master大于总master数量的一半,集群就能正常工作,那么只要恢复其中宕机的master

29、即可。 问题总结: 1.Flume在agent端采集数据的时候默认会在/tmp/flume-{user}下生成临时的目录用于存放agent自己截取的日志文件,如果文件过大导致磁盘写满那么agent端会报出 Error closing logicalNode a2-18 sink: No space left on device,所以在配置agent端的时候需要注意 flume.agent.logdir /data/tmp/flume-${user.name}/agent

30、 属性,只要保证flume在7*24小时运行过程agent端不会使该路径flume.agent.logdir磁盘写满即可。 2. Flume在启动时候会去寻找hadoop-core-*.jar的文件,需要修改标准版的hadoop核心jar包的名字 将hadoop-*-core.jar改成hadoop-core-*.jar。 3.Flume集群中的flume必须版本一致。否则会出现莫名其妙的错误。 4.Flume集群收集的日志发送到hdfs上建立文件夹的时间依据是根据event的时间,在源代码上是Clock.unixTime(),所以如果想要根据

31、日志生成的时间来生成文件的话,需要对 com.cloudera.flume.core.EventImpl 类的构造函数 public EventImpl(byte[] s, long timestamp, Priority pri, long nanoTime, String host, Map fields)重新写,解析数组s的内容取出时间,赋给timestamp。 注意:flume的框架会构造s内容是空的数组,用来发送类似简单验证的event,所以需要注意s内容为空的时候timestamp的问题。 5.如果collector和ag

32、ent不在一个网段的话会发生闪断的现象,这样的话,就会造成agent端不能传送数据个collector所以,在部署agent和collector最好在一个网段。 6.如果在启动master时出现:"试着启动hostname,但是hostname不在master列表里的错误",这是需要检查是否主机地址和hostname配置的正确与否。 7.在源端,有一个比较大的缺陷,在tail类的source,不支持,断点续传功能。因为重启node后没有记录上次文件读到的位置,从而没办法知道,下次再读时,从什么地方开始读。 特别是在日志文件一直在增加的时候。flume的source node挂了。等flu

33、me的source再次开启的这段时间内,增加的日志内容,就没办法被source读取到了。 不过flume有一个execStream的扩展,可以自己写一个监控日志增加情况,把增加的日志,通过自己写的工具把增加的内容,传送给flume的node。再传送给sink的node。 以前文章中介绍过Scribe方案,给我的最直观感受就是: " scribe安装复杂,配置简单 " flume安装简单,动态配置复杂 下面董的博客中的一副对比图: 5. Flume配置文件(flume-site.conf) 1、 watchdog watchdog.restarts.max watc

34、hdog每分钟重启的最大数??? 2、 common node flume.config.heartbeat.period node发送心跳周期,默认5000(毫秒) flume.node.status.port node web端口 flume.node.heartbeat.backoff.ceiling node向master发送心跳之后等待反馈的最大时长,默认60000(毫秒) flume.node.http.autofindport 如果已有node启动,允许第二个node自动选择一个未使用的端口做web服务。多个node的界面端口从35862、35863向后延续

35、 3、agent flume.agent.logdir agent日志路径 flume.agent.logdir.maxage 当前处于打开状态agent日志文件收集信息的时长,在这之后该日志文件将会被关闭,并将数据发送到网络,默认10000(毫秒) flume.agent.logdir.retransmit 在end-to-end模式下agent向collector发送数据失败后再次发送的间隔时长,默认60000(毫秒),建议至少是flume.collector.roll.millis的两倍 flume.agent.failover.backoff.initial 当pri

36、mary sink(可以认为是第一collector)故障后,重启primary sink的一个延迟时间,在此期间,agent将把数据发送到secondary sink(可能是第二collector) flume.agent.failover.backoff.max 在一定时限内尝试链接故障节点失败后,agent将把数据转发向备用节点 4、collector flume.collector.event.host 默认collector地址 flume.collector.port 默认collector端口 flume.collector.dfs.dir 最终数据发向目录(

37、默认),可以是本地,可以是hdfs,默认是/tmp press.codec 压缩格式GzipCodec, DefaultCodec (deflate), BZip2Codec,默认是None flume.collector.roll.millis hdfs文件切换(关闭后新建)的时长 flume.collector.output.format collector发送数据格式avro, avrojson(默认), avrodata… 5、master flume.master.servers 用逗号分隔多个master地址列表 flume.master.store mas

38、ter配置存储方式(zookeeper/memory) zookeeper保证master的配置在多master节点之间同步,memory则保存在内存中,其配置随着master宕机而丢失 flume.master.serverid master的唯一标识 flume.master.http.port http端口 flume.master.heartbeat.missed.max 判断节点失效的最大未达心跳数 flume.master.savefile 当前flume配置文件的路径,默认conf/current.flume flume.master.savefile.auto

39、load 启动时是否加载current.flume,默认false flume.master.gossip.period master通信周期(毫秒) flume.master.heartbeat.rpc THRIFT/AVRO flume.event.rpc THRIFT/AVRO flume.report.server.rpc.type THRIFT/AVRO 6、zookeeper flume.master.zk.logdir zookeeper日志路径 7、thrift flume.thrift.socket.timeout.ms thrift网络连接超时时间(毫秒) 6. Flume的测试 1) 性能测试 2) 高可用测试 3) 扩展性测试

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服