### Cài đặt Jupyter qua conda ``` conda install -c conda-forge jupyterhub # installs jupyterhub and proxy conda install jupyterlab notebook # needed if running the notebook servers in the same environment ``` ### File cấu hình Filename: jupyterhub_config.py ``` c = get_config() #noqa c.JupyterHub.ip = '0.0.0.0' c.JupyterHub.port = 8080 c.Authenticator.admin_users = { 'hoangdh' } # c.LocalAuthenticator.create_system_users=True ``` ### Systemd Filename: /lib/systemd/system/jupyterhub.service ``` [Unit] Description=JupyterLab Server [Service] Type=Simple User=jupyter Group=jupyter WorkingDirectory=/data/jupyterhub/ Environment="PATH=/data/softs/anaconda/envs/jupyterhub/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" ExecStart=/data/softs/anaconda/envs/jupyterhub/bin/jupyterhub -f /data/jupyterhub/jupyterhub_config.py [Install] WantedBy=multi-user.target ``` ### Tạo môi trường Python cho Jupyter - Tạo user cho hub ``` useradd -m -d /data/users/bi_shark/ -s /bin/bash bi_shark passwd bi_shark ``` - Khởi tạo conda cho user ``` su - bi_shark /data/bigdata/anaconda3/bin/conda init ``` - Đăng nhập lại và tạo môi trường mới cho user ``` conda create -n bi_shark python=3.9 -y ``` - Cài kernel mới cho Jupyter ``` conda activate bi_shark pip install --upgrade pip pip install ipykernel python -m ipykernel install --user --name="bi_shark" --display-name="Python 3.9 (Conda)" ``` - Thêm các biến môi trường riêng cho user > vi /data/users/bi_shark/.local/share/jupyter/kernels/bi_shark/run.sh ``` #!/usr/bin/bash export JAVA_HOME=/opt/softs/jdk1.8.0_331 export HADOOP_HOME=/opt/softs/hadoop export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export CLASSPATH=$($HADOOP_HOME/bin/hdfs classpath --glob) export HADOOP_PREFIX=$HADOOP_HOME export SPARK_LOCAL_HOSTNAME=10.10.10.10 export SPARK_HOME=/opt/softs/spark # Change me export USER_ENV="/data/users/bi_shark/.conda/envs/bi_shark" export PATH="${USER_ENV}/bin:/data/bigdata/anaconda3/condabin/:${PATH}" exec ${USER_ENV}/bin/python -m ipykernel "$@" ``` - Sửa file khởi động của kernel Ta thay file khởi động kernel với script ta vừa tạo bên trên > vi /data/users/bi_shark/.local/share/jupyter/kernels/bi_/kernel.json ``` { "argv": [ "/data/users/bi_shark/.local/share/jupyter/kernels/bi_shark/run.sh", "-f", "{connection_file}" ], "display_name": "Python 3.9 (Conda)", "language": "python", "metadata": { "debugger": true } } ``` Bonus: Script tự tạo; đang cập nhật ``` #!/bin/bash conda create --name ${USER}_p${1} python=${1} -y eval "$(conda shell.bash hook)" conda activate ${USER}_p${1} pip install --upgrade pip pip install ipykernel python -m ipykernel install --user --name="${USER}_p${1}" --display-name="Python ${1}" ``` ### Cài đặt PyArrow > pip install pyarrow ``` export JAVA_HOME=/opt/softs/jdk1.8.0_331 export HADOOP_HOME=/opt/softs/hadoop export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export SPARK_HOME=/opt/softs/spark export PATH=${JAVA_HOME}/bin:${PATH} export CLASSPATH=`/opt/softs/hadoop/bin/hdfs classpath --glob` ``` Lưu ý: Chỗ CLASSPATH cần chạy lệnh và copy output vào biến.