使用python flink时,作业执行失败
作为第一次尝试,我想从文件中读取JSON数据并将其传递给Flink。我定义了一个源(逐行读取JSON字符串)和一个占位符过滤器。见代码:使用python flink时,作业执行失败,python,apache-flink,pyflink,Python,Apache Flink,Pyflink,作为第一次尝试,我想从文件中读取JSON数据并将其传递给Flink。我定义了一个源(逐行读取JSON字符串)和一个占位符过滤器。见代码: from org.apache.flink.streaming.api.functions.source import SourceFunction from org.apache.flink.api.common.functions import FilterFunction import json import sys class Json_reader
from org.apache.flink.streaming.api.functions.source import SourceFunction
from org.apache.flink.api.common.functions import FilterFunction
import json
import sys
class Json_reader(SourceFunction):
def readjason(self, ctx):
sys.stdin = open('capture.json', 'r')
for line in sys.stdin:
ctx.collect(json.loads(line))
class Dummy_Filter(FilterFunction):
def filter(self, value):
return True
#
# The pipeline definition.
#
def main(factory):
env = factory.get_execution_environment()
env.create_python_source(Json_reader()) \
.filter(Dummy_Filter()) \
.output()
env.execute()
当我构建作业并将其移动到已启动的Flink群集时,会收到以下错误消息:
VirtualBox:/media/sf_Python$。/flink-1.7.2/bin/pyflink-stream.sh
./json\u parser\u flink.py启动程序执行失败
计划:空回溯(最后一次调用):文件“”,行
1、存档
“/tmp/flink_streaming_plan_fbe13c4c-6918-46d4-a4bc-36908a2bea24/json_parser_flink.py”,
第25行,主要在
org.apache.flink.client.program.rest.RestClusterClient.submitJob(RestClusterClient.java:268)
在
org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:487)
在
org.apache.flink.streaming.api.environment.StreamContextEnvironment.execute(StreamContextEnvironment.java:66)
在
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.java:1510)
在
org.apache.flink.streaming.python.api.environment.PythonStreamExecutionEnvironment.execute(PythonStreamExecutionEnvironment.java:245)
位于的sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
invoke(NativeMethodAccessorImpl.java:62)
在
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
位于java.lang.reflect.Method.invoke(Method.java:498)
org.apache.flink.client.program.ProgramInvocationException:
org.apache.flink.client.program.ProgramInvocationException:作业
失败。(作业编号:31615948194c951be03d46576929aa23)
该程序不包含Flink作业。也许你忘了打电话了
在执行环境上执行()
我没有忘记调用execute()。我发现了问题。Fast要求SourceFunction中有一个run()函数