Flume写入到HDFS

a1.sources = r1
a1.sinks = k1
a1.channels = c1


# 指定sources类型
# netcat
a1.sources.r1.type = netcat
a1.sources.r1.bind =master1
a1.sources.r1.port = 10000
a1.sources.r1.channels = c1 


# syslogtcp
# a1.sources.r1.type = syslogtcp
# a1.sources.r1.host =master1
# a1.sources.r1.port = 10000
# a1.sources.r1.channels = c1 


# spooldir
# a1.sources.r1.type = spooldir
# a1.sources.r1.spoolDir=/home/data
# a1.sources.r1.fileHeader = true 
# a1.sources.r1.channels = c1 


# 指定channels类型
# channels
a1.channels.c1.type = memory 
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
 
 
# 指定sinks为打印
# a1.sinks.k1.type = logger
# a1.sinks.k1.channel = c1
# a1.sinks.k1.hdfs.fileType=DataStream 


# HDFS_sinks
a1.sinks.k1.channel = c1
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = hdfs://master1:8020/flume
a1.sinks.k1.hdfs.filePrefix = spool
a1.sinks.k1.hdfs.fileSuffix = .txt 
a1.sinks.k1.hdfs.fileType=DataStream 
# #HDFS上的文件达到100MB时生成一个文件
a1.sinks.k1.hdfs.rollSize = 100000000
# #不按照条数生成文件
a1.sinks.k1.hdfs.rollCount = 1000000
# #HDFS上的文件达到1分钟生成一个文件
a1.sinks.k1.hdfs.rollInterval = 0
# 时间戳是否应四舍五入
a1.sinks.k1.hdfs.round = true
# 四舍五入到此值的最高倍数(使用hdfs.roundUnit配置的单位),要小于当前时间
a1.sinks.k1.hdfs.roundValue = 1
# 时间戳四舍五入的单位 - 秒,分钟,小时
a1.sinks.k1.hdfs.roundUnit = minute
a1.sinks.k1.hdfs.useLocalTimeStamp = true

如有错误,欢迎私信纠正,谢谢支持!

要将RabbitMQ中的数据写入HDFS中,可以使用Flume来实现。Flume是一个分布式、可靠、高可用的日志收集和聚合系统,支持从多个数据源(包括RabbitMQ)获取数据,并将数据写入到多个目的地(包括HDFS)中。 下面是一个使用Flume读取RabbitMQ数据写入HDFS的简单示例: 1. 安装RabbitMQ和Flume 首先需要安装RabbitMQ和Flume,可参考官方文档进行安装。 2. 配置RabbitMQ 需要在RabbitMQ中创建一个Exchange和一个Queue,并将它们绑定在一起。这样当有消息到达Exchange时,会被路由到Queue中。 3. 配置Flume 需要创建一个Flume配置文件,指定RabbitMQ作为数据源,HDFS作为目的地,并定义数据的格式和转换规则。 示例配置文件如下: ``` # Name the components on this agent agent.sources = rabbitmq-source agent.sinks = hdfs-sink agent.channels = memory-channel # Describe/configure the source agent.sources.rabbitmq-source.type = org.apache.flume.source.rabbitmq.RabbitMQSource agent.sources.rabbitmq-source.uri = amqp://guest:guest@localhost:5672 agent.sources.rabbitmq-source.queue = my-queue # Describe the sink agent.sinks.hdfs-sink.type = hdfs agent.sinks.hdfs-sink.hdfs.path = hdfs://localhost:9000/flume/rabbitmq-data/ agent.sinks.hdfs-sink.hdfs.fileType = DataStream agent.sinks.hdfs-sink.hdfs.writeFormat = Text # Use a channel which buffers events in memory agent.channels.memory-channel.type = memory # Bind the source and sink to the channel agent.sources.rabbitmq-source.channels = memory-channel agent.sinks.hdfs-sink.channel = memory-channel ``` 上述配置文件中,我们定义了一个名为“rabbitmq-source”的数据源,使用RabbitMQSource来接收来自RabbitMQ的数据。然后,我们定义了一个名为“hdfs-sink”的目的地,使用HDFS Sink将数据写入HDFS中。最后,我们定义了一个名为“memory-channel”的通道,用于缓存事件。 4. 启动Flume 使用以下命令启动Flume: ``` $ bin/flume-ng agent -n agent -c conf -f conf/flume.conf ``` 其中,`-n`指定代理的名称,`-c`指定配置文件目录,`-f`指定配置文件路径。 5. 测试 向RabbitMQ发送一些消息,可以通过以下命令查看HDFS中是否成功写入了数据: ``` $ bin/hadoop fs -cat /flume/rabbitmq-data/* ``` 注意:这只是一个简单的示例,实际应用中需要根据具体情况进行配置和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值