Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3427128
  • 博文数量: 864
  • 博客积分: 14125
  • 博客等级: 上将
  • 技术积分: 10634
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 16:53
个人简介

https://github.com/zytc2009/BigTeam_learning

文章分类

全部博文(864)

文章存档

2023年(1)

2021年(1)

2019年(3)

2018年(1)

2017年(10)

2015年(3)

2014年(8)

2013年(3)

2012年(69)

2011年(103)

2010年(357)

2009年(283)

2008年(22)

分类: 大数据

2017-09-11 17:50:06

第二天: flume
1.关闭防火墙
    sudo iptables -P INPUT ACCEPT
    sudo iptables -P FORWARD ACCEPT
    sudo iptables -P OUTPUT ACCEPT

2.术语:
  源信息保存在namenode,NameNode为了数据同步,会通过JournalNode相互通信
  SPOF 单点故障
  HA 高可用性
  NN namenode
  DN datanode

3.Flume核心概念:
  Event数据单元,由header和byte array组成
  Client把log打包成Event发给Agent
  Agent
   1)Source接收数据放到channel里
   2)Channel缓存event,可以是文件或内存
   3)Sink 发送Event,成功后从channel移除

4.Source监听:
  spooldir:监听目录中文件变化,不检测内容,只支持文本
  taildir:检测文件内容变化,只支持文本
  exec:执行命令,将结果作为数据源
  avro:监听端口,收集数据
  等。。

5.实战:利用flume检测目录,并写入hdfs
  首先,自己写个属性文件myflume.properties,放到flume的conf目录下
       
    #Agent名字MyAgent
    MyAgent.sources = mysource
    MyAgent.channels = mychannel
    MyAgent.sinks = mysink

    #监听目录变化
    MyAgent.sources.mysource.type = spooldir
    #监听/tmp/logs目录文件变化
    MyAgent.sources.mysource.channels = mychannel
    MyAgent.sources.mysource.spoolDir =/tmp/logs
    
    #一定注意这里的mysink跟上面是对应的
    MyAgent.sinks.mysink.channel = mychannel
    MyAgent.sinks.mysink.type = hdfs
    MyAgent.sinks.mysink.hdfs.path = hdfs://master:8020/data/logs/%Y%m%d/%H/
    MyAgent.sinks.mysink.hdfs.batchSize = 1000
    MyAgent.sinks.mysink.hdfs.rollSize = 0
    MyAgent.sinks.mysink.hdfs.rollCount = 10000
    MyAgent.sinks.mysink.hdfs.useLocalTimeStamp = true

    #这里的mychannel跟上面是对应的
    MyAgent.channels.mychannel.type = memory
    MyAgent.channels.mychannel.capacity = 10000
    MyAgent.channels.mychannel.transactionCapacity = 100

  启动flume(注意文件名和MyAgent名字):
    bin/flume-ng agent -n MyAgent -c conf -f \  注:\是换行符,不需要换行的删除
    conf/myflume.properties -Dflume.root.logger=DEBUG,console

6.如果收集网络数据,更改sources配置项
 
    MyAgent.sources.mysource.type = avro
    MyAgent.sources.mysource.channels = mychannel
    MyAgent.sources.mysource.spoolDir =/tmp/logs
阅读(918) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~