如何将数据从Hive导出到Kafka

时间:2019-01-15 06:17:08

标签: apache-spark hive apache-kafka

我需要根据另一个Kafka主题中的一些事件,将数据从Hive导出到Kafka主题。我知道我可以使用HQL从Spark作业中的配置单元读取数据并将其从Spark写入Kafka,但是有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

这可以使用非结构化流媒体来实现。下面提到的步骤:

  1. 创建一个Spark Streaming作业,该作业连接到所需的主题并获取所需的数据导出信息。

  2. 从stream进行收集,并在Driver变量中获取数据导出要求。

  3. 使用指定条件创建数据框

  4. 使用kafkaUtils将数据框写入所需的主题。

  5. 根据数据量和kafka写吞吐量提供轮询间隔。

答案 1 :(得分:0)

通常,您可以通过其他方式(从Kafka到HDFS / Hive)执行此操作。

但是,欢迎您尝试使用Kafka Connect JDBC插件按计划从Hive表读取数据,该表会将行转换为结构化键值的Kafka消息。

否则,我将重新评估其他工具,因为Hive运行缓慢。 Couchbase或Cassandra提供了更好的CDC功能,可将其吸入Kafka。或重新编写插入Hive的上游应用程序,而不是立即写入Kafka,例如,您可以从中加入其他主题。