Sie sind auf Seite 1von 6

Instalación y configuración de ANACONDA en Linux Ubuntu Server

16.04 LTS virtualizado sobre Proxmox

La instalación parte de una máquina virutal con sistema operativo Linux Ubuntu
16.04 LTS totalmente limpio corriendo sobre un servidor físico con sistema
operativo PROXMOX.

En primer lugar descargo el programa para la versión de procesador del


servidor. Después debo ir a la carpeta de descargas y ejecutarlo como
administrador.

Acepto la licencia y la carpeta de instalación por defecto.

Una vez completada la instalación podemos eliminar el archivo descargado.

Puedo comprobar que está todo instalado desde la consola:

- Para ver los comandos de la interface: conda


- Ver los entornos creados en Anaconda: conda info -e
- Información del entorno activo: conda info
- Información de paquetes instalados en el entorno activo: conda list

Para eludir conflictos por permisos entre conda y Linux (incluso con super
usuario haciendo sudo su), es necesario habilitar todos los permisos en su
carpeta, con sudo chmod 777 -R anaconda3
Para actualizar los paquetes, ahora podré hacerlo con el usuario administrador
normal, y sin sudo:

conda update conda

conda update anaconda

conda update scikit-learn

etc

Tras haber instalado Anaconda, procedemos a instalar los paquetes para Deep
learning no incluidos. En cualquier sistema operativo que se instalen, debe
tenerse en cuenta que los paquetes de python en Anaconda se pueden instalar
con las instrucciones conda y pip install. Pero ambos gestores de paquetes usan
diferentes formatos de empaquetamiento, así que no son intercambiables, y
TensorFlow debe instalarse con pip.

Por otra parte, TensorFlow necesita tener instalado y actualizado numpy,


mediante: pip install --upgrade numpy

Luego procedo con tensorflow, keras y alguna cosa más necesaria para que
funcione en linux:

pip install tensorflow

pip install keras

conda install theano

Desupués, instalo paquetes adicionales que serán necesarios para facilitar los
análisis de datos (si lo hago antes probablemente tensorflow y keras den
problemas):
pip instal mlxtend

pip install opencv-python

Para ejecutar el entorno gráfico de


anaconda en la máquina Linux, desde
la consola hacemos: anaconda-
navigator

Si lo lanzamos desde Anaconda,


tendremos corriendo JypyterNoteBook en localhost:8888, pero no será accesible
desde el exterior de nuestra máquina.

Instalación en Linux Ubuntu Server 16.04 LTS DE JUPYTERHUB

Si queremos que Jupyter esté diponible desde fuera de la máquina local que
acabamos de instalar sobre Linux, e incluso para otros usuarios, debemos
instalar Jupyter Hub, otra herramienta del proyecto Jupyter que consiste en un
servidor multiusuario para permitir el acceso remoto con tableros y Jupyter
Notebooks particulares para cada uno. Cuenta con una página de acceso para
identificar a cada usuario antes de darle paso a su servidor de notebooks,
donde puede acceder a su estructura de carpetas y trabajar con ellos, instalar
extensiones, etc.

En primer lugar, si lo vamos a instalar sobre una máquina preexistente,


comprobamos si en ella está instalado Python haciendo which python (nos
devuelve la ruta). Para ver la información del paquete instalado hacemos dpkg -
s python (devuelve info de la instalación y la versión).

Con Anaconda, debemos tener instalado python3 (dpkg -s python3).

Hecho esto, en primer lugar instalamos el instalador de Python3, necesario para


JupyterHub con sudo apt-get -y install python3-pip.

Instalo nodejs actualizado. Para ello añado la ruta y luego instalo:

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash –

sudo apt-get install -y nodejs

Instalamos npm con sudo apt-get -y install npm.

Instalamos entorno de Java con sudo apt-get -y install default-jre.


Instalamos un proxy con npm para que redirija los usuarios externos al servidor
local de Jupyter, haciendo sudo npm install -g configurable-http-proxy.

Y por fin instalamos JupyterHub mediante sudo pip3 install jupyterhub.

Por último, actualizamos Jupyter Notebook con pip3 install --upgrade notebook

Para configurar JupyterHub comenzamos arrancando con la configuración por


defecto y sin seguridad, con jupyterhub –no-ssl.

Creamos un fichero de configuración con esa configuración por defecto, con


jupyterhub –generate-config /etc/jupyterhub. Podemos verlo con ls. Y editarlo
con sudo nano /etc/jupyterhub/jupyterhub_config.py (no tiene más que una
plantilla inhabilitada con comentarios). Añadiremos este contenido al fichero:

# Configuration file for jupyterhub.


# The public facing port of the proxy
c.JupyterHub.port = 8000

# Create system users that don't exist yet


c.LocalAuthenticator.create_system_users = True
c.Authenticator.add_user_cmd = ['adduser', '--force-badname', '-q', '--gecos', '""', '--
disabled-password']

# Set of users who can administer the Hub itself


c.Authenticator.admin_users = {'admin'}
Guardamos antes de salir.

A continuación fuerzo el acceso con clave por SSH, eliminando el comentario en


la línea, con sudo nano /etc/ssh/sshd_config

PasswordAuthentication yes
Luego restauro el servicio ssh mediante sudo service sshd restart.

JupyterHub está preparado para ejecutarse como root. Para nuestros fines es
suficiente. Antes de poder usarlo es necesario arrancar jupyterHub con la nueva
configuración haciendo jupyterhub --config
/etc/jupyterhub/jupyterhub_config.py.

Por tanto en este punto podemos usar JupyterHub con el usuario administrador
del sistema, accediendo con un navegador en remoto a la dirección
http://ip:8000 .

Debemos tener en cuenta que con esta configuración muy simple, el arranque
de Jupyterhub debe realizarse cada vez que se pare la máquina o se cierre la
sesión. Puede automatizarse como servicio, para que arranque con la máquina,
etc, pero pero para un servidor de desarrollo en el que solamente trabajará el
administrador, se puede abrir un terminal en la consola (del servidor o por shh)
para hacerlo, añadiendo con ello también una capa más de seguridad para
acceso a este servidor al requerir este paso previo.

El resultado de Jupyterhub corriendo desde un navegador remoto es

Si utilizamos la máquina virtual corriendo en Proxmox, podemos usar su


monitor para visualizar el uso de recursos. Curiosamente en algunos trabajos
como el preproceso que realiza el autotuning de redes neuronales con
GridSearchCV no aprovecha todos los procesadores de la máquina, o al menos
toda su capacidad, solo el 10%, pero sí posteriormente en el entrenamiento:

Das könnte Ihnen auch gefallen