Cómo ejecutar RStudio® Server en un clúster de Cloud Dataproc

En este instructivo, verás cómo ejecutar RStudio Server en un clúster de Cloud Dataproc y cómo acceder a la interfaz de usuario (IU) web de RStudio desde tu máquina local.

En este instructivo, suponemos que estás familiarizado con el lenguaje R y con la IU web de RStudio, y que posees conocimientos básicos para comprender cómo se utilizan los túneles de Secure Shell (SSH), Apache Spark y Apache Hadoop que se ejecutan en Cloud Dataproc.

Objetivos

En este instructivo, se te guiará por los siguientes procedimientos:

  • Conectar R desde Apache Spark hacia Apache Hadoop YARN mediante la ejecución de un clúster de Cloud Dataproc.
  • Conectar tu navegador a través de un túnel SSH para acceder a las IU de RStudio, Spark y YARN.
  • Ejecutar una consulta de ejemplo en Cloud Dataproc con RStudio.

Costos

Antes de comenzar

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. Selecciona o crea un proyecto de GCP.

    Ir a la página Administrar recursos

  3. Asegúrate de tener habilitada la facturación para tu proyecto.

    Aprende a habilitar la facturación

  4. Habilita las Cloud Dataproc y Cloud Storage API necesarias.

    Habilita las API

  5. Realiza la instalación y la inicialización del SDK de Cloud.

Cuando finalices este instructivo, puedes borrar los recursos que hayas creado para evitar que continúe la facturación. Para obtener más información, ve a Limpieza.

Cómo crear un clúster de Cloud Dataproc

  1. En GCP Console, dirígete a la página Clústeres de Cloud Dataproc:

    IR A LA PÁGINA DE CLÚSTERES

  2. Haz clic en Create Cluster (Crear clúster):

    Crea un clúster

  3. Ponle un nombre a tu clúster y haz clic en Crear.

Para este instructivo, los tamaños predeterminados del clúster son suficientes. Toma nota de la zona en la que creaste el clúster, ya que necesitarás esa información en los pasos de más adelante.

Cómo instalar RStudio Server y sus dependencias en el nodo principal

Linux o macOS

  1. Desde tu máquina local, conéctate al nodo principal de tu clúster de Cloud Dataproc a través de SSH:

    gcloud compute ssh \
        --zone=[CLUSTER_ZONE] \
        --project=[PROJECT_ID] \
        [CLUSTER_NAME]-m
    

    En el que

    • [CLUSTER_ZONE] es la zona en la que creaste el clúster.
    • [PROJECT_ID] es el ID de tu proyecto.
    • [CLUSTER_NAME] es el nombre de tu clúster.
    • [CLUSTER_NAME]-m es el nombre del nodo principal del clúster.
  2. En el nodo principal, instala los paquetes y las dependencias requeridas:

    sudo apt-get update
    sudo apt-get install -y \
        r-base r-base-dev \
        libcurl4-openssl-dev libssl-dev libxml2-dev
    
  3. Descarga, y, luego, instala la última versión de RStudio Server para Debian Linux de 64 bits a través de las instrucciones del sitio web de RStudio

Windows

  1. Desde tu máquina local, conéctate al nodo principal de tu clúster de Cloud Dataproc a través de SSH:

    gcloud compute ssh ^
        --zone=[CLUSTER_ZONE] ^
        --project=[PROJECT_ID] ^
        [CLUSTER_NAME]-m
    

    En el que

    • [CLUSTER_ZONE] es la zona en la que creaste el clúster.
    • [PROJECT_ID] es el ID de tu proyecto.
    • [CLUSTER_NAME] es el nombre de tu clúster.
    • [CLUSTER_NAME]-m es el nombre del nodo principal del clúster.
  2. En el nodo principal, instala los paquetes y las dependencias requeridas:

    sudo apt-get update
    sudo apt-get install -y \
        r-base r-base-dev \
        libcurl4-openssl-dev libssl-dev libxml2-dev
    
  3. Descarga, y, luego, instala la última versión de RStudio Server para Debian Linux de 64 bits a través de las instrucciones del sitio web de RStudio

Cómo crear una cuenta de usuario en el nodo principal

Para crear una cuenta de usuario con la que acceder a la IU de RStudio, sigue los siguientes pasos:

  1. Crea una nueva cuenta de usuario; reemplaza [USER_NAME] por el nombre de usuario:

    sudo adduser [USER_NAME]
  2. Cuando se te solicite, ingresa una contraseña para el usuario nuevo.

    Puedes crear varias cuentas de usuario en el nodo principal para que cada usuario tenga su propio entorno de RStudio. Por cada usuario que crees, sigue los pasos de instalación de sparklyr y Spark.

