ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Flume | 安装部署

2021-08-05 11:01:03  阅读:195  来源: 互联网

标签:Flume flume sinks hdfs 部署 k2 a2 env 安装


Flume安装部署

  1. 地址
  1. 解压安装
  • 下载apache-flume-1.7.0-bin.tar.gz 上传到 /opt/software 目录 解压到 /opt/module/flume
  1. flume整体部署配置
  • flume/conf 下的 flume-env.sh.template 文件修改为 flume-env.sh,并配置 flume-env.sh 文件
mv flume-env.sh.template flume-env.sh
vi flume-env.sh
//java环境的地址
export JAVA_HOME=/opt/module/jdk1.8.0_144
  1. 整体配置完成

入门案例

  • 要求:实时监控 Hive 日志,并上传到 HDFS 中
  1. Flume 要想将数据输出到 HDFS,须持有 Hadoop 相关 jar 包 将下列 jar 包拷贝到 /opt/module/flume/lib 文件夹下
  2. 新建文件夹 job 在文件夹中创建 flume-file-hdfs.conf 文件 添加如下内容:
# Name the components on this agent
a2.sources = r2
a2.sinks = k2
a2.channels = c2
# Describe/configure the source
a2.sources.r2.type = exec
a2.sources.r2.command = tail -F /opt/module/hive/logs/hive.log
a2.sources.r2.shell = /bin/bash -c
# Describe the sink
a2.sinks.k2.type = hdfs
a2.sinks.k2.hdfs.path = hdfs://hadoop102:9000/flume/%Y%m%d/%H
#上传文件的前缀
a2.sinks.k2.hdfs.filePrefix = logs-
#是否按照时间滚动文件夹
a2.sinks.k2.hdfs.round = true
#多少时间单位创建一个新的文件夹
a2.sinks.k2.hdfs.roundValue = 1
#重新定义时间单位
a2.sinks.k2.hdfs.roundUnit = hour
#是否使用本地时间戳
a2.sinks.k2.hdfs.useLocalTimeStamp = true
#积攒多少个 Event 才 flush 到 HDFS 一次
a2.sinks.k2.hdfs.batchSize = 1000
#设置文件类型,可支持压缩
a2.sinks.k2.hdfs.fileType = DataStream
#多久生成一个新的文件
a2.sinks.k2.hdfs.rollInterval = 30
#设置每个文件的滚动大小
a2.sinks.k2.hdfs.rollSize = 134217700
#文件的滚动与 Event 数量无关
a2.sinks.k2.hdfs.rollCount = 0
# Use a channel which buffers events in memory
a2.channels.c2.type = memory
a2.channels.c2.capacity = 1000
a2.channels.c2.transactionCapacity = 100
# Bind the source and sink to the channel
a2.sources.r2.channels = c2
a2.sinks.k2.channel = c2

对于所有与时间相关的转义序列,Event Header 中必须存在以 “timestamp”的 key(除非hdfs.useLocalTimeStamp 设置为 true,此方法会使用TimestampInterceptor 自动添加timestamp)
如: a2.sinks.k2.hdfs.useLocalTimeStamp = true

  1. 配置解释
  2. 运行Flume bin/flume-ng agent --conf conf/ --name a2 --conf-file job/flume-file-hdfs.conf
  3. 开启 Hadoop 和 Hive 并操作 Hive 产生日志
  4. 上HDFS上查看文件

产生一个flume文件夹代表成功


Flume 简单理解

  • Sourc 负责用各种方式读取各种地点各种数据(如:从服务器本地读取动态变化的日志,静态的文件,考虑断点续传等等)
  • Channel 负责传输(有保护作用,不至于读快来不及写导致应用崩溃)
  • Sink 负责写把数据到各种地点(如:上传到HDFS、打印到控制台等等)
  • Agent 是一个 JVM 进程,它以事件的形式将数据从源头送至目的 Agent 主要有 3 个部分组成,Source、Channel、Sink
  • Event Flume 数据传输的基本单元,以 Event 的形式将数据从源头送至目的地。Event 由 Header 和 Body 两部分组成,Header 用来存放该 event 的一些属性,为 K-V 结构,Body 用来存放该条数据,形式为字节数组
  • 基础架构图
    image

标签:Flume,flume,sinks,hdfs,部署,k2,a2,env,安装
来源: https://www.cnblogs.com/zhy-god/p/15100198.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有