Skip to content

Zeppelin Related Issues

Yu Jing edited this page Feb 1, 2018 · 7 revisions

Bug Fix

Please update your script using command

/scripts/update

And Start/Stop Zeppelin services using follow command:

/scripts/start-zeppelin.sh
/scripts/stop-zeppelin.sh

This is due to zeppelin would supposed to create a few temp files in “current directory”, may cause some permission issue if it was not started in a appropriate path.

Environment and Memory Issue

We placed all environment initialization scripts in /etc/profile.d/bigbox.sh, you can also edit this file to make some revision.

If you edit this file, you may find a few lines as follow:

unset ZEPPELIN_MEM
unset ZEPPELIN_INTP_MEM

# export ZEPPELIN_MEM=" -Xms2048m -Xmx2048m -XX:MaxPermSize=1024m "
# export ZEPPELIN_INTP_MEM=" -Xms1024m -Xmx2048m -XX:MaxPermSize=1024m "
export ZEPPELIN_INTP_MEM=" -Xms512m -Xmx2048m "

A few lines are commented out, which will not effected. You can also modify those lines to meke zeppelin fit for your environment.

Please refer to this page for the explaination of those java options.

In brief, -Xms512m means sets the initial and minimum Java heap size as 512m. -Xmx2048m means sets the maximum Java heap size as 2g.

Please refer to this page for the introduction of zeppelin options.

In brief, once you started your zeppelin, it will start a JVM using ZEPPELIN_MEM as service manager, once your wrote some code, and click 'run', it will try to find the specific interpreter, which could be found in /usr/local/zeppelin/interpreter, and start it if it was not started, using ZEPPELIN_INTP_MEM as default jvm options. If ZEPPELIN_INTP_MEM does not exists, it will copy ZEPPELIN_MEM. Caution: each interpreter would reserve so much memory. If you start markdown, at least '-Xms' was gone, if you start spark, another at least '-Xms' was gone.

Due to our homework requires to load a few big files, and 1G in default for interpreter is not enough, my suggestion is please copy my configuration above (include 'unset'). If it is still not enough, please adjust it by yourself.

Backup Zeppelin

If you decide to destroy your container, but wish to reserve the downloaded zeppelins (hmm, it is really long long long downloading), you can make a backup from /usr/local/zeppelin to /mnt/host/plus/path/to/your/host/fs

Once you have created a new container, and copy your zeppelin back, you can execute the follow commands to reconfigure your zeppelin:

/scripts/config-zeppelin.sh

It is NOT required to reconfigure you zeppelin if it is your first time installing your zeppelin. You can do that but effected nothing.

Docker Machine

docker-machine is a tool helping you to manage your hosts in Mac or Windows users, or some remote hosts.

If you are using docker-machine in macOS or Windows, please don't give to too much memory in creating docker machine. Please reserve at least half of your total RAM for your host machine. We may reduce the RAM usage somewhere else.

If you are a Linux user and running your docker service in localhost, you are not required to care about this. You are safe to reserve most of your memory to the docker.

Here are a few commands as reference:

docker-machine rm default # remove default machine, if you open your virtualbox, you will find one vm was erased
docker-machine create --driver virtualbox --virtualbox-memory 8192 --virtualbox-cpu-count -1 default # create a vm in virtualbox, and reserve 8192M RAM at most, which could use each of your CPUs
docker-machine ls # list the docker machine in managing
docker-machine start default # start your docker machine named as default
docker-machine stop default # start your docker machine named as default

Besides, if you are a Linux user, you can simply visit 'localhost:8888' for your jupyter, however, you should find the ip of docker host to reach your jupyter if you are using docker-machine.

Finally, if you installed Docker.app from docker.com and not managed by your docker-machine, you can visit localhost:9530 directly.

Misc.

Keep your scripts updated please

For the purpose of getting the latest scripts, you’d better update your scripts using command:

/scripts/update

You should able to reach the files in your host

Please go to /mnt/host. DON'T miss '/'!

If you are a windows user, you may see a folder named as 'c', which would be your "C:" disk.

You must start hadoop services before start zeppelin

Otherwise you may meet some 'Connection Refused' exception.

Please attach me your log when asking the questions about zeppelin

If you meet any questions about zeppelin, please stop your zeppelin first, backup or cleanup folder /usr/local/zeppelin/logs, and try to restart your zeppelin.

And then, please reproduce your errors using as less steps as possible, and save the logs in follow

[root@bootcamp1 logs]# cd /usr/local/zeppelin/logs
[root@bootcamp1 logs]# pwd
/usr/local/zeppelin/logs
[root@bootcamp1 logs]# ls -al
total 704
drwxr-xr-x  2 zeppelin zeppelin   4096 Jan 25 23:25 .
drwxr-xr-x 13 zeppelin zeppelin   4096 Jan 25 23:26 ..
-rw-r--r--  1 zeppelin zeppelin   1088 Jan 25 23:03 install-interpreter.log
-rw-r--r--  1 zeppelin zeppelin   9331 Jan 25 23:26 zeppelin-interpreter-md-zeppelin-bootcamp1.docker.log
-rw-r--r--  1 zeppelin zeppelin 649767 Jan 25 23:26 zeppelin-interpreter-spark-zeppelin-bootcamp1.docker.log
-rw-r--r--  1 zeppelin zeppelin  36581 Jan 25 23:27 zeppelin-zeppelin-bootcamp1.docker.log
-rw-r--r--  1 zeppelin zeppelin   5479 Jan 25 23:27 zeppelin-zeppelin-bootcamp1.docker.out
  • install-interpreter.log is a log about interpreter installing message
  • zeppelin-interpreter-md* logs your information about markdown in zeppelin
  • zeppelin-interpreter-spark* logs spark interpreter
  • zeppelin-zeppelin-* logs the zeppelin itself

Actually, you can debug by yourself sometimes according to your log.

Final Total Memory

[root@bootcamp1 /]# cat /proc/meminfo | grep MemTotal
MemTotal:        8164644 kB

Kick your laptop and try again did works sometimes

Zeppelin is a manager to help you run those code online. It will take some time to start those interpreter. In this case, your first running may take some time. For the same reason, if you click 'run all' before interpreters initialized, it may crashed in boosting. Some of those processes are required to be singleton. If this interpreter was crashed, you can go to interpreter configuration (http://some-ip:9530/#/interpreter ) page, and try to restart spark over there.

Permission Issues

Zeppelin service runs as user zeppelin, sometimes it may meet some permission issue when you are obtaining some files only visible to root or other users.

Python In Zeppelin

It requires a patch to execute python in zeppelin. Currently it supports python3.5 only.

/scripts/update
/scripts/install-prerequisites-for-py35-in-zeppelin.sh

and then restart your zeppelin.