复制和多路复用

文章目录

  • 1)需求
  • 2)需求分析
  • 3)前期准备
  • 4)配置文件
  • 5)启动相关命令
  • 6)检验

1)需求

使用 Flume-1 监控文件变动,Flume-1 将变动内容传递给 Flume-2,Flume-2 负责存储 到 HDFS。同时 Flume-1 将变动内容传递给 Flume-3,Flume-3 负责输出到 Local FileSystem

2)需求分析

3)前期准备

(1)在/opt/module/flume/job 目录下创建 group1 文件夹(存放配置文件)

(2)在/opt/module/datas/目录下创建 flume3 文件夹

4)配置文件

配置 1 个接收日志文件的 source 和两个 channel、两个 sink,分别输送给 flume-flumehdfs 和 flume-flume-dir

(1)创建flume-file-flume.conf文件

# Name the components on this agent
a1.sources = r1
a1.sinks = k1 k2
a1.channels = c1 c2# 将数据流复制给所有 channel
a1.sources.r1.selector.type = replicating# Describe/configure the source
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /opt/module/hive/logs/hive.log
a1.sources.r1.shell = /bin/bash -c# Describe the sink
# sink 端的 avro 是一个数据发送者
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = hadoop102
a1.sinks.k1.port = 4141a1.sinks.k2.type = avro
a1.sinks.k2.hostname = hadoop102
a1.sinks.k2.port = 4142# Describe the channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.channels.c2.type = memory
a1.channels.c2.capacity = 1000
a1.channels.c2.transactionCapacity = 100# Bind the source and sink to the channel
a1.sources.r1.channels = c1 c2
a1.sinks.k1.channel = c1
a1.sinks.k2.channel = c2

(2)创建 flume-flume-hdfs.conf

# Name the components on this agent
a2.sources = r1
a2.sinks = k1
a2.channels = c1# Describe/configure the source
# source 端的 avro 是一个数据接收服务
a2.sources.r1.type = avro
a2.sources.r1.bind = hadoop102
a2.sources.r1.port = 4141# Describe the sink
a2.sinks.k1.type = hdfs
a2.sinks.k1.hdfs.path = hdfs://hadoop102:8020/flume2/%Y%m%d/%H#上传文件的前缀
a2.sinks.k1.hdfs.filePrefix = flume2-
#是否按照时间滚动文件夹
a2.sinks.k1.hdfs.round = true
#多少时间单位创建一个新的文件夹
a2.sinks.k1.hdfs.roundValue = 1
#重新定义时间单位
a2.sinks.k1.hdfs.roundUnit = hour
#是否使用本地时间戳
a2.sinks.k1.hdfs.useLocalTimeStamp = true
#积攒多少个 Event 才 flush 到 HDFS 一次
a2.sinks.k1.hdfs.batchSize = 100
#设置文件类型,可支持压缩
a2.sinks.k1.hdfs.fileType = DataStream
#多久生成一个新的文件
a2.sinks.k1.hdfs.rollInterval = 30
#设置每个文件的滚动大小大概是 128M
a2.sinks.k1.hdfs.rollSize = 134217700
#文件的滚动与 Event 数量无关
a2.sinks.k1.hdfs.rollCount = 0# Describe the channel
a2.channels.c1.type = memory
a2.channels.c1.capacity = 1000
a2.channels.c1.transactionCapacity = 100# Bind the source and sink to the channel
a2.sources.r1.channels = c1
a2.sinks.k1.channel = c1

(3)创建 flume-flume-dir.conf

# Name the components on this agent
a3.sources = r1
a3.sinks = k1
a3.channels = c2# Describe/configure the source
a3.sources.r1.type = avro
a3.sources.r1.bind = hadoop102
a3.sources.r1.port = 4142# Describe the sink
a3.sinks.k1.type = file_roll
a3.sinks.k1.sink.directory = /opt/module/datas/flume3# Describe the channel
a3.channels.c2.type = memory
a3.channels.c2.capacity = 1000
a3.channels.c2.transactionCapacity = 100# Bind the source and sink to the channel
a3.sources.r1.channels = c2
a3.sinks.k1.channel = c2

5)启动相关命令

依次启动:

