如何使用Hive和Kafka-Python客户端在HDFS中使用数据?

时间:2018-05-22 11:44:21

标签: hive apache-kafka hdfs kafka-python

对不起,如果这是一个愚蠢的问题。我是所有这些管道的新手:)

我使用kafka-python客户端创建一个发送csv的生产者(一个csv行=一个kafka消息)。请注意,我通过JSON将其序列化为字符串,并将其编码为UTF-8字节。然后我创建了一个解码消息的消费者(一个csv行现在是一个字符串)并将它们打印到终端。 现在我需要使用hive将这些数据保存在hdfs中。我想将每条消息插入一个hive表,然后我想做一个巨大的选择来获取一个文件中的所有数据。

使用python执行此操作的最佳方法是什么?

这就是我所做的:

首先,我启动zookeeper服务器:

bin/zookeeper-server-start.sh config/zookeeper.properties

然后我启动kafka服务器:

bin/kafka-server-start.sh config/server.properties

然后我开始我的消费者和制作人:

我的制作人:

from kafka import KafkaClient, KafkaProducer, KafkaConsumer
import csv
import json

client = KafkaClient("localhost:9092")

producer = KafkaProducer(bootstrap_servers='localhost:9092')

with open("train.csv") as file:
    reader = csv.reader(file)
    for row in reader:
        producer.send('the_topic', json.dumps(row).encode('utf-8'))

我的消费者:

from kafka import KafkaConsumer
import json

consumer = KafkaConsumer('the_topic')

for msg in consumer:
    decoded_msg = msg.value.decode("utf-8")
    print(decoded_msg)

0 个答案:

没有答案