• flume安装和介绍


     一、安装
    1、flume-ng-1.5.0-cdh5.3.6.tar.gz 下载
    链接:https://pan.baidu.com/s/1AWPGP2qnY6_VpYr_iSnJ3w 密码:tiog
    2、对flume进行解压缩:tar -zxvf flume-ng-1.5.0-cdh5.3.6.tar.gz
    3、对flume目录进行重命名:mv apache-flume-1.5.0-cdh5.3.6-bin flume
    4、配置相关的环境变量

    vi ~/.bashrc
    export FLUME_HOME=/usr/local/bigdata/flume
    export FLUME_CONF_DIR=$FLUME_HOME/conf
    export PATH=$PATH:$FLUME_HOME/bin
    source ~/.bashrc

    5、修改配置文件 flume-conf.properties
    进入conf目录下,添加如下,下面agent监听指定文件夹,并上传到HDFS上去:

    root@spark1:/usr/local/bigdata/flume# cd ./conf
    touch flume-conf.properties
    vim flume-conf.properties
    #agent1
    agent1.sources=source1
    agent1.sinks=sink1
    agent1.channels=channel1
    #source1
    agent1.sources.source1.type=spooldir
    agent1.sources.source1.spoolDir=/usr/local/bigdata/flume_logs
    agent1.sources.source1.channels=channel1
    agent1.sources.source1.fileHeader = false
    agent1.sources.source1.interceptors = i1
    agent1.sources.source1.interceptors.i1.type = timestamp
    #channel1
    agent1.channels.channel1.type=file
    agent1.channels.channel1.checkpointDir=/usr/local/bigdata/flume_logs_tmp_cp
    agent1.channels.channel1.dataDirs=/usr/local/bigdata/flume_logs_tmp
    #sink1
    agent1.sinks.sink1.type=hdfs
    agent1.sinks.sink1.hdfs.path=hdfs://spark1:9000/flume_logs
    agent1.sinks.sink1.hdfs.fileType=DataStream
    agent1.sinks.sink1.hdfs.writeFormat=TEXT
    agent1.sinks.sink1.hdfs.rollInterval=1
    agent1.sinks.sink1.channel=channel1
    agent1.sinks.sink1.hdfs.filePrefix=%Y-%m-%d

    创建本地文件夹

    mkdir /usr/local/bigdata/flume_logs
    mkdir /usr/local/bigdata/flume_logs_tmp_cp
    mkdir /usr/local/bigdata/flume_logs_tmp
    hdfs dfs -mkdir /flume_logs

    6、修改配置文件

    cp flume-env.sh.template flume-env.sh
    vim flume-env.sh

    添加java完整路径

    export JAVA_HOME=/usr/local/bigdata/jdk

    启动flume

    flume-ng agent -n agent1 -c conf -f /usr/local/bigdata/flume/conf/flume-conf.properties -Dflume.root.logger=DEBUG,console

    7、测试

    在 /usr/local/bigdata/flume_logs 目录下创建一个文件,flume会自动上传到hdfs中
    查看hdfs目录

    root@spark1:/usr/local/bigdata/flume_logs# hdfs dfs -lsr /flume_logs
    lsr: DEPRECATED: Please use 'ls -R' instead.
    -rw-r--r--   3 root supergroup         25 2018-09-17 15:03 /flume_logs/2018-09-17.1537167831660
    -rw-r--r--   3 root supergroup         11 2018-09-17 15:07 /flume_logs/2018-09-17.1537168036300

     查看日志文件

    root@spark1:/usr/local/bigdata/flume_logs# hdfs dfs -text /flume_logs/2018-09-17.1537167831660
    
    hello flume 
    hello word

    二、flume介绍

    1. Flume OG(original generation, 2009年7月):分布式日志收集系统,有Master概念,依赖于Zookeeper,分为agent, collector, storage三种角色

    2. Flume NG(next generation, 2011年10月):代码重构,功能精简,去掉master, collector角色,专注数据的收集与传递

    3.

     

    4.Flume Flow:

    Flow:数据采集流程·

    Event:消息处理的最小单位,带有一个可选的消息头

    Agent:一个独立的Flume进程,包含组件Source. Channel, Sink

    Source: 以event为单位接收信息,并确保信息被推送(push)到channel .

    Channel:缓存信息,确保信息在被sink处理前不会丢失,

    Sink:从channel中拉取(pull)并处理信息 .

    Interceptor: event拦截器,可以修改或丢弃event

    处理流程:source以event为单位从数据源接收信息,然后保存到一个或多个channel中 (可以经过一个或多个interceptor的预处理) , sink从channel中拉取并处理信息(保存,丢弃或传递到下一个agent) ,然后通知channel删除信息

    5.Source

    Avro:监听地址接收avro信息

    Thrift:监听地址,接收thrift信息

    JMS:监听JMS地址,接收jms信息

    Exec:监听命令输出,如tail-fxx.log

    Spooling Directory:监听放置到指定文件夹下的新文件,读取文件中的内容,

    Kafka:监听kafka服务器,接收kafka消息

    自定义:自定义的source

    6.channel

    Memory Channel:Event数据存储在内存中。处理速度快,但是不能保证信息的持久化,而且容量受限于内存大小。

    File Channel:Event数据存储在磁盘文件中。处理速度一般,但是可以保证信息不会丢失,,容量也几乎无限制.

    JDBC Channel:Event数据存储在持久化存储中,当前Flume Channel内置支持Derby

    Spillable Memory Channel :Event数据存储在内存中和磁盘上,当内存队列满了,会持久化到磁盘文件,(当前为试验性的,不建议生产环境使用)

    自定义Channel:实现Custom Channel

    7.sink

    HDFS:数据写入HDFS

    Hive:数据写入Hive数据

    Logger:写入日志文件

    Avтo:数据被转换成Avro Event,然后发送到配置的RPC端口上,

    Thrift:数据被转换成Thrift Event,然后发送到配置的RPC端口上.

    HBase:数据写入HBase数据库

    ElasticSearch:数据发送到Elastic Search搜索服务器(集群)

    Kafka:数据发送到Kafka

    Null:丢弃到所有数据

    Custom:自定义Sink实现

  • 相关阅读:
    Tensorflow实战系列之三:
    Tensorflow实战系列之二:
    scala映射和元组
    scala函数
    scala基础
    Hadoop Eclipse 插件制作以及安装
    理解HBase
    理解HDFS
    Hadoop入门学习路线
    日志框架Log4j
  • 原文地址:https://www.cnblogs.com/suwy/p/9665126.html
Copyright © 2020-2023  润新知