apache-nifi - 如何处理 Nifi 中的小文件问题
问题描述
我目前在 Nifi 的流程就像
ListHDFS->FetchHDFS->SplitText->JoltransformJSon->PUTHBaseJSON.
每小时输入的 JSON 文件最大为 10GB。单个文件大小为 80 -100MB。
Splittext & JoltTransform -> 转换文本并将其作为 4KB 文件发送。因此,每小时的工作需要 50 到 1.20 分钟来完成流程。我怎样才能让它更快。处理用例的最佳流程是什么。
曾尝试使用 Mergecontent ,但效果不佳。
谢谢大家
解决方案
您可以在JoltTransfromJson 处理器和之后使用MergeRecord 处理器
保持最大记录数,以使流文件有资格合并到单个流文件中。
使用Max Bin Age属性作为通配符来强制合并符合条件的 bin。
然后为 HBase 使用面向记录的处理器,即PutHBaseRecord处理器并配置您的记录读取器控制器服务(JsonTree Reader)以读取传入的流文件并调整Batch size
属性值以获得最佳性能。
通过使用这个过程,我们正在处理大量的记录,最终提高了将数据存储到 HBase 中的性能。
流动:
ListHDFS->FetchHDFS->SplitText->JoltransformJSon->MergeRecord ->PUTHBaseRecord
推荐阅读
- java - 有什么方法可以从网格表查看器中拖放到 nat 表中
- java - 矩阵中的最小路径和
- python - selenium python动态下拉菜单
- java - 使用 Volley 在服务器上同步数据
- mysql - 为什么以下面的方式使用 AVG() 和 ROUND() 函数不起作用?
- jquery - 如何使用 jquery 获取附加表数据并获取单击的表行数据
- android - 显示特定图像时更改 textView.text
- android - 使用双向数据绑定更改 ImageView 颜色
- java - 范围内的随机数生成
- c# - Flexibility vs performance considered good practice