bin/flume-ng agent -c conf/ -n a3 -f job/group1/flume-flume-dir.conf
bin/flume-ng agent -c conf/ -n a2 -f job/group1/flume-flume-hdfs.conf
bin/flume-ng agent -c conf/ -n a1 -f job/group1/flume-file-flume.conf

我们监听的是hive日志,所以我们启动hive后查看情况

6)检验

/opt/module/datas/flume3下的数据

HDFS上的数据

flume复制和多路重用的使用案例相关推荐

  1. Java基础知识强化之IO流笔记44:IO流练习之 复制图片的 4 种方式案例

    1. 复制图片的 4 种方式案例: 分析: 复制数据,如果我们知道用记事本打开并能够读懂,就用字符流,否则用字节流. 通过该原理,我们知道我们应该采用字节流. 而字节流有4种方式,所以做这个题目我们有 ...

  2. Flume监听端口,输出端口数据案例

    1.在flume目录下新建/myconf目录,并在目录下新建socket-console.conf 文件! mkdir myconf cd myconf touch socket-console.co ...

  3. flume三种方式收集日志的案例

    exec 监测某个单一的文件 # user_action_log_src 这个名字可以任意取 agent1.sources = user_action_log_src # memoryChannel ...

  4. 03_ Flume采集(监听)目录到HDFS案例

    采集需求:某服务器的某特定目录下,会不断产生新的文件,每当有新文件出现,就需要把文件采集到HDFS中去 根据需求,首先定义以下3大要素 l.采集数据源,即source--监控文件目录 :  spool ...

  5. 正点原子IMX6UL 多路按键中断实际案例

    1 前言 项目上需要多个按键输入, 因此记录一下多个按键的中断如何做 2 修改设备树 pinctrl_gpio_keys: gpio-keys {fsl,pins = <MX6UL_PAD_SN ...

  6. 复制淘宝手机端页面案例

    <!DOCTYPE html> <html><head><meta charset="utf-8" /><title>淘 ...

  7. 2、Flume1.7.0入门:安装、部署、及flume的案例

    一.什么是Flume? flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用. flume的特点: flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的 ...

  8. 『Oracle数据复制容灾案例系列』兴业证券Oracle容灾案例

    『Oracle数据复制容灾案例系列』   兴业证券Oracle数据库复制容灾案例 使用产品:DDS 上线时间:2006 系统环境:Oracle 10g RAC  IBM AIX5L 应用系统:恒生 证 ...

  9. Flume-day03_进阶案例

    案例六.多路复制 1.将flume复制到node1,node2 [root@master soft]# scp -r flume-1.9.0 node1:`pwd` [root@master soft ...

最新文章

  1. Angularjs中文教程
  2. PCL点云库:Kd树
  3. 信息系统项目管理师培训感言
  4. 团队-团队编程项目作业名称-成员简介及分工
  5. laravel翻看php日志,关于Laravel的日志用法
  6. Hadoop动态扩容,增加节点
  7. 一些试题:C++面试题.万能Key
  8. 2020后半年iPhone取消附赠耳机?分析师上调AirPods出货量预估
  9. YUV格式学习:NV16和YUV422P格式互换
  10. java多线程学习-java.util.concurrent详解(五) ScheduledThreadPoolExecutor
  11. ios开发之验证你的服务器ATS是否PASS
  12. python创建一个txt文件
  13. 安卓QQ协议抓包教程
  14. 【数学模拟卷总结】2023李林六套卷数学二第一套
  15. VTK:图形基本操作进阶——表面重建技术(等值面提取)
  16. Python二维码制作
  17. 懒人笔记—python基础语法1
  18. Qt,C++开发炫酷圆形扇形菜单面板
  19. Flask懒加载时 moles.py 无法运行
  20. [图像去雨]--Arixv-Gradual Network for Single Image De-raining

热门文章

  1. nagios监控服务短信报警开发及部署细节
  2. 酸奶小妹升级成酸奶妈妈了!
  3. 【重要+细节】LeetCode 149. Max Points on a Line
  4. tensorflow学习之常用函数总结:tensorflow.placeholder()函数
  5. ffmpeg视频播放、格式转化、缩放等命令
  6. 访问修饰符 public private protected default
  7. js正则表达式——数字校验
  8. hdu4417(Super Mario)—— 二分+划分树
  9. OpenCV中Mat,图像二维指针和CxImage类的转换
  10. Maven项目环境搭建实例.