【数据采集】Flume和Kafka的组合使用

在Windows系统中打开第1个cmd窗口,执行如下命令启动 Zookeeper服务:

cd C:\zookeeper\apache-zookeeper-3.7.1-bin


.\bin\zkServer.cmd

67a5fce51b7146ada28e23dadadf4b23.png

打开第2个cmd窗口,然后执行下面命令启动Kafka服务:

cd C:\kafka_2.12-2.4.0\kafka_2.12-2.4.0


.\bin\windows\kafka-server-start.bat .\config\server.properties

04e15bf0112f4730ac33f599439fe7e1.png

 打开第3个cmd窗口,执行如下命令创建一个名为test的Topic:

> cd c:\kafka_2.12-2.4.0

> .\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

28fe6b06ec454d3790ea78bb4115ddf7.png

 在Flume的安装目录的conf子目录下创建一个配置文件kafka.conf,内容如下:

# Name the components on this agent

a1.sources = r1 a1.sinks = k1

a1.channels = c1

# source

a1.sources.r1.type = netcat

a1.sources.r1.bind = localhost

a1.sources.r1.port = 44444

# sink

a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink

a1.sinks.k1.kafka.topic = test

a1.sinks.k1.kafka.bootstrap.servers = localhost:9092

a1.sinks.k1.kafka.flumeBatchSize = 20

a1.sinks.k1.kafka.producer.acks = 1

a1.sinks.k1.kafka.producer.linger.ms = 1

a1.sinks.k1.kafka.producer.compression.type = snappy

# channel

a1.channels.c1.type = memory

a1.channels.c1.capacity = 1000

a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel

a1.sources.r1.channels = c1

a1.sinks.k1.channel = c1

 

打开第4个cmd窗口,执行如下命令启动Flume:

> cd c:\apache-flume-1.9.0-bin

> .\bin\flume-ng.cmd agent --conf ./conf --conf-file ./conf/kafka.conf --name a1 -property flume.root.logger=INFO,console

53579dde99c44318bd92663b896516a7.png

打开第5个cmd窗口,执行如下命令:

> telnet localhost 44444

执行上面命令以后,在该窗口内用键盘输入一些单词(不会显示),比如“hadoop”。 这个单词会发送给Flume,然后,Flume发送给Kafka。 

e0cf4e42c73d4aea8fc8d34ecaf33b6b.png

 打开第6个cmd窗口,执行如下命令:

> cd c:\kafka_2.12-2.4.0

> .\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning

上面命令执行以后,就可以在屏幕上看到“hadoop”,说明Kafka成功接 收到了数据。

9f4dbbf072dc488a98cfd6c0f6b8ae12.png

 

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
好的,我可以回答这个问题。您可以按照以下步骤来使用Flume采集Kafka数据到HDFS和Hive中: 1. 首先,确保您已经安装了FlumeKafka、HDFS和Hive等必要的软件。 2. 然后,在Flume的配置文件中添加Kafka作为Source和HDFS/Hive作为Sink。例如,以下是一个简单的配置文件示例: ``` agent.sources = kafka-source agent.channels = hdfs-channel agent.sinks = hdfs-sink hive-sink agent.sources.kafka-source.type = org.apache.flume.source.kafka.KafkaSource agent.sources.kafka-source.batchSize = 1000 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 = my-group agent.channels.hdfs-channel.type = memory agent.channels.hdfs-channel.capacity = 10000 agent.channels.hdfs-channel.transactionCapacity = 100 agent.sinks.hdfs-sink.type = hdfs agent.sinks.hdfs-sink.hdfs.path = hdfs://localhost:9000/flume/kafka agent.sinks.hdfs-sink.hdfs.fileType = DataStream agent.sinks.hdfs-sink.hdfs.writeFormat = Text agent.sinks.hdfs-sink.channel = hdfs-channel agent.sinks.hive-sink.type = hive agent.sinks.hive-sink.hive.metastore = thrift://localhost:9083 agent.sinks.hive-sink.hive.database = my-db agent.sinks.hive-sink.hive.table = my-table agent.sinks.hive-sink.hive.partition = dt=%Y-%m-%d agent.sinks.hive-sink.channel = hdfs-channel ``` 在上面的配置文件中,我们使用Kafka作为Source,将数据写入到HDFS和Hive中。我们使用Memory Channel将数据缓存在内存中,然后将其写入到HDFS和Hive中。在Hive Sink中,我们还定义了一个分区,以便按日期对数据进行分区。 3. 最后,运行Flume代理以开始从Kafka读取数据并将其写入到HDFS和Hive中。您可以使用以下命令来启动Flume代理: ``` $ bin/flume-ng agent -n agent -c conf -f conf/flume-kafka-hdfs-hive.conf ``` 这样,Flume代理就会开始从Kafka读取数据,并将其写入到HDFS和Hive中。 希望这些信息能够帮助您采集Kafka数据到HDFS和Hive中。如果您有任何其他问题,请随时问我。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WiIsonEdwards

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值