我需要根据另一个Kafka主题中的一些事件,将数据从Hive导出到Kafka主题。我知道我可以使用HQL从Spark作业中的配置单元读取数据并将其从Spark写入Kafka,但是有更好的方法吗?
答案 0 :(得分:1)
这可以使用非结构化流媒体来实现。下面提到的步骤:
创建一个Spark Streaming作业,该作业连接到所需的主题并获取所需的数据导出信息。
从stream进行收集,并在Driver变量中获取数据导出要求。
使用指定条件创建数据框
使用kafkaUtils将数据框写入所需的主题。
根据数据量和kafka写吞吐量提供轮询间隔。
答案 1 :(得分:0)
通常,您可以通过其他方式(从Kafka到HDFS / Hive)执行此操作。
但是,欢迎您尝试使用Kafka Connect JDBC插件按计划从Hive表读取数据,该表会将行转换为结构化键值的Kafka消息。
否则,我将重新评估其他工具,因为Hive运行缓慢。 Couchbase或Cassandra提供了更好的CDC功能,可将其吸入Kafka。或重新编写插入Hive的上游应用程序,而不是立即写入Kafka,例如,您可以从中加入其他主题。