Obtener un pico del flujo de trabajo de big data/computación en la nube con AWS: hacia la IA

Estás leyendo la publicación: Obtener un pico del flujo de trabajo de big data/computación en la nube con AWS: hacia la IA

Publicado originalmente en Hacia la IA, la empresa líder mundial en noticias y medios de IA y tecnología. Si está creando un producto o servicio relacionado con la IA, lo invitamos a considerar convertirse en patrocinador de la IA. En Hacia la IA, ayudamos a escalar las empresas emergentes de IA y tecnología. Permítanos ayudarlo a dar rienda suelta a su tecnología a las masas.

Aunque ahora he tenido la oportunidad de jugar con estas diferentes tecnologías, todavía me sorprende la conveniencia, la portabilidad y el poder de cómputo que ofrecen las tecnologías Big Data y Cloud Computing, tanto para los consumidores como para las empresas. Desde la perspectiva de un consumidor, por ejemplo, tiene la capacidad de acceder a toda su información vital desde cualquier dispositivo sin tener que preocuparse mucho por perder su información u olvidar su dispositivo. Desde la perspectiva de un profesional de la tecnología o los datos, pueden aprovechar la potencia de procesamiento sin procesar y las capacidades de almacenamiento de datos a las que probablemente nunca habrían tenido acceso si la tecnología nunca hubiera existido. Aunque palabras de moda como inteligencia artificial, aprendizaje automático, ciencia de datos o análisis están de moda en estos días, para mí, los avances en la computación en la nube y el almacenamiento en la nube nunca reciben suficiente atención como uno de los impulsores clave de la innovación; permitiéndonos trabajar, colaborar y escalar soluciones de manera verdaderamente transformadora.

Ahora que hemos cantado nuestras alabanzas por la computación en la nube, centrémonos ahora en la perspectiva del profesional de datos en el aprovechamiento de estas tecnologías para aprovechar Big Data y generar conocimientos prácticos. En este artículo, quiero dar un vistazo al flujo de trabajo de un científico de datos cuando trabaja con Big Data para aquellos que sienten curiosidad por el espacio, utilizando las herramientas estándar de la industria proporcionadas por Servicios web de Amazon (AWS). Más específicamente, repasaré:

  1. Cómo acceder al marco de almacenamiento y procesamiento paralelo, Sistema de almacenamiento de archivos Hadoop (HDFS);
  2. Cómo cargar datos en Amazon S3 Sistema de almacenamiento en la nube;
  3. Cómo discutir y analizar datos a escala, utilizando PySpark;
  4. Cómo guardar su trabajo nuevamente en HDFS y moverlo nuevamente a S3;
  5. Cómo conectar un entorno portátil, como JupyterLab o de Amazon SageMaker.

Tenga en cuenta que hay muchas formas de realizar la misma tarea en AWS. Además de tener una cuenta de AWS, la familiaridad con Python, Bash y los conceptos básicos de programación son un requisito previo suave para obtener valor en este artículo. También necesitará la clave de seguridad que se le proporcionó en un archivo .pem cuando se registró inicialmente para obtener una cuenta de AWS para acceder a las máquinas virtuales en la plataforma EC2 de Amazon. Y con eso fuera del camino, ¡comencemos!

1. Puesta en marcha de un clúster de AWS Elastic Map Reduce (EMR)

El primer paso que es prácticamente universal en todas las plataformas de computación en la nube es poner en marcha un clúster de Hadoop que permita el almacenamiento y el procesamiento paralelo que mencionamos anteriormente. La plataforma EMR de Amazon nos permite interactuar con el marco Hadoop de Apache para procesar el gran conjunto de datos con el que trabajaremos y es el factor que tendremos que tener en cuenta al contabilizar los costos de computación en la nube que cobrará Amazon. nosotros cada vez que alquilamos sus recursos.

🔥 Recomendado:  Entrevista con Enstine Muki: revelando cómo ganar dinero con su sitio web

La mayoría de las herramientas que usaremos se pueden encontrar en la barra de menú “Servicios” en el submenú “Análisis”.

A continuación, querremos hacer clic y delinear las especificaciones que necesitaremos para nuestro trabajo en el paso 1. Lo primero que querremos hacer aquí es hacer clic en el hipervínculo, ya que las especificaciones para nuestro trabajo serán un poco más granulares que los ofrecidos en los ajustes. Navegar a la configuración avanzada nos llevará a