Cómo conectarse a la IU web de RStudio

RStudio Server se ejecuta en el nodo principal de Cloud Dataproc y se puede acceder solo desde la red interna de GCP. Para acceder al servidor, necesitas una ruta de acceso de red entre tu máquina local y el nodo principal de la red interna de GCP.

Puedes conectarte a través de una redirección de puertos a través de un túnel SSH, que es más seguro que abrir un puerto de firewall al nodo principal. Si utilizas un túnel SSH, tu conexión a la IU web será encriptada, a pesar de que el servidor utiliza un protocolo de HTTP simple.

Existen dos opciones para redireccionar puertos: la redirección dinámica a través de SOCKS o la redirección de puertos TCP.

Si utilizas SOCKS, puedes visualizar todas las interfaces web internas que se ejecutan en el nodo principal de Cloud Dataproc; sin embargo, debes utilizar una configuración personalizada del navegador para redireccionar todo el tráfico del navegador a través del proxy SOCKS.

La redirección de puertos TCP no requiere de una configuración del navegador personalizada, pero solo puedes visualizar la interfaz web de RStudio.

Cómo conectarse a través de un túnel SSH SOCKS

Para crear un túnel SSH SOCKS y conectarlo a través de un perfil configurado de forma especial, sigue los pasos de la página Cómo conectarse a las interfaces web.

Luego de conectarte, utiliza las siguientes URL para acceder a las interfaces web.

  • Para cargar la IU web de RStudio, conecta tu navegador configurado de forma especial a http://[CLUSTER_NAME]-m:8787. Luego accede con el nombre de usuario y la contraseña que creaste.

  • Para cargar la IU web del administrador de recursos de YARN, conecta tu navegador configurado de forma especial a http://[CLUSTER_NAME]-m:8088.

  • Para cargar la IU web de HDFS NameNode, conecta tu navegador configurado de forma especial a http://[CLUSTER_NAME]-m:9870.

Cómo conectarse a través de una redirección de puertos SSH

Linux o macOS

  1. En tu máquina local, conéctate al nodo principal de Cloud Dataproc:

    gcloud compute ssh \
        --zone=[CLUSTER_ZONE] \
        --project=[PROJECT_ID] \
        [CLUSTER_NAME]-m -- \
        -L 8787:localhost:8787
    

    El parámetro -- separa los argumentos en el comando de gcloud de los argumentos que se envían al comando ssh. La opción -L configura la redirección de puertos TCP desde el puerto 8787 en la máquina local hacia el puerto 8787 del nodo principal del clúster en el que RStudio Server escucha las peticiones.

  2. Para cargar la IU web de RStudio, conecta tu navegador a http://localhost:8787.

  3. Accede con el nombre de usuario y la contraseña que creaste.

Windows

  1. En tu máquina local, conéctate al nodo principal de Cloud Dataproc:

    gcloud compute ssh ^
        --zone=[CLUSTER_ZONE] ^
        --project=[PROJECT_ID] ^
        [CLUSTER_NAME]-m -- ^
        -L 8787:localhost:8787
    

    El parámetro -- separa los argumentos en el comando de gcloud de los argumentos que se envían al comando ssh. La opción -L configura la redirección de puertos TCP desde el puerto 8787 en la máquina local hacia el puerto 8787 del nodo principal del clúster en el que RStudio Server escucha las peticiones.

  2. Para cargar la IU web de RStudio, conecta tu navegador a http://localhost:8787.

  3. Accede con el nombre de usuario y la contraseña que creaste.

Cómo instalar el paquete de sparklyr y Spark

Para instalar el paquete de sparklyr y Spark en la consola de R de RStudio, ejecuta los siguientes comandos:

install.packages("sparklyr")
sparklyr::spark_install()

A través de estos comandos se descargan, compilan y, luego, instalan los paquetes de R requeridos y una instancia compatible con Spark. Cada comando demora algunos minutos en completarse.

Cómo conectar R con Spark en YARN

Cada vez que reinicies una sesión de R, realiza los siguientes pasos:

  1. Carga las bibliotecas y configura las variables del entorno necesarias:

    library(sparklyr)
    library(dplyr)
    spark_home_set()
    Sys.setenv(HADOOP_CONF_DIR = '/etc/hadoop/conf')
    Sys.setenv(YARN_CONF_DIR = '/etc/hadoop/conf')
    
  2. Conéctate a Spark en YARN con la configuración predeterminada:

    sc <- spark_connect(master = "yarn-client")

    El objeto sc hace referencia a tu conexión de Spark, que puedes utilizar para administrar los datos y ejecutar consultas en R.

  3. Verifica el estado de tu conexión de Spark:

    spark_connection_is_open(sc)

    Si tu conexión se encuentra establecida, los comandos mostrarán el siguiente resultado:

    [1] TRUE

