我正在使用
运行 Flink 应用程序python -m app.job
job.py是目录app中的一个模块 它运行良好并使用 PyFlink 处理数据。 但是,该作业并未提交到我正在运行的本地集群(Docker),我认为这需要使用 flink run 来完成。 我必须从具有 Flink 客户端的容器中的二进制文件安装 Flink,即 app.job.py,并且该容器中现在有 Flink。但是,无论是从 Flink 客户端的 Dockerfile 还是当我在该容器中打开 bash shell 时,我都无法运行:
flink run -py app.job
出现错误消息:
usage: PythonDriver [-py <pythonFile>] [-pym <pythonModule>]
-py,--python <pythonFile> Python script with the program entry
point. The dependent resources can be
configured with the `--pyFiles` option.
-pym,--pyModule <pythonModule> Python module with the program entry
point. This option must be used in
conjunction with `--pyFiles`.
知道我在这里做错了什么吗?
我在 Dockerfile 中添加了 flink,因为 Flink 不可用,尽管已经使用 apache-flink 包安装了 PyFlink。
COPY flink_pkg/flink-1.18.1-bin-scala_2.12.tgz /opt
RUN tar -xzf /opt/flink-1.18.1-bin-scala_2.12.tgz -C /opt/ && \
rm /opt/flink-1.18.1-bin-scala_2.12.tgz && \
mv /opt/flink-1.18.1 /opt/flink
COPY libs/flink-sql-connector-kafka-3.1.0-1.18.jar /opt/flink/lib/
ENV FLINK_HOME="/opt/flink"
ENV PATH="$FLINK_HOME/bin:$PATH"
你尝试过这个吗?
flink run -py app.job.py
我见过的示例总是包含 python 文件的全名。