You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@zeppelin.apache.org by Juan Rodríguez Hortalá <ju...@gmail.com> on 2020/04/04 16:05:23 UTC
Setup FLINK_HOME programmatically
Hi,
I'm setting up a Dockerfile to run Zeppelin using the Flink interpreter.
I'm starting from the Docker image apache/zeppelin:0.9.0 and following the
instructions on
https://medium.com/@zjffdu/flink-on-zeppelin-part-1-get-started-2591aaa6aa47
to download flink-1.10.0-bin-scala_2.11.tgz and
flink-shaded-hadoop-2-2.8.3-10.0.jar. This is mostly working, except for
the fact that I have to manually configure FLINK_HOME in the Zeppelin UI to
have it pointing to the path where I have installed Flink, in my case
/opt/flink/latest. When I do that I am able to use the Flink interpreters.
I have tried to setup that in the Dockerfile, but I'm not sure which files
I have to edit:
- I have tried editing /zeppelin/conf/interpreter.json, but it looks
like it is generated the first time Zeppelin runs, the file doesn't exist
while I build the Docker image
- I have tried editing
/zeppelin/interpreter/flink/interpreter-setting.json instead, but it has no
effect. I used the following statements in my Dockerfile:
WORKDIR /zeppelin
RUN apt-get install -y jq \
&& FLINK_CONF_FILE=interpreter/flink/interpreter-setting.json \
&& cp "${FLINK_CONF_FILE}" "${FLINK_CONF_FILE}.bak" \
&& jq '.[0].properties.FLINK_HOME.value = "/opt/flink/latest"'
"${FLINK_CONF_FILE}" > "${FLINK_CONF_FILE}.new" \
&& mv "${FLINK_CONF_FILE}.new" "${FLINK_CONF_FILE}"
- I have tried editing /zeppelin/conf/zeppelin-env.sh, but it also has
no effect. I used the following statements in my Dockerfile
WORKDIR /zeppelin
RUN cp conf/zeppelin-env.sh.template conf/zeppelin-env.sh \
&& echo 'export FLINK_HOME=/opt/flink/latest' >> conf/zeppelin-env.sh \
&& echo '' >> conf/zeppelin-env.sh
Which file should I edit to setup FLINK_HOME from a script? Any idea what
am I doing wrong? I guess this should be the same as setting up any
Zeppelin configuration key, so this is quite a basic question, but I have a
very rudimentary knowledge of Zeppelin.
Thanks a lot for your help
Juan
Re: Setup FLINK_HOME programmatically
Posted by Juan Rodríguez Hortalá <ju...@gmail.com>.
Hi Jeff,
I'll wait for the fix then, thanks for letting me know. In the meantime,
setting up FLINK_HOME in the UI is no big deal, just a couple of clicks,
I'm enjoying a lot the Flink integration and your blog posts about it,
thanks for working on that!
Greetings,
Juan
On Sun, Apr 5, 2020 at 9:14 AM Jeff Zhang <zj...@gmail.com> wrote:
> Hi Juan,
>
> I am afraid there's no workaround for now.
> But I think a better way is to allow set env FLINK_HOME, such as following:
> docker run -p 8080:8080 --rm -v /Users/jzhang/Java/lib/flink-1.10.0:/flink
> -e FLINK_HOME=/flink --name zeppelin apache/zeppelin:0.9.0
>
> Unfortunately, it doesn't work due to one bug, I will fix it as soon as I
> can.
>
> BTW, welcome to use flink on zeppelin and give feedback and comments.
>
>
>
> Juan Rodríguez Hortalá <ju...@gmail.com> 于2020年4月5日周日
> 上午12:05写道:
>
>> Hi,
>>
>> I'm setting up a Dockerfile to run Zeppelin using the Flink interpreter.
>> I'm starting from the Docker image apache/zeppelin:0.9.0 and following the
>> instructions on
>> https://medium.com/@zjffdu/flink-on-zeppelin-part-1-get-started-2591aaa6aa47
>> to download flink-1.10.0-bin-scala_2.11.tgz and
>> flink-shaded-hadoop-2-2.8.3-10.0.jar. This is mostly working, except for
>> the fact that I have to manually configure FLINK_HOME in the Zeppelin UI to
>> have it pointing to the path where I have installed Flink, in my case
>> /opt/flink/latest. When I do that I am able to use the Flink interpreters.
>> I have tried to setup that in the Dockerfile, but I'm not sure which
>> files I have to edit:
>>
>> - I have tried editing /zeppelin/conf/interpreter.json, but it looks
>> like it is generated the first time Zeppelin runs, the file doesn't exist
>> while I build the Docker image
>> - I have tried editing
>> /zeppelin/interpreter/flink/interpreter-setting.json instead, but it has no
>> effect. I used the following statements in my Dockerfile:
>>
>> WORKDIR /zeppelin
>> RUN apt-get install -y jq \
>> && FLINK_CONF_FILE=interpreter/flink/interpreter-setting.json \
>> && cp "${FLINK_CONF_FILE}" "${FLINK_CONF_FILE}.bak" \
>> && jq '.[0].properties.FLINK_HOME.value = "/opt/flink/latest"'
>> "${FLINK_CONF_FILE}" > "${FLINK_CONF_FILE}.new" \
>> && mv "${FLINK_CONF_FILE}.new" "${FLINK_CONF_FILE}"
>>
>> - I have tried editing /zeppelin/conf/zeppelin-env.sh, but it also
>> has no effect. I used the following statements in my Dockerfile
>>
>> WORKDIR /zeppelin
>> RUN cp conf/zeppelin-env.sh.template conf/zeppelin-env.sh \
>> && echo 'export FLINK_HOME=/opt/flink/latest' >> conf/zeppelin-env.sh \
>> && echo '' >> conf/zeppelin-env.sh
>>
>> Which file should I edit to setup FLINK_HOME from a script? Any idea what
>> am I doing wrong? I guess this should be the same as setting up any
>> Zeppelin configuration key, so this is quite a basic question, but I have a
>> very rudimentary knowledge of Zeppelin.
>>
>> Thanks a lot for your help
>>
>> Juan
>>
>>
>
> --
> Best Regards
>
> Jeff Zhang
>
Re: Setup FLINK_HOME programmatically
Posted by Jeff Zhang <zj...@gmail.com>.
Hi Juan,
I am afraid there's no workaround for now.
But I think a better way is to allow set env FLINK_HOME, such as following:
docker run -p 8080:8080 --rm -v /Users/jzhang/Java/lib/flink-1.10.0:/flink
-e FLINK_HOME=/flink --name zeppelin apache/zeppelin:0.9.0
Unfortunately, it doesn't work due to one bug, I will fix it as soon as I
can.
BTW, welcome to use flink on zeppelin and give feedback and comments.
Juan Rodríguez Hortalá <ju...@gmail.com> 于2020年4月5日周日
上午12:05写道:
> Hi,
>
> I'm setting up a Dockerfile to run Zeppelin using the Flink interpreter.
> I'm starting from the Docker image apache/zeppelin:0.9.0 and following the
> instructions on
> https://medium.com/@zjffdu/flink-on-zeppelin-part-1-get-started-2591aaa6aa47
> to download flink-1.10.0-bin-scala_2.11.tgz and
> flink-shaded-hadoop-2-2.8.3-10.0.jar. This is mostly working, except for
> the fact that I have to manually configure FLINK_HOME in the Zeppelin UI to
> have it pointing to the path where I have installed Flink, in my case
> /opt/flink/latest. When I do that I am able to use the Flink interpreters.
> I have tried to setup that in the Dockerfile, but I'm not sure which files
> I have to edit:
>
> - I have tried editing /zeppelin/conf/interpreter.json, but it looks
> like it is generated the first time Zeppelin runs, the file doesn't exist
> while I build the Docker image
> - I have tried editing
> /zeppelin/interpreter/flink/interpreter-setting.json instead, but it has no
> effect. I used the following statements in my Dockerfile:
>
> WORKDIR /zeppelin
> RUN apt-get install -y jq \
> && FLINK_CONF_FILE=interpreter/flink/interpreter-setting.json \
> && cp "${FLINK_CONF_FILE}" "${FLINK_CONF_FILE}.bak" \
> && jq '.[0].properties.FLINK_HOME.value = "/opt/flink/latest"'
> "${FLINK_CONF_FILE}" > "${FLINK_CONF_FILE}.new" \
> && mv "${FLINK_CONF_FILE}.new" "${FLINK_CONF_FILE}"
>
> - I have tried editing /zeppelin/conf/zeppelin-env.sh, but it also has
> no effect. I used the following statements in my Dockerfile
>
> WORKDIR /zeppelin
> RUN cp conf/zeppelin-env.sh.template conf/zeppelin-env.sh \
> && echo 'export FLINK_HOME=/opt/flink/latest' >> conf/zeppelin-env.sh \
> && echo '' >> conf/zeppelin-env.sh
>
> Which file should I edit to setup FLINK_HOME from a script? Any idea what
> am I doing wrong? I guess this should be the same as setting up any
> Zeppelin configuration key, so this is quite a basic question, but I have a
> very rudimentary knowledge of Zeppelin.
>
> Thanks a lot for your help
>
> Juan
>
>
--
Best Regards
Jeff Zhang