flume 一对多hdfs_flume介绍

https://flume.liyifeng.org/

一、flume是什么

Apache Flume是Apache软件基金会(ASF)的顶级项目,目前有两个发行版本,0.9.x和1.x

Apache Flume is a distributed, reliable, and available system for efficiently collecting, aggregating and moving large amounts of log data from many different sources to a centralized data store(Flume 是一个分布式、高可靠、高可用,用来收集、聚合、转移不同来源的大量日志数据到中央数据仓库的工具)

二、flume数据流模型

Event是flume数据流传输的最小数据单元,每个Event包含一个完整的agent;
每个agent都是flume的一个实例,实质是一个jvm进程,控制外部输入数据流到目的地(或者下一个agent)
Flume使用事务来保证Event的 可靠传输。Source和Sink对channel提供的每个Event数据分别封装一个事务用于存储和恢复,这样就保证了数据流的集合在点对点之间的可靠传输。在多层架构的情况下,来自前一层的sink和来自下一层的Source 都会有事务在运行以确保数据安全地传输到下一层的Channel中

agent组成:

· source(数据来源)---Source负责消费外部传递给它的数据。外部的数据生产方以Flume Source识别的格式向Flume发送Event

· channel(缓冲池) ---1、channel用来保证数据的可靠传输的;Event会在每个Agent的Channel上进行缓存,随后Event将会传递到流中的下一个Agent或目的地(比如HDFS)。只有成功地发送到下一个Agent或目的地后Event才会Channel中删除。这一步保证了Event数据流在Flume Agent中传输时端到端的可靠性
2、实现数据流入和流出的异步执行(Agent中的source和sink与channel存取Event是异步
3、Event数据会缓存在Channel中用来在失败的时候恢复出来。Flume支持保存在本地文件系统中的文件channel,也支持保存在内存中的Channel,内存Channel显然速度会更快,缺点是Agent挂掉内存Channel中缓存的数据也就丢失了。

· sink(数据输出方式和目的地)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Flume配置文件,用于从Kafka读取消息并将其写入HDFS: ``` # Name the components on this agent agent.sources = kafka-source agent.sinks = hdfs-sink agent.channels = memory-channel # Configure the Kafka source agent.sources.kafka-source.type = org.apache.flume.source.kafka.KafkaSource agent.sources.kafka-source.kafka.bootstrap.servers = localhost:9092 agent.sources.kafka-source.kafka.topics = my_topic agent.sources.kafka-source.kafka.consumer.group.id = flume # Configure the HDFS sink agent.sinks.hdfs-sink.type = hdfs agent.sinks.hdfs-sink.hdfs.path = /path/to/hdfs/directory/ agent.sinks.hdfs-sink.hdfs.fileType = DataStream agent.sinks.hdfs-sink.hdfs.writeFormat = Text # Use a memory channel to buffer events agent.channels.memory-channel.type = memory # Bind the source and sink to the channel agent.sources.kafka-source.channels = memory-channel agent.sinks.hdfs-sink.channel = memory-channel ``` 在上面的配置文件中,我们指定了Kafka source的类型为 `org.apache.flume.source.kafka.KafkaSource`。我们还指定了Kafka broker的地址、要消费的Kafka topic以及消费者组的ID。 我们将HDFS sink的类型指定为 `hdfs`,并指定要写入的HDFS目录的路径、文件类型和写入格式。 最后,我们使用内存通道来缓冲事件,并将Kafka source和HDFS sink绑定到通道上。 您可以使用以下命令来启动Flume代理: ``` $ bin/flume-ng agent -n agent -c conf -f /path/to/flume-conf.properties ``` 这里,`/path/to/flume-conf.properties`是您的Flume配置文件的路径。请确保Kafka和Hadoop集群在运行并可访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值