本文记录笔者第一次调通:python写数据到txt文件—flume采集txt文件数据—kafka(channel)接收并在终端查看消息的过程。
1.python从csv写入txt,代码实例如下:
# -*- coding: utf-8 -*-
import random
import time
readFileName="/usr/local/src/data/orders.csv"
writeFileName="./flume_exec_test.txt"
with open(writeFileName,'a+')as wf:
with open(readFileName,'rb') as f:
for line in f.readlines():
for word in line.split(" "):
ss = line.strip()
if len(ss)<1:
continue
wf.write(ss+'\n')
2.设置在flume相应的conf里设置相关信息,如下(制定kafka,设置topic):
3.新启动一个master,修改名字为consumer,逐步执行如下操作:
1).新建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic badou24
2).查看topic
./bin/kafka-topics.sh --list --zookeeper localhost:2181
3).删除topic
./bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic test
注意:默认情况下是无法删除topic,必须先到kafka的config文件夹下,进入server.properties文件设置delete.topic.enable=true,才可以执行删除topic操作
4).启动一个consumer端口查看消息
./bin/kafka-console-consumer.sh --zookeeper master:2181 --topic badou24 --from-beginning
5).启动,zookeeper、kafka
./zkServer.sh status # 三台机器都启动zookeeper
./bin/kafka-server-start.sh config/server.properties # master启动kafka
6).启动flume,执行脚本如下:
./bin/flume-ng agent --conf conf --conf-file ./conf/flume_kafka.conf --name a1 -Dflume.root.logger=INFO,console
7).执read_write.py写入数据到 flume_exec_test.txt,之后即可在consumer端查看到消息