Flume知识点入门学习二
发布日期:2021-05-06 15:29:32 浏览次数:26 分类:精选文章

本文共 2636 字,大约阅读时间需要 8 分钟。

Flume 数据传输配置与优化实践

在大数据处理和ETL(Extract、Transform、Load)流程中,Flume 作为一种灵活高效的数据传输工具,广泛应用于数据采集、数据传输和数据存储等场景。本文将详细介绍如何配置Flume 实例,实现多源多目的数据传输。

Flume配置实例:实现多源多目的数据传输

本文将通过一个典型案例,介绍如何配置Flume 实例,实现文件变动监控与数据传输。具体场景如下:

  • 需求: 使用 Flume-1 监控特定文件(如 hive.log 文件)的变动,实时将数据传输至 Flume-2 和 Flume-3。
    • Flume-2 负责将数据存储至 HDFS。
    • Flume-3 负责将数据输出至本地文件系统。

Flume配置详细说明

1. Flume-1配置:实现多通道多端点数据传输

Flume-1 的核心配置文件为 flume1.conf,主要功能是监控 hive.log 文件变动,并将数据传输至 Flume-2 和 Flume-3。

# Flume-1配置文件:flume1.confa1.sources.r1.type=execa1.sources.r1.command=tail -F /opt/module/hive/logs/hive.loga1.sources.r1.shell=/bin/bash -ca1.sinks.k1.type=avroa1.sinks.k1.hostname=hadoop102a1.sinks.k1.port=4141a1.sinks.k2.type=avroa1.sinks.k2.hostname=hadoop102a1.sinks.k2.port=4142a1.channels.c1.type=memorya1.channels.c1.capacity=1000a1.channels.c1.transactionCapacity=100a1.channels.c2.type=memorya1.channels.c2.capacity=1000a1.channels.c2.transactionCapacity=100a1.sources.r1.channels=c1 c2a1.sinks.k1.channel=c1a1.sinks.k2.channel=c2

2. Flume-2配置:实现数据存储至HDFS

Flume-2 的配置文件为 flume2.conf,主要功能是接收 Flume-1 的数据,并将数据存储至 HDFS。

# Flume-2配置文件:flume2.confa2.sources.r1.type=avroa2.sources.r1.bind=hadoop102a2.sources.r1.port=4141a2.sinks.k1.type=hdfsa2.sinks.k1.hdfs.path=hdfs://hadoop102:9000/flume2/%Y%m%d/%Ha2.sinks.k1.hdfs.filePrefix=flume2-a2.sinks.k1.hdfs.round=truea2.sinks.k1.hdfs.roundValue=1a2.sinks.k1.hdfs.roundUnit=houra2.sinks.k1.hdfs.useLocalTimeStamp=truea2.sinks.k1.hdfs.batchSize=100a2.sinks.k1.hdfs.fileType=DataStreama2.sinks.k1.hdfs.rollInterval=600a2.sinks.k1.hdfs.rollSize=134217700a2.sinks.k1.hdfs.minBlockReplicas=1a2.channels.c1.type=memorya2.channels.c1.capacity=1000a2.channels.c1.transactionCapacity=100a2.sources.r1.channels=c1a2.sinks.k1.channel=c1

3. Flume-3配置:实现数据输出至本地文件系统

Flume-3 的配置文件为 flume3.conf,主要功能是接收 Flume-1 的数据,并将数据输出至本地文件系统。

# Flume-3配置文件:flume3.confa3.sources.r1.type=avroa3.sources.r1.bind=hadoop102a3.sources.r1.port=4142a3.sinks.k1.type=file_rolla3.sinks.k1.sink.directory=/opt/module/datas/flume3a3.channels.c1.type=memorya3.channels.c1.capacity=1000a3.channels.c1.transactionCapacity=100a3.sources.r1.channels=c1a3.sinks.k1.channel=c1

Flume集群部署与启动

  • 集群环境准备:部署三个节点(以 hadoop102 为例),每个节点上安装 Flume。

  • 启动命令

    # 启动Flume-3./flume-3 -config /opt/module/flume/conf/flume3.conf# 启动Flume-2./flume-2 -config /opt/module/flume/conf/flume2.conf# 启动Flume-1./flume-1 -config /opt/module/flume/conf/flume1.conf
  • 测试与验证

  • 验证 Flume-3 输出

    • 检查本地文件目录 /opt/module/datas/flume3 是否有新文件生成。
  • 验证 HDFS 数据存储

    • 使用 hdfs dfscommands -ls hdfs://hadoop102:9000/flume2/ 查看是否有新的文件夹和文件生成。
  • 总结

    通过以上配置和部署,Flume 实现了文件变动监控与多目的数据传输。本文详细介绍了 Flume 的配置方法以及集群部署与测试验证流程。Flume 的灵活配置和高效传输特性,使其成为大数据处理和ETL 流程中不可或缺的工具。

    上一篇:Kafka知识点入门学习一
    下一篇:Flume知识点入门学习一

    发表评论

    最新留言

    不错!
    [***.144.177.141]2025年05月06日 16时30分56秒