Flume读取数据写入Hive、Mysql

本文介绍了如何使用Flume将数据流分别写入到Hive和Mysql。首先,详细阐述了配置Flume以将数据写入Hive表,包括创建Hive表、配置Flume的Hive sink,以及相关参数解释。接着,同样详细讲解了Flume写入Mysql的过程,包括创建Mysql表和配置Flume的Mysql sink。最后,通过启动Flume命令,完成数据从Flume到Hive和Mysql的传输。
摘要由CSDN通过智能技术生成

关于flume的简介以及应用在前面已经给大家详细的讲解过,今天主要就如何把flume抓取的数据写入到其它地方。
由于时间关系在这里还是使用伪数据和前面所说的一样,主要是配置flume,先说下把读取的数据写入到Hive中。

读取数据写入Hive

先创建hive表,数据库名就叫test吧,

create table tests ( id int , msg string )
   partitioned by (continent string, country string, time string)
   clustered by (id) into 5 buckets
   stored as orc;

配置hive的flume
先新建配置文件用于关联hive
还是在/opt/flumeconf下创建properties文件,并添加以下配置
cd /opt/flumeconf
vi conf_0817_hive.properties

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

a1.sources.s1.type=spooldir
a1.sources.s1.spoolDir=/opt/soft/datas

a1.sinks.k1.type = hive
a1.sinks.k1.channel = c1
a1.sinks.k1.hive.metastore = thrift:#127.0.0.1:9083
a1.sinks.k1.hive.database = test
a1.sinks.k1.hive.table = tests
a1.sinks.k1
要将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/* ``` 注意:这只是一个简单的示例,实际应用中需要根据具体情况进行配置和调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值