• Flume的安装配置


    flume的概述
    Apache Flume是一个分布式,可靠且可用的系统,用于有效地从许多不同的source收集,聚合和移动大量日志数据到集中式数据存储。
    Apache Flume的使用不仅限于日志数据聚合。由于数据source是可定制的,因此Flume可用于传输大量event 数据,包括但不限于网络流量数据,社交媒体生成的数据,电子邮件消息以及几乎任何可能的数据source。
    Apache Flume是Apache Software Foundation的顶级项目。

    系统要求

    1. Java运行时环境 - Java 1.8或更高版本
    2. 内存 - 为source,channel或 sink 配置的内存
    3. 磁盘空间 - channel或sink配置的磁盘空间
    4. 目录权限 - agent使用的目录的读/写权限

    Flume event 被定义为具有字节有效负载和可选字符串属性集的数据流单元。Flume agent 是一个(JVM)进程,它承载event 从外部source流向下一个目标(跃点)的组件。

    安装步骤
    1.将flume的压缩文件上传到linux中

    2.进入到flume/conf 将 flume-env.sh.templ 复制为flume-env.sh

    1. 将export JAVA_OPTS 那行的注释去掉

    4.进入flume目录下 vi dir-hdfs.conf 不用担心没有文件怎么办,vi命令会自己创建一个文件

    `#定义三大组件的名称
    ag1.sources = source1
    ag1.sinks = sink1
    ag1.channels = channel1

    配置source组件

    ag1.sources.source1.type = spooldir
    ag1.sources.source1.spoolDir = /root/data/log
    ag1.sources.source1.fileSuffix=.FINISHED
    ag1.sources.source1.inputCharset=utf-8
    ag1.sources.source1.deserializer.maxLineLength=5120

    配置sink组件

    ag1.sinks.sink1.type = hdfs
    ag1.sinks.sink1.hdfs.path =hdfs://192.168.56.2/access_log/%y-%m-%d/%H-%M
    ag1.sinks.sink1.hdfs.filePrefix = app_log
    ag1.sinks.sink1.hdfs.fileSuffix = .log
    ag1.sinks.sink1.hdfs.batchSize= 100
    ag1.sinks.sink1.hdfs.fileType = DataStream
    ag1.sinks.sink1.hdfs.writeFormat =Text

    roll:滚动切换:控制写文件的切换规则

    按文件体积(字节)来切

    ag1.sinks.sink1.hdfs.rollSize = 512000

    按event条数切

    ag1.sinks.sink1.hdfs.rollCount = 1000000

    按时间间隔切换文件

    ag1.sinks.sink1.hdfs.rollInterval = 60

    控制生成目录的规则(round回滚)

    ag1.sinks.sink1.hdfs.round = true
    ag1.sinks.sink1.hdfs.roundValue = 10
    ag1.sinks.sink1.hdfs.roundUnit = minute
    ag1.sinks.sink1.hdfs.useLocalTimeStamp = true

    channel组件配置

    ag1.channels.channel1.type = memory

    event条数

    ag1.channels.channel1.capacity = 500000

    flume事务控制所需要的缓存容量600条event

    ag1.channels.channel1.transactionCapacity = 600

    绑定source、channel和sink之间的连接

    ag1.sources.source1.channels = channel1
    ag1.sinks.sink1.channel = channel1`

    5.执行bin/flume-ng agent -c conf/ -f dir-hdfs.conf -n ag1 -Dflume.root.logger=INFO,console
    启动后flume会一直在运行,在创建一个Xshell窗口进行一下操作

    6.根据你配置source组件 spoolDir 创建对应的路径 创建源目录log 给与777权限 并且在log目录下存放需要采集的数据
    我的是ag1.sources.source1.spoolDir = /root/data/log

    cd ~ #进入根目录 /root

    mkdir data #创建data

    cd data #进入data

    mkdir log #创建log

    chmod 777 log #给log赋予权限

    touch a.txt #创建一个文本插入数据用来测试

    echo hello world > a.txt

    mv a.txt log/a.txt

    7.观察flume中日志信息,查看采集后的文件是否加了后缀 .FINISHED

    同时可在/root/data/log 中查看他的变化,和hdfs上的access_log文件夹里面的变化

  • 相关阅读:
    《设计模式》(精华集)
    TClientDataSet使用(二)
    害我查了半天的错误!av错误,小心Component对象使用Application当Owner
    释放自己
    最近在转C#
    TClientDataSet的使用技巧
    小心使用可修改的常量。
    指数函数和正弦函数相乘
    adb 常用命令
    win7下ie9设置无法保存的问题
  • 原文地址:https://www.cnblogs.com/sanshuishui/p/14176679.html
Copyright © 2020-2023  润新知