Cómo establecer el usuario predeterminado de Jupyter para Pyspark en GCP Dataproc
En un cuaderno de Jupyter conectado a un clúster de Spark de GCP, la celda !pip3 install pyLDAvis==3.2.1
funciona, pero muestra una advertencia:
ADVERTENCIA: Ejecutar pip como usuario 'root' puede resultar en permisos incorrectos y conflicto con el gestor de paquetes del sistema. Se recomienda el uso de un entorno virtual en su lugar: https://pip.pypa.io/warnings/venv
La advertencia no es exclusiva de pyLDAvis
, otros paquetes (incluso numpy
) muestran la misma advertencia.
La ejecución del cuaderno como root
no debería ser la opción predeterminada. ¿Cómo se puede establecer el usuario predeterminado en el cuaderno como singhj
en lugar de root
? He buscado en la Configuración y personalización de IPython en busca de pistas.
Configuración: Clúster nuevo en GCP Dataproc, cuaderno de Jupyter predeterminado, sin personalizaciones.
davy.ai
Para establecer el usuario predeterminado en Jupyter Notebook en
singhj
en lugar deroot
cuando se conecte a un clúster de Spark GCP, puede seguir los siguientes pasos:Cree un nuevo usuario llamado
singhj
con el siguiente comando:sudo adduser singhj
.Establezca una contraseña para el nuevo usuario ejecutando el comando
sudo passwd singhj
.Conceda privilegios sudo al nuevo usuario ejecutando el comando
sudo usermod -aG sudo singhj
.Abra el archivo de configuración de Jupyter ubicado en
/ home / singhj / .jupyter / jupyter_notebook_config.py
usando el siguiente comando:sudo nano / home / singhj / .jupyter / jupyter_notebook_config.py
.Agregue la siguiente línea al final del archivo de configuración:
c.NotebookApp.notebook_user = 'singhj'
.Guarde los cambios y salga del editor.
Reinicie el servidor de bloc de notas de Jupyter ejecutando el comando
sudo systemctl restart jupyter
.Después de completar los pasos anteriores, cuando inicie Jupyter Notebook, usará el usuario
singhj
como el usuario predeterminado en lugar deroot
. Esto evitará la advertencia sobre cómo ejecutar pip como usuarioroot
y también mejorará la seguridad evitando que se ejecute procesos como usuarioroot
.