如何将数据从 Hive 导出到 kafka



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

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

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

  2. 从 stream 中,在驱动程序变量中收集并获取数据导出要求。

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

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

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

通常,你以相反的方式执行此操作(Kafka 到 HDFS/Hive)。

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

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