为什么我的NiFi 1.11.1处理器挂在任务上



我有一组进程组在1.8.0 NiFi服务器上愉快地运行。我在一个单独但相似的服务器上创建了NiFi1.11.1的实例,并在相同的进程组上进行模板化。在新的1.11服务器上,处理器(所有处理器,类型没有明显差异(处理一小批任务,然后在一个任务上停留数小时。

重新启动处理器没有明显的效果,重新启动NiFi实例本身通常会让处理器在问题再次出现之前正常运行一两分钟。日志中没有错误,内存增加没有影响,处理器使用率不会超过20%。

我一直在与运行中的服务器进行比较,唯一的区别是较新的NiFi版本和操作系统的打开文件限制(在我更新以匹配工作服务器之前,这确实导致了日志中的错误语句(。当然,我只检查了我想检查的内容,所以请建议我可能遗漏的内容。

我是NiFi的新手,所以如果有诊断或类似的东西可以用来获取更多信息,请告诉我。

Per@Andy,在设置->控制器设置->常规下有两个选项,最大计时器驱动线程计数和最大事件驱动线程计数。它们分别默认为10和1。对于任何数量可观的处理器,这都是不够的,因此需要增加这些值。就我而言,这意味着要把它们都提高到300。

在Apache NiFi配置过程中,建议执行许多步骤(对于非琐碎的部署,请阅读必需的(。在这种情况下,限制行为的特定设置是"最大计时器驱动线程计数",这会导致系统上大量处理器的资源争用。

附加资源:

  • NiFi管理指南:配置最佳实践
  • NiFi用户指南:监测数据流-描述单个组件的监测状态,包括分配的线程
  • NiFi用户指南:摘要页面-描述组件行为和处理统计信息的全面视图
  • Cloudera社区:了解NiFi最大线程池和处理器并发任务设置-Matt Clarke写了关于线程池如何工作以及如何配置它们以最大限度地提高性能的文章

最新更新