You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@flink.apache.org by Paroma Sengupta <p....@gmail.com> on 2019/02/27 06:19:14 UTC
Errors running user jars with flink in docker flink x
Hi,
I am trying to run my flink application through docker containers. For that
I made use of the code present over here flink_docker
<https://github.com/apache/flink/tree/56e5381cb7aba01f1d7ecfa11e4be7f505a35baf/flink-container/docker>.
However when I try to run the docker image, it fails with this
error message ```WARN org.apache.flink.client.cli.CliFrontend - Could not
load CLI class org.apache.flink.yarn.cli.FlinkYarnSessionCli.
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at
org.apache.flink.client.cli.CliFrontend.loadCustomCommandLine(CliFrontend.java:1238)
at
org.apache.flink.client.cli.CliFrontend.loadCustomCommandLines(CliFrontend.java:1183)
at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1109)
Caused by: java.lang.NoSuchFieldError: MODE
at
org.apache.flink.yarn.cli.FlinkYarnSessionCli.<init>(FlinkYarnSessionCli.java:185)
at
org.apache.flink.yarn.cli.FlinkYarnSessionCli.<init>(FlinkYarnSessionCli.java:172)
... 7 more
Exception in thread "main" java.lang.NoSuchFieldError: MODE
at
org.apache.flink.client.cli.CliFrontend.loadCustomCommandLines(CliFrontend.java:1192)
at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1109)```
Any pointers for solving this issue will be thoroughly appreciated.
Sincerely,
Paroma
Errors running user jars with flink in docker flink x
Posted by Paroma Sengupta <p....@gmail.com>.
> Hi,
> I am trying to run my flink application through docker containers. For
> that I made use of the code present over here flink_docker
> <https://github.com/apache/flink/tree/56e5381cb7aba01f1d7ecfa11e4be7f505a35baf/flink-container/docker>.
> However when I try to run the docker image, it fails with this
> error message
>
> ```WARN org.apache.flink.client.cli.CliFrontend - Could not load CLI class
> org.apache.flink.yarn.cli.FlinkYarnSessionCli.
> java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
> at
> org.apache.flink.client.cli.CliFrontend.loadCustomCommandLine(CliFrontend.java:1238)
> at
> org.apache.flink.client.cli.CliFrontend.loadCustomCommandLines(CliFrontend.java:1183)
> at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1109)
> Caused by: java.lang.NoSuchFieldError: MODE
> at
> org.apache.flink.yarn.cli.FlinkYarnSessionCli.<init>(FlinkYarnSessionCli.java:185)
> at
> org.apache.flink.yarn.cli.FlinkYarnSessionCli.<init>(FlinkYarnSessionCli.java:172)
> ... 7 more
> Exception in thread "main" java.lang.NoSuchFieldError: MODE
> at
> org.apache.flink.client.cli.CliFrontend.loadCustomCommandLines(CliFrontend.java:1192)
> at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1109)```
>
> Any pointers for solving this issue will be thoroughly appreciated.
>
*the Docker file has the following contents:*
FROM java:8-jre-alpine
# Install requirements
RUN apk add --no-cache bash snappy
# Flink environment variables
ENV FLINK_INSTALL_PATH=/opt
ENV FLINK_HOME $FLINK_INSTALL_PATH/flink
ENV FLINK_LIB_DIR $FLINK_HOME/lib
ENV PATH $PATH:$FLINK_HOME/bin
# flink-dist can point to a directory or a tarball on the local system
ARG flink_dist=NOT_SET
ARG job_jar=NOT_SET
# Install build dependencies and flink
ADD $flink_dist $FLINK_INSTALL_PATH
ADD $job_jar $FLINK_INSTALL_PATH/job.jar
RUN set -x && \
ln -s $FLINK_INSTALL_PATH/flink-* $FLINK_HOME && \
ln -s $FLINK_INSTALL_PATH/job.jar $FLINK_LIB_DIR && \
addgroup -S flink && adduser -D -S -H -G flink -h $FLINK_HOME flink && \
chown -R flink:flink $FLINK_INSTALL_PATH/flink-* && \
chown -h flink:flink $FLINK_HOME
COPY docker-entrypoint.sh /
USER flink
EXPOSE 8081 6123
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["--help"]
*The contents of the docker-entrypoint.sh:*
### If unspecified, the hostname of the container is taken as the
JobManager address
FLINK_HOME=${FLINK_HOME:-"/opt/flink/bin"}
#FLINK_INSTALL_PATH=${FLINK_INSTALL_PATH:-"/opt"}
JOB_CLUSTER="job-cluster"
TASK_MANAGER="task-manager"
RUN_FATJAR="run-fatJar"
CMD="$1"
FATJAR="$2"
shift;
if [ "${CMD}" == "--help" -o "${CMD}" == "-h" ]; then
echo "Usage: $(basename $0)
(${JOB_CLUSTER}|${TASK_MANAGER}|${RUN_FATJAR})"
elif [ "${CMD}" == "${JOB_CLUSTER}" -o "${CMD}" == "${TASK_MANAGER}" -o
"${CMD}" == "${RUN_FATJAR}" ]; then
echo "Starting the ${CMD}"
if [ "${CMD}" == "${TASK_MANAGER}" ]; then
exec $FLINK_HOME/bin/taskmanager.sh start-foreground "$@"
elif [ "${CMD}" == "${RUN_FATJAR}" ]; then
echo "Starting fatJar at $FLINK_HOME/lib"
exec $FLINK_HOME/bin/flink run $FLINK_HOME/lib
else
exec $FLINK_HOME/bin/standalone-job.sh start-foreground "$@"
fi
else
echo "flink home ${FLINK_HOME}"
echo "the command ${CMD} does not exist"
fi
#exec "$@"
*The command I am running is:*
docker run <image-name> run-fatJar
>
> Sincerely,
> Paroma
>