zoukankan      html  css  js  c++  java
  • 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文件夹里面的变化

  • 相关阅读:
    zabbix agent安装(三)
    获取hudson持续构建编译结果的一种方法
    一些C/C++中的函数
    设置页眉的章节及标题方法
    编译64位geos库的经验总结
    无法定位程序输入点到_ftol2于动态链接库msvcrt.dll的错误的解决
    Java学习笔记(二)
    初学网络协议
    HTTPS与SSL(二)
    HTTPS与SSL(一)
  • 原文地址:https://www.cnblogs.com/sanshuishui/p/14176679.html
Copyright © 2011-2022 走看看