Tag: apache nifi

Apache NiFi – OutOfMemory错误:SplitText处理器超出了GC开销限制

我正在尝试使用NiFi使用HDF 1.2处理大型CSV文件(每个可能有数十亿条记录)。 我实现了我的流程,一切都适用于小文件。 问题是如果我尝试将文件大小推到100MB(1M记录),我会得到一个java.lang.OutOfMemoryError: GC overhead limit exceeded从负责将文件拆分为单个记录的SplitText处理器java.lang.OutOfMemoryError: GC overhead limit exceeded 。 我已经搜索过了,它基本上意味着垃圾收集器执行的时间太长而没有获得太多的堆空间。 我希望这意味着太多的流文件生成得太快了。 我怎么解决这个问题? 我已经尝试改变nifi关于最大堆空间和其他与内存相关的属性的配置,但似乎没有任何效果。 现在我添加了一个行数为1K的中间SplitText ,这可以让我避免错误,但我不认为这是一个可靠的解决方案,当传入的文件大小可能远远超过这个时,我担心我将从处理器获得相同的行为。 欢迎任何建议! 谢谢

DBCPConnectionPool用于SQL Server的控制器服务,jdbcexception

在Windows 7和RHEL 7上测试了NiFi 1.1.1。 后台主题​​就在这里 。 我创建了一个指向SQL Server数据库的DBCPConnectionPool控制器服务,我能够从表中获取数据并将其写入本地磁盘(ExecuteSQL – > ConvertAvroToJSON – > PutFile)。 我的代码: public byte[] getMaxLSN(Connection connection, String containerDB) { String dbMaxLSN = “{? = CALL sys.fn_cdc_get_max_lsn()}”; byte[] maxLSN = null; try (final CallableStatement cstmt = connection.prepareCall(dbMaxLSN);) { cstmt.registerOutParameter(1, java.sql.JDBCType.BINARY); cstmt.execute(); if (cstmt.getBytes(1) == null || cstmt.getBytes(1).length <= 0) { System.out.println("Coudln't retrieve the […]

带解码器问题的Kafka Avro Consumer

当我尝试使用我的相应模式使用Avro运行Kafka Consumer时 ,它返回错误“AvroRuntimeException:格式错误的数据。长度为负:-40”。 我看到其他人有类似的问题,将字节数组转换为json , Avro写入和读取 ,以及Kafka Avro Binary *编码器 。 我也引用了这个消费者组示例 ,它们都很有帮助,但到目前为止这个错误没有任何帮助..它可以工作到这部分代码(第73行) 解码器解码器= DecoderFactory.get()。binaryDecoder(byteArrayInputStream,null); 我已经尝试了其他解码器并打印出byteArrayInputStream变量的内容,看起来我相信你会期望序列化的avro数据看起来(在消息中我可以看到模式和一些数据以及一些格式错误的数据)我打印出来了使用.available()方法可用的字节,返回594.我无法理解为什么会发生此错误。 Apache Nifi用于生成具有来自hdfs的相同模式的Kafka流。 我将不胜感激任何帮助。