nifi:使用kafka并将数据存储到hive的正确方法

ar7v8xwq  于 2021-05-31  发布在  Hadoop
关注(0)|答案(1)|浏览(881)

我的任务是创建kafka消费者,它应该从kafka中提取消息,将其转换并存储到hive表中。
因此,在kafka主题中有很多消息作为json对象。
我喜欢添加一些字段并将其插入Hive。
我使用以下nifi处理器创建流:
Kafka
jottransformjson-用于转换json
convertrecord—将json转换为配置单元的插入查询
puthiveql公司
该主题将有足够的负载,每天处理大约5gb的数据。
那么,有什么方法可以优化我的流(我认为给hive提供大量的insert查询是个坏主意)?也许使用外部表和puthdfs处理器会更好(这样如何使用分区并将输入json合并到一个文件中?)

r8xiu3jd

r8xiu3jd1#

正如您所怀疑的,使用puthiveql执行大量的单个插入并不是很好。使用外部表方法可能会更好。如果表是orc格式,那么可以使用convertavrotoorc(对于Hive1.2)或putorc(对于Hive3),这两种方法都生成HiveDDL来帮助创建外部表。
也有hive流处理器,但是如果您使用的是Hive1.2,puthivestreaming的性能也不是很好(但是仍然应该比带有插入的puthiveql更好)。对于hive3,puthive3streaming应该性能更好,是我推荐的解决方案。

相关问题