我在Apache NiFi中有一个非常基本的ExecuteScript处理器设置,带有一个简单的Python脚本(保存为.py文件),如下所示.在处理器的属性中,我将脚本引擎设置为python,将脚本文件设置为此脚本的路径.
import time
count = 0
while(count < 20):
print "The counter says: ", count
count = count + 1
time.sleep(.1)
Run Code Online (Sandbox Code Playgroud)
我没有看到输出到日志或PutFile的任何内容.但是,我确实看到打印语句出现在\nifi-0.6.1\logs \nifi-bootstrap.log中.我对此的了解目前有限.我很感激任何知道如何使用ExecuteScript处理器的人的答案,或者甚至比我当前的设置给出一个更好的例子.
来自的输出$NIFI_HOME/logs/nifi-app.log
:
2016-10-26 12:45:13,304 ERROR [Timer-Driven Process Thread-6] o.apache.nifi.processors.standard.PutSQL
org.apache.nifi.processor.exception.ProcessException: org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class 'com.mysql.jdbc.Driver' for connect URL 'jdbc:sqlserver://*BLOCKED*/*BLOCKED*'
at org.apache.nifi.dbcp.DBCPConnectionPool.getConnection(DBCPConnectionPool.java:234) ~[na:na]
at sun.reflect.GeneratedMethodAccessor393.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_101]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_101]
at org.apache.nifi.controller.service.StandardControllerServiceProvider$1.invoke(StandardControllerServiceProvider.java:177) ~[nifi-framework-core-1.0.0.jar:1.0.0]
at com.sun.proxy.$Proxy81.getConnection(Unknown Source) ~[na:na]
at org.apache.nifi.processors.standard.PutSQL.onTrigger(PutSQL.java:218) ~[na:na]
at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27) ~[nifi-api-1.0.0.jar:1.0.0]
at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1064) ~[nifi-framework-core-1.0.0.jar:1.0.0]
at org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:136) [nifi-framework-core-1.0.0.jar:1.0.0]
at org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:47) [nifi-framework-core-1.0.0.jar:1.0.0]
at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:132) [nifi-framework-core-1.0.0.jar:1.0.0]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_101]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [na:1.8.0_101]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_101]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [na:1.8.0_101]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_101]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_101]
at …
Run Code Online (Sandbox Code Playgroud) 我是nifi的新手,我想将SQL服务器数据库连接到nifi并使用处理器创建数据流.我怎么能这样做,任何人都可以清楚地帮助我.
先谢谢Sam
我正在尝试探索Apache NiFi.到目前为止还没有看到版本控制流的任何方法.
当多个用户尝试在同一个实例中进行开发时,有没有办法实现版本控制流程?
那么多个用户的代码合并呢?
在这些方面的任何帮助将帮助我继续我的探索.
我是新来的Apache NIFI。我有点想知道保存按钮在哪里。我尝试了一个在youtube上看到的教程中的示例。我想保存所有创建的处理器,以备将来参考。我没有看到任何保存按钮。以后可以保存我的作品吗?或在另一台机器上打开。
请帮忙。
我想知道适当的avro架构对于这种格式的一些json到avro转换是什么:
{"entryDate": "2018-01-26T12:00:40.930"}
Run Code Online (Sandbox Code Playgroud)
我的架构:
{
"type" : "record",
"name" : "schema",
"fields" : [{
"name" : "entryDate",
"type" : ["null", {
"type" : "long",
"logicalType" : "timestamp-micros"
}],
"default" : null
}]
}
Run Code Online (Sandbox Code Playgroud)
我一直在
`'Cannot convert field entryDate: Cannot resolve union:
"2018-01-26T12:00:40.930"
not in
["null",{"type":"long","logicalType":"timestamp-millis"}]'`
Run Code Online (Sandbox Code Playgroud) 我正试图从Avro和JSON中提取属性.我可以使用EvaluateJsonPath
处理器从JSON中提取属性.我试图在Avro上做同样的事,但我不确定它是否可以实现.
这是我的流程,ExecuteSQL
- > SplitAvro
- >UpdateAttribute
UpdateAttribute
是我想要提取属性的处理器.请在下面找到UpdateAttribute
处理器的快照,
所以,我的基本问题是,我们可以从Avro中提取属性吗?如果是,请为我提供正确的方法.或者ConvertAvroToJSON
在提取属性之前是否必须始终使用?
我正在尝试向api做一个非常简单的多部分表单发布。我看不到在Apache Nifi中执行此操作的任何方法,因为它似乎仅具有一个表单数据输入。在这里和Nifi论坛上似乎有很多关于此的现有问题,但是它们都没有任何答案。
我正在尝试使用invokehttp。在将其放入invokehttp之前,是否有一种方法可以构建多种表单数据?