Para este tutorial, utilizaremos una versión anterior del clúster EMR de Amazon para garantizar que todas las herramientas que utilizaremos en el ecosistema de AWS funcionen según lo previsto. También querremos revisar nuestro kit de herramientas para este trabajo, que en este caso será Hadoop, JupyterHub, Hive y Spark.

Para el paso 2, podemos dejar la configuración predeterminada como está. En el paso 3, querrá nombrar su clúster en la barra de entrada.

A continuación, vaya al paso 4, es importante especificar el par de claves que nos dará acceso a EC2, la máquina virtual de AWS que nos da acceso completo al ecosistema de AWS. El nombre de su par de claves debe ser el mismo que le dio a su .pem al registrarse. Una vez que haya especificado su , navegue hasta la esquina inferior derecha de la página y haga clic en .

2. Usar SSH para conectarse al nodo principal del clúster

Ahora que hemos configurado nuestros parámetros según las especificaciones de nuestro trabajo, tardará un par de minutos en estar completamente en funcionamiento. Mientras tanto, podemos verificar para asegurarnos de que nuestra configuración esté configurada de tal manera que podamos acceder a los nodos de nuestro clúster a través de un túnel SSH. Para hacerlo, nos aseguraremos de estar de vuelta en la pestaña y, debajo del subtítulo, querremos hacer clic en el enlace al lado de la etiqueta:

Hacer clic en ese enlace de seguridad lo llevará a la página. Allí querrá hacer clic con el botón derecho en el grupo de seguridad que menciona en su descripción y seleccionar:

Por último, querrá asegurarse de que una de las reglas de entrada se haya preseleccionado, junto con la opción. Si falta una de estas opciones, use el menú desplegable para seleccionar SSH. Sin habilitar el acceso SSH, no podríamos acceder a la máquina virtual EC2 que interactúa con el clúster de cómputo. Una vez que haya verificado estas opciones, continúe y haga clic en , luego navegue de regreso a la pestaña de resumen principal. Con suerte, a estas alturas, el grupo al menos se muestra como A partir de para que podamos comenzar a establecer la conexión SSH.

En la pestaña de resumen, debajo de donde dice, haga clic en el hipervínculo y navegue directamente a la pestaña Mac/Linux si ya tiene un terminal bash instalado en su computadora, independientemente del sistema operativo. Siga las instrucciones enumeradas y simplificaría las cosas si primero usara el comando cd en su terminal Bash para navegar directamente al directorio/carpeta donde está almacenada su clave EC2.

🔥 Recomendado:  ¿Qué se debe hacer con el dinero que sobra después de los gastos?

A continuación, copie y pegue (+) el comando Bash resaltado en las instrucciones de su terminal, excepto que asegúrese de eliminar los caracteres ~/ de la ruta de archivo relativa antes de presionar , luego escriba cuando aparezca la indicación de la huella digital, como en la imagen a continuación:

Si todo salió bien, debería ver un logotipo de EMR en la terminal, lo que indica que ahora está completamente conectado al grupo de computadoras EMR de Amazon.

3. Mover archivos de un depósito S3 a HDFS

Ahora que estamos en EMR Hadoop Framework, copiemos un archivo de un depósito público de S3 en nuestro sistema de almacenamiento Hadoop. Para ello, utilice la siguiente estructura de comandos:

hadoop distcp {inserte la dirección de los depósitos S3 desde los que está copiando} {inserte el directorio de hadoop al que desea mover el archivo}

Es fácil.

Nuevamente, la estructura de comando es:

hadoop distcp {depósito s3} {directorio emr}

4. Leer archivos de HDFS usando PySpark

¡Impresionante! Ahora que hemos movido nuestro archivo CSV de S3 a EMR, aprovechemos el procesamiento a gran escala y el marco informático distribuido de Apache, PySpark, para leer los datos y realizar un análisis exploratorio muy básico.

Nuestro primer paso aquí es establecer un túnel SSH para que podamos acceder a JupyterHub. Para hacerlo, regresemos a la pestaña de resumen principal. Dirígete al subtítulo y haz clic en el hipervínculo:

Esto lo llevará a una página similar a la que vimos en el Paso 2, ya que básicamente estamos repitiendo el mismo paso. La gran diferencia entre el Paso 2 y el Paso 4, en este caso, es que necesitará abrir otra página de terminal Bash ya que ya hemos dedicado el terminal anterior para establecer una conexión SSH con EMR.

