我目前在Nifi中的流动就像
ListHDFS->FetchHDFS->SplitText->JoltransformJSon->PUTHBaseJSON.
每小时输入的JSON文件最大为10GB。 单个文件大小为80 -100MB。
Splittext&JoltTransform->转换文本并将其作为4KB文件发送。因此,每小时的工作需要50到1.20分钟才能完成工作流程。我怎样才能使它更快。处理用例的最佳流程是什么?
尝试使用Mergecontent,效果不好。
谢谢所有
答案 0 :(得分:3)
您可以在 JoltTransfromJson Processor 和
之后使用 MergeRecord处理程序保留您的最大记录数,以使流文件有资格合并到单个流文件中。
使用 Max Bin Age (最大垃圾箱年龄)属性作为通配符,以强制符合条件的垃圾箱被合并。
然后使用面向记录的HBase处理器,即 PutHBaseRecord 处理器,并配置您的 Record Reader控制器服务(JsonTree Reader)以读取传入流程文件并调整Batch size
属性值以获得最佳性能。
通过此过程,我们正在处理记录块,最终提高了将数据存储到HBase中的性能。
流量:
ListHDFS->FetchHDFS->SplitText->JoltransformJSon->MergeRecord ->PUTHBaseRecord