Puedes ajustar los parámetros de la conexión a través de un objeto de configuración que puede transmitirse a spark_connect().

Para obtener más información sobre los parámetros de conexión de sparklyr y cómo ajustar Spark en YARN, revisa los siguientes vínculos:

Opcional: Cómo verificar tu instalación

Para verificar que todo esté en funcionamiento, puedes subir una tabla en el clúster de Cloud Dataproc y realizar una consulta.

  1. En la consola de R, instala el conjunto de datos de muestra (una lista de todos los vuelos de la ciudad de Nueva York del año 2013) y cópialo en Spark:

    install.packages("nycflights13")
    flights_tbl <- copy_to(sc, nycflights13::flights, "flights")
    
  2. Si no vas a utilizar la redirección de puertos SOCKS, ve directo al paso 3. De lo contrario, utiliza la IU de Spark para verificar que la tabla se haya creado.

    1. En el navegador que configuraste, carga el administrador de recursos de YARN:

      http://[CLUSTER_NAME]-m:8088

      En la lista de la aplicación, aparecerá una fila para la aplicación de sparklyr en la tabla.

      fila de la aplicación de sparklyr

    2. En la columna Tracking UI (Seguimiento de IU), ubicada en la parte derecha de la tabla, haz clic en el vínculo ApplicationMaster para acceder a la IU de Spark.

      En la pestaña Trabajos de la IU de Spark, verás las entradas para los trabajos que copiaron los datos a Spark. En la pestaña Almacenamiento, verás una entrada para In-memory table 'flights' (Tabla en memoria 'vuelos').

      Pestaña del almacenamiento con una entrada para la tabla en memoria "vuelos"

  3. En la consola de R, ejecuta la siguiente consulta:

    flights_tbl %>%
      select(carrier, dep_delay) %>%
      group_by(carrier) %>%
      summarize(count = n(), mean_dep_delay = mean(dep_delay)) %>%
      arrange(desc(mean_dep_delay))
    

    Esta consulta crea una lista del retraso promedio de los despegues por vuelo y por aerolínea, en orden descendente, y produce el siguiente resultado:

    # Source:     lazy query [?? x 3]
    # Database:   spark_connection
    # Ordered by: desc(mean_dep_delay)
       carrier  count mean_dep_delay
       <chr>    <dbl>          <dbl>
     1 F9        685.           20.2
     2 EV      54173.           20.0
     3 YV        601.           19.0
     4 FL       3260.           18.7
     5 WN      12275.           17.7
    ...
    

Si regresas a la pestaña Trabajos en la IU de Spark, puedes ver los trabajos utilizados para ejecutar esta consulta. Puedes utilizar esta pestaña para supervisar trabajos que se ejecutan en mayor tiempo.

Agradecimientos

Agradecemos a Mango Solutions por su asistencia en la preparación de parte del contenido técnico de este artículo.

Limpieza

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud Platform por los recursos que usaste en este instructivo:

  • Borra el clúster de Cloud Dataproc.
  • Si no tienes otros clústeres de Cloud Dataproc en la misma región, también debes borrar el depósito de Cloud Storage creado de forma automática para la región.

Borra el clúster

  1. En GCP Console, dirígete a la página Clústeres de Cloud Dataproc:

    IR A LA PÁGINA DE CLÚSTERES DE CLOUD DATAPROC

  2. En la lista de clústeres, dirígete a la fila correspondiente al clúster de Cloud Dataproc que creaste y busca la columna del depósito de etapa de pruebas de Cloud Storage; toma nota del nombre del depósito que comienza con la palabra dataproc.

    Borra el clúster

  3. Selecciona la casilla de verificación que se encuentra al lado de rstudio-cluster y haz clic en Delete (Borrar).

  4. Cuando se te pida que borres el clúster, confirma la eliminación.

Borra el depósito

  1. Para borrar el depósito de Cloud Storage, dirígete al navegador de Cloud Storage:

    IR AL NAVEGADOR DE CLOUD STORAGE

  2. Encuentra el depósito asociado con el clúster de Cloud Dataproc que acabas de borrar.

  3. Selecciona la casilla de verificación que se encuentra al lado del nombre del depósito y haz clic en Delete (Borrar).

    Borra el depósito de almacenamiento

  4. Cuando se te pida que borres el depósito de almacenamiento, confirma la eliminación.

Pasos siguientes

  • Para obtener más información sobre otras maneras de interactuar con Cloud Dataproc, consulta la lista de Instructivos y ejemplos.
  • Prueba otras funciones de Google Cloud Platform. Revisa nuestros instructivos.
¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…