Recuerde no olvidar eliminar los caracteres ~/ de la ruta del archivo del nombre de la clave en el comando SSH y escriba sí en el indicador de seguridad:

Una vez que haya establecido la conexión, navegue de regreso a la pestaña de resumen principal, haga clic en la pestaña justo al lado de la pestaña de resumen, luego copie y pegue el asociado con JupyterHub en otra pestaña del navegador:

Si todas las instrucciones del Paso 4 se ejecutaron correctamente, deberíamos ver la siguiente página de inicio de sesión para JupyterHub. Es posible que encuentre una advertencia de seguridad de su navegador al acceder a la URL de JupyterHub. Simplemente ignórelo y vaya a la siguiente página de inicio de sesión, donde puede ingresar el nombre de usuario y la contraseña asociados con su cuenta.

Una vez que haya iniciado sesión, la interfaz es prácticamente la misma que si estuviera usando Jupyter Notebook. Con el cuaderno que hemos creado en JupyterHub, realizaremos las siguientes tareas con PySpark:

Leyendo los datos que copiamos de HDFS, usando el chispa.read.csv(file_path, header=True) comando para convertir nuestros datos a un formato DataFrame con el que ahora deberíamos estar muy familiarizados;

  1. Visualización del esquema del DataFrame;
  2. Contando el número de filas en el DataFrame;
  3. Filtrar filas donde el token está etiquetado como “datos”, usando Spark SQL y contando la cantidad de filas que cumplen con este criterio;
  4. Y, por último, guarde nuestro nuevo marco de datos como su propio archivo separado y guárdelo en Hadoop.
  5. Verificando si nuestros datos fueron guardados correctamente en Hadoop. Para ello, ejecutamos el Hadoop fs-ls bash comando ANTES de ejecutar nuestro bloque de código df.write.csv() en Jupyter. DESPUÉS de ejecutar el último bloque de código de Jupyter, usamos el Hadoop fs-ls Comando de nuevo para comprobar si el archivo que guardamos como eng_data_1gram apareció en nuestro directorio de Hadoop, lo cual hizo.
🔥 Recomendado:  8 consejos para negociar tu salario para un nuevo trabajo

Tenga en cuenta que solo estamos ejecutando operaciones simples para esta demostración, ya que generalmente cuesta dinero ejecutar estas operaciones escaladas en la nube.

5. Fusionar archivos de Hadoop y cargarlos en S3

Después de filtrar las filas que contienen la etiqueta “datos” dentro de la columna “token”, ahora fusionémoslo con el archivo original. Podemos realizar esta tarea utilizando la siguiente estructura de comando bash:

hadoop fs -getmerge {filepath_doc1} {doc2_file_name}.

Una vez que los dos archivos se hayan fusionado, podemos emitir la siguiente estructura de comando para mover nuestro archivo fusionado a un depósito S3:

aws s3 cp {nombre de archivo.formato} {s3_bucket_address}.

Por último, querrá enumerar los contenidos en su depósito S3 para verificar si el archivo se envió correctamente al destino que pretendía con el comando:

aws s3 ls {s3_bucket_address}

6. Leer archivos de S3 usando SageMaker

Nuestro último elemento de acción en este ejercicio será leer nuestros datos filtrados del depósito S3 usando el entorno de notebook SageMaker de Amazon y JupyterLab, y trazar un gráfico usando herramientas tradicionales de ciencia de datos como pandas y matplotlib.pyplot. Para ello, ejecutaremos los siguientes pasos:

  1. Configurando nuestro entorno de notebook ejecutando pip installs de awscli y s3fs;
  2. Importando nuestros paquetes requeridos, incluido el paquete de AWS, que usaremos para acceder directamente a nuestro depósito S3;
  3. Leer los datos de S3 en un marco de datos de pandas y trazar un gráfico de líneas usando matplotlib.

¡Y eso es una envoltura! Espero que haya encontrado valor al leer este artículo y haya podido obtener una idea del flujo de trabajo de un profesional de Big Data.


Obtener un pico del flujo de trabajo de big data/computación en la nube con AWS se publicó originalmente en Hacia la IA en Medium, donde las personas continúan la conversación destacando y respondiendo a esta historia.

Publicado a través de Hacia la IA