apache-kafka - NiFi写入HDFS错误:java.lang.IllegalArgumentException:无法从空字符串创建路径
问题描述
NiFi 写入 HDFS 时遇到问题。我收到一个错误:
ERROR [Timer-Driven Process Thread-10] o.apache.nifi.processors.hadoop.PutHDFS PutHDFS[id=4af43efa-a8ff-18ac-0000-00002377fba5] Failed to properly initialize Processor. If still scheduled to run, NiFi will attempt to initialize and run the Processor again after the 'Administrative Yield Duration' has elapsed. Failure is due to java.lang.reflect.InvocationTargetException: java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException: null
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:137)
at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:125)
at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:70)
at org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotation(ReflectionUtils.java:47)
at org.apache.nifi.controller.StandardProcessorNode.lambda$initiateStart$1(StandardProcessorNode.java:1364)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: Can not create a Path from an empty string
at org.apache.hadoop.fs.Path.checkPathArg(Path.java:126)
at org.apache.hadoop.fs.Path.<init>(Path.java:134)
at org.apache.nifi.processors.hadoop.AbstractHadoopProcessor.getConfigurationFromResources(AbstractHadoopProcessor.java:225)
at org.apache.nifi.processors.hadoop.AbstractHadoopProcessor.resetHDFSResources(AbstractHadoopProcessor.java:254)
at org.apache.nifi.processors.hadoop.AbstractHadoopProcessor.abstractOnScheduled(AbstractHadoopProcessor.java:205)
... 15 common frames omitted
我的 HDFS 配置是:
注意:在 PutFile 上应用了相同的配置并且效果很好(Kafka.topic 不为空)
解决方案
似乎当PutHDFS
处理器试图保存文件时,寻找kafka.topic
与该属性关联flowfile
但没有任何价值的属性。
确保您有与之关联的kafka.topic
属性,我们可以在添加属性之前使用处理器。some value
UpdataAttribute
PutHDFS
推荐阅读
- reactjs - 反应错误 :: TypeError: 无法读取未定义的属性“0”
- c# - CreateRemoteThread:将线程退出代码返回给调用者
- reactjs - 材料/核心中的排版与材料/系统中的排版之间的区别
- angular - 角度材料切换未定义未命中
- xcode - XCODE 11、SWIFT 5。画线、框等
- vuepress - VuePress:确定是在预渲染上下文中运行还是在浏览器中运行
- java - 在 IOS 中打开 websocket 时出错(CFNetwork SSLHandshake failed (-9807))
- reactjs - 尝试导入错误:“Test1”未从“Test_components”导出
- java - 如何在一个循环中使用 PdfWriter 和 PdfCopy 在现有 PDF 页面中添加内容
- git - 在不丢失代码的情况下更新 Git 子模块