Conecte Amazon EMR y RStudio en Amazon SageMaker

Conecte Amazon EMR y RStudio en Amazon SageMaker

RStudio en Amazon SageMaker es el primer entorno de desarrollo integrado (IDE) RStudio Workbench completamente administrado de la industria en la nube. Puede iniciar rápidamente el conocido IDE de RStudio y aumentar y disminuir los recursos informáticos subyacentes sin interrumpir su trabajo, lo que facilita la creación de soluciones de análisis y aprendizaje automático (ML) en R a escala.

Junto con herramientas como RStudio en SageMaker, los usuarios analizan, transforman y preparan grandes cantidades de datos como parte del flujo de trabajo de ciencia de datos y aprendizaje automático. Los científicos de datos y los ingenieros de datos usan Apache Spark, Hive y Presto ejecutándose en EMR de Amazon para el procesamiento de datos a gran escala. Al usar RStudio en SageMaker y Amazon EMR juntos, puede continuar usando el IDE de RStudio para análisis y desarrollo, mientras usa clústeres administrados de Amazon EMR para un procesamiento de datos más grande.

En esta publicación, demostramos cómo puede conectar su RStudio en el dominio de SageMaker con un clúster de EMR.

Resumen de la solución

Usamos un Apache Livio conexión para enviar un brillante trabajo de RStudio en SageMaker a un clúster de EMR. Esto se demuestra en el siguiente diagrama.

Alcance de la solución
Todo el código demostrado en la publicación está disponible en nuestro Repositorio GitHub. Implementamos la siguiente arquitectura de solución.

Conecte Amazon EMR y RStudio en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Requisitos previos

Antes de implementar cualquier recurso, asegúrese de tener todos los requisitos para configurar y usar RStudio en SageMaker y Amazon EMR:

También crearemos una imagen personalizada de RStudio en SageMaker, así que asegúrese de tener Docker ejecutándose y todos los permisos necesarios. Para obtener más información, consulte Use una imagen personalizada para traer su propio entorno de desarrollo a RStudio en Amazon SageMaker.

Cree recursos con AWS CloudFormation

Usamos un Formación en la nube de AWS stack para generar la infraestructura requerida.

Si ya tiene un dominio de RStudio y un clúster de EMR existente, puede omitir este paso y comenzar a crear su RStudio personalizado en la imagen de SageMaker. Sustituya la información de su clúster de EMR y dominio de RStudio en lugar del clúster de EMR y el dominio de RStudio creados en esta sección.

Lanzar esta pila crea los siguientes recursos:

  • Dos subredes privadas
  • Clúster EMR Spark
  • Pegamento AWS base de datos y tablas
  • Dominio de SageMaker con RStudio
  • Perfil de usuario de SageMaker RStudio
  • Rol de servicio de IAM para el dominio SageMaker RStudio
  • Rol de servicio de IAM para el perfil de usuario de SageMaker RStudio

Complete los siguientes pasos para crear sus recursos:

Elige Pila de lanzamiento para crear la pila.

Conecte Amazon EMR y RStudio en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

  1. En Crear pila página, elige Siguiente.
  2. En Especificar detalles de la pila página, proporcione un nombre para su pila y deje las opciones restantes como predeterminadas, luego elija Siguiente.
  3. En Configurar opciones de pila página, deje las opciones por defecto y elija Siguiente.
  4. En Página de revisión, seleccione
  5. Reconozco que AWS CloudFormation podría crear recursos de IAM con nombres personalizados y
  6. Reconozco que AWS CloudFormation puede requerir la siguiente capacidad: CAPABILITY_AUTO_EXPAND.
  7. Elige Crear pila.

Conecte Amazon EMR y RStudio en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

La plantilla genera cinco pilas.

Conecte Amazon EMR y RStudio en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Para ver el clúster de EMR Spark que se creó, vaya a la consola de Amazon EMR. Verá un clúster creado para usted llamado sagemaker. Este es el clúster al que nos conectamos a través de RStudio en SageMaker.

Conecte Amazon EMR y RStudio en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Cree la imagen personalizada de RStudio en SageMaker

Hemos creado una imagen personalizada que instalará todas las dependencias de sparklyr y establecerá una conexión con el clúster de EMR que creamos.

Si está utilizando su propio clúster de EMR y dominio de RStudio, modifique los scripts en consecuencia.

Asegúrese de que Docker se esté ejecutando. Comience ingresando a nuestro repositorio de proyectos:

cd sagemaker-rstudio-emr/sparklyr-image
./build-r-image.sh

Ahora crearemos la imagen de Docker y la registraremos en nuestro dominio RStudio en SageMaker.

  1. En la consola de SageMaker, elija dominios en el panel de navegación.
  2. Elige el dominio select rstudio-domain.
  3. En Entorno pestaña, elegir Adjuntar imagen.
    Conecte Amazon EMR y RStudio en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.
    Ahora adjuntamos la imagen sparklyr que creamos anteriormente al dominio.
  4. Elija la fuente de la imagen, seleccione Imagen existente.
  5. Seleccione la imagen brillante que construimos.
    Conecte Amazon EMR y RStudio en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.
  6. Propiedades de la imagen, deje las opciones por defecto.
  7. Tipo de imagen, seleccione Imagen de RStudio.
  8. Elige Enviar.
    Conecte Amazon EMR y RStudio en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.
    Valida que la imagen se haya agregado al dominio. La imagen puede tardar unos minutos en adjuntarse por completo.
    Conecte Amazon EMR y RStudio en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.
  9. Cuando esté disponible, inicie sesión en RStudio en la consola de SageMaker mediante el rstudio-user perfil que fue creado.
  10. Desde aquí, cree una sesión con la imagen brillante que creamos anteriormente.
    Conecte Amazon EMR y RStudio en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.
    Primero, tenemos que conectarnos a nuestro clúster EMR.
  11. En el panel de conexiones, seleccione Nueva conexión.
  12. Seleccione el fragmento de código de conexión del clúster de EMR y elija Conéctese al clúster de Amazon EMR.
    Conecte Amazon EMR y RStudio en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.
    Después de que se haya ejecutado el código de conexión, verá una conexión Spark a través de Livy, pero no tablas.
    Conecte Amazon EMR y RStudio en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.
  13. Cambiar la base de datos a credit_card:
    tbl_change_db(sc, “credit_card”)
  14. Elige Actualizar datos de conexión.
    Ya puedes ver las tablas.
    Conecte Amazon EMR y RStudio en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.
  15. Ahora navega hacia el rstudio-sparklyr-code-walkthrough.md archivo.

Esto tiene un conjunto de transformaciones de Spark que podemos usar en nuestro conjunto de datos de tarjetas de crédito para prepararlo para el modelado. El siguiente código es un extracto:

Vamos count() cuántas transacciones hay en la tabla de transacciones. Pero primero tenemos que almacenar en caché Use el tbl() función.

users_tbl <- tbl(sc, "users")
cards_tbl <- tbl(sc, "cards")
transactions_tbl <- tbl(sc, "transactions")

Hagamos un recuento del número de filas de cada tabla.

count(users_tbl)
count(cards_tbl)
count(transactions_tbl)

Ahora registremos nuestras tablas como marcos de datos de Spark y llévelas a todo el clúster en la memoria caché para obtener un mejor rendimiento. También filtraremos el encabezado que se coloca en la primera fila de cada tabla.

users_tbl <- tbl(sc, 'users') %>% filter(gender != 'Gender')
sdf_register(users_tbl, "users_spark")
tbl_cache(sc, 'users_spark')
users_sdf <- tbl(sc, 'users_spark') cards_tbl <- tbl(sc, 'cards') %>% filter(expire_date != 'Expires')
sdf_register(cards_tbl, "cards_spark")
tbl_cache(sc, 'cards_spark')
cards_sdf <- tbl(sc, 'cards_spark') transactions_tbl <- tbl(sc, 'transactions') %>% filter(amount != 'Amount')
sdf_register(transactions_tbl, "transactions_spark")
tbl_cache(sc, 'transactions_spark')
transactions_sdf <- tbl(sc, 'transactions_spark')

Para ver la lista completa de comandos, consulte la rstudio-sparklyr-code-walkthrough.md archivo.

Limpiar

Para limpiar los recursos y evitar incurrir en costos recurrentes, elimine la plantilla raíz de CloudFormation. también eliminar todo Servicio de archivos elásticos de Amazon (Amazon EFS) montajes creados y cualquier Servicio de almacenamiento simple de Amazon (Amazon S3) cubos y objetos creados.

Conclusión

La integración de RStudio en SageMaker con Amazon EMR brinda una solución poderosa para tareas de modelado y análisis de datos en la nube. Al conectar RStudio en SageMaker y establecer una conexión Livy con Spark en EMR, puede aprovechar los recursos informáticos de ambas plataformas para el procesamiento eficiente de grandes conjuntos de datos. RStudio, uno de los IDE más utilizados para el análisis de datos, le permite aprovechar las capacidades de infraestructura, control de acceso, redes y seguridad completamente administradas de SageMaker. Mientras tanto, la conexión de Livy a Spark en Amazon EMR proporciona una forma de realizar el procesamiento distribuido y el escalado de las tareas de procesamiento de datos.

Si está interesado en obtener más información sobre el uso conjunto de estas herramientas, esta publicación sirve como punto de partida. Para obtener más información, consulte RStudio en Amazon SageMaker. Si tiene alguna sugerencia o mejora de funciones, cree una solicitud de incorporación de cambios en nuestro repositorio de GitHub o deje un comentario en esta publicación.


Acerca de los autores

Conecte Amazon EMR y RStudio en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

ryan garner es un científico de datos con los servicios profesionales de AWS. Le apasiona ayudar a los clientes de AWS a utilizar R para resolver sus problemas de ciencia de datos y aprendizaje automático.


Conecte Amazon EMR y RStudio en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.
Raj Pathak
 es Arquitecto de Soluciones Senior y Tecnólogo especializado en Servicios Financieros (Seguros, Banca, Mercados de Capitales) y Aprendizaje Automático. Se especializa en procesamiento de lenguaje natural (NLP), modelos de lenguaje grande (LLM) y proyectos de infraestructura y operaciones de aprendizaje automático (MLOps).


Conecte Amazon EMR y RStudio en Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Saiteja Pudi
 es arquitecto de soluciones en AWS, con sede en Dallas, Tx. Ha estado con AWS durante más de 3 años, ayudando a los clientes a obtener el verdadero potencial de AWS siendo su asesor de confianza. Viene de un fondo de desarrollo de aplicaciones, interesado en ciencia de datos y aprendizaje automático.

Sello de tiempo:

Mas de Aprendizaje automático de AWS