99网
您的当前位置:首页Flume NG之Agent部署和sink配置HDFS且吐槽CSDN博客及客服态度

Flume NG之Agent部署和sink配置HDFS且吐槽CSDN博客及客服态度

来源:99网

实在是想对csdn博客吐槽,一天到晚要么发布不了,发布成功的居然还时不时看不到文章内容(空白的),有时还打不开博客,问客服就说换浏览器。我真想和csdn客服说,你妹的,你知不知道我是码农啊,初步的问题诊断是会的,如果不是怀疑csdn博客服务端问题,我会找你。

这篇文章是重复http:///fjssharpsword/article/details/60136224,因为这个时不时打开是空白,而摘要确有内容,有时又能正常打开。昨天下午5:20多分,和csdn客服说,然后妹纸居然下班了,不理会人了,这个客服态度经常是推卸责任,然后就是不理你,我也是醉了。实在是csdn博客坚持这么久,不想换一家。

先重复发布吧,还好之前有保存原稿,现在重新发布:


1、Flume 
   flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(比如文本、HDFS、Hbase等)的能力。
  flume的数据流由事件(Event)贯穿始终,事件是Flume的基本数据单位,它携带日志数据(字节数组形式)并且携带有头信息。Event由Agent外部的Source生成,当Source捕获事件后会进行特定的格式化,然后Source会把事件推入(单个或多个)Channel中;Channel看作是一个缓冲区,它将保存事件直到Sink处理完该事件;Sink负责持久化日志或者把事件推向另一个Source。
   flume的一些核心概念:
   1)Agent:使用JVM 运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks。
   2)Client:生产数据,运行在一个的线程。
   3)Source :从Client收集数据,传递给Channel。
   4)Sink : 从Channel收集数据,运行在一个线程。
   5)Channel  :连接 sources 和 sinks ,这个有点像一个队列。
   6)Events : 可以是日志记录、 avro 对象等。

     #agent
agent.sources=se
agent.sinks=sk
agent.channels=ch


#set source se
agent.sources.se.type=spooldir
agent.sources.se.spoolDir=/data/kaitong/gz/20170303/
agent.sources.se.channels=ch
agent.sources.se.fileHeader = false


#set sink sk
agent.sinks.sk.type=hdfs
agent.sinks.sk.hdfs.path=hdfs://namenode49:8020/tmp/flume/
agent.sinks.sk.channel=ch
agent.sinks.sk.hdfs.filePrefix = flume-
agent.sinks.sk.hdfs.round = true
agent.sinks.sk.hdfs.roundValue = 10
agent.sinks.sk.hdfs.roundUnit = minute
agent.sinks.sk.hdfs.useLocalTimeStamp = true


#set channel ch
# Use a channel which buffers events in memory
agent.channels.ch.type = memory
agent.channels.ch.capacity = 1000
agent.channels.ch.transactionCapacity = 100
     
4、启动Flume Agent并测试
   #cd /home/flume/apache-flume-1.7.0-bin/
   #bin/flume-ng agent -n agent -c conf -f conf/flume-conf.properties  -Dflume.root.logger=INFO,console


5、后续工作:


   1)如果集群通过kerberos认证的话,要配置kerberos认证;
     agent.sinks.sk.hdfs.kerberosPrincipal = etl/host
     agent.sinks.sk.hdfs.kerberosKeytab = /tmp/etl.app.keytab


   2)Flume支持引入第三方jar包 ,自定义,可将Flume采集到的数据进行序列化、结构化等预处理,最后每条数据生成一条Event数据返回。

因篇幅问题不能全部显示,请点此查看更多更全内容