Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Tutorial: configuración de un servidor de bloc de notas Apache Zeppelin en Amazon EC2
En este tutorial, debe crear un servidor de blocs de notas Apache Zeppelin que se aloje en una instancia de Amazon EC2. El bloc de notas se conecta a uno de los puntos de enlace de desarrollo para que pueda ejecutar, depurar y probar de forma interactiva scripts de ETL (extraer, transformar y cargar) de AWS Glue antes de implementarlos.
En este tutorial se supone que ha seguido los pasos que se indican en Requisitos previos del tutorial.
Creación de un servidor de blocs de notas Apache Zeppelin en una instancia de Amazon EC2
Para crear un servidor de blocs de notas en Amazon EC2, es imprescindible que disponga de permisos para crear recursos en AWS CloudFormation, Amazon EC2 y otros servicios. Para obtener más información acerca de los permisos de usuario requeridos, consulte Paso 3: Adjuntar una política a los usuarios o los grupos que accedan a AWS Glue.
-
En la consola de AWS Glue, seleccione Dev endpoints (Puntos de enlace de desarrollo) para ir a la lista de puntos de enlace de desarrollo.
-
Marque la casilla junto a un punto de enlace para seleccionarlo. Elija un punto de enlace con una clave pública de SSH vacía, ya que la clave se genera con una acción posterior en la instancia de Amazon EC2. A continuación, seleccione Actions (Acciones) y Create notebook server (Crear servidor de blocs de notas).
Para alojar el servidor de blocs de notas, una instancia de Amazon EC2 se activa mediante una pila de AWS CloudFormation en su punto de enlace de desarrollo. Si crea el servidor Zeppelin con un certificado SSL, el servidor HTTPS Zeppelin se iniciará en el puerto 443.
Escriba un nombre de servidor de pilas de AWS CloudFormation, por ejemplo
demo-cf
, utilizando únicamente caracteres alfanuméricos y guiones.-
Seleccione un rol de IAM que haya configurado con una relación de confianza con Amazon EC2, tal como se documenta en Paso 5: Crear un rol de IAM para servidores de blocs de notas.
-
Seleccione un par de claves de Amazon EC2 que haya generado en la consola de Amazon EC2 (https://console.aws.amazon.com/ec2/
), o elija Create EC2 key pair (Creación de un par de claves de EC2) para generar uno nuevo. No olvide la ubicación donde descargó y guardó la porción de la clave privada del par. Este par de claves es diferente de la clave SSH que utilizó al crear el punto de enlace de desarrollo (las claves que utiliza Amazon EC2 son claves RSA SSH-2 de 2048 bits). Para obtener más información acerca de las claves de Amazon EC2, consulte Pares de claves de Amazon EC2. Es recomendable asegurarse de que el archivo de la clave privada esté protegido frente a escritura para que no se modifique por error. En los sistemas operativos macOS y Linux, para hacer esto, hay que abrir un terminal y escribir
chmod 400
. En Windows, abra la consola y escribaprivate-key-file path
attrib -r
.private-key-file path
Seleccione un nombre de usuario para obtener acceso al bloc de notas Zeppelin.
Seleccione una ruta de Amazon S3 donde guardar el estado del bloc de notas.
Seleccione Create (Crear).
Puede ver el estado de la pila de AWS CloudFormation en la consola de AWS CloudFormation, pestaña Events (Eventos) (https://console.aws.amazon.com/cloudformation
Después de haber creado el servidor de blocs de notas, su estado cambia a CREATE_COMPLETE (CREACIÓN COMPLETA) en la consola de Amazon EC2. Los datos sobre el servidor también aparecen en la página de detalles del punto de enlace de desarrollo. Una vez se haya completado la creación, podrá conectarse a blocs de notas en el nuevo servidor.
Para completar la configuración del servidor de blocs de notas Zeppelin, debe ejecutar un script en la instancia de Amazon EC2. Este tutorial requiere que cargue un certificado SSL al crear el servidor Zeppelin en la instancia de Amazon EC2. Sin embargo, también existe un método de redireccionamiento de puertos locales SSH para conectarse. Para ver instrucciones de configuración adicionales, consulte Creación de un servidor de blocs de notas asociado a un punto de conexión de desarrollo. Una vez que se haya completado la creación, podrá conectarse a blocs de notas en el nuevo servidor mediante HTTPS.
nota
Usted administrará los servidores de blocs de notas que cree y estén asociados con un punto de enlace de desarrollo. Por tanto, si elimina el punto de enlace de desarrollo, para eliminar el bloc de notas, será preciso que elimine la pila de AWS CloudFormation en la consola de AWS CloudFormation.
Conexión con su servidor de blocs de notas en Amazon EC2
En la consola de AWS Glue, seleccione Dev endpoints (Puntos de enlace de desarrollo) para ir a la lista de puntos de enlace de desarrollo. Seleccione el nombre del punto de enlace de desarrollo para el que ha creado un servidor de blocs de notas. Al seleccionar el nombre, se abre la página de detalles.
En la página Endpoint details (Detalles del punto de enlace), copie la URL con la etiqueta HTTPS URL (URL HTTPS) para su servidor de blocs de notas.
Abra un navegador web y pegue la dirección URL del servidor de blocs de notas. De esta forma, obtendrá acceso al servidor mediante HTTPS en el puerto 443. Es posible que el navegador no reconozca el certificado del servidor, en cuyo caso tendrá que anular su protección y continuar.
Inicie sesión en Zeppelin con el nombre de usuario y la contraseña que especificó cuando creó el servidor de blocs de notas.
Ejecución de un fragmento de script sencillo en un párrafo del bloc de notas
Seleccione Create new note (Crear nueva nota) y asígnele el nombre Legislators (Legisladores). Confirme
spark
como el Default Interpreter (Intérprete predeterminado).Escriba la instrucción
spark.version
y ejecútela para comprobar que el bloc de notas está configurado correctamente. Esto devolverá la versión de Apache Spark que se está ejecutando en el servidor de blocs de notas.-
Escriba el script a continuación en el siguiente párrafo del bloc de notas y ejecútelo. Este script lee los metadatos de la tabla persons_json que creó el rastreador, crea un
DynamicFrame
a partir de los datos subyacentes y muestra el número de registros y el esquema de los datos.%pyspark import sys from pyspark.context import SparkContext from awsglue.context import GlueContext from awsglue.transforms import * from awsglue.utils import getResolvedOptions # Create a Glue context glueContext = GlueContext(SparkContext.getOrCreate()) # Create a DynamicFrame using the 'persons_json' table persons_DyF = glueContext.create_dynamic_frame.from_catalog(database="legislators", table_name="persons_json") # Print out information about this data print "Count: ", persons_DyF.count() persons_DyF.printSchema()
La salida del script debe ser:
Count: 1961 root |-- family_name: string |-- name: string |-- links: array | |-- element: struct | | |-- note: string | | |-- url: string |-- gender: string |-- image: string |-- identifiers: array | |-- element: struct | | |-- scheme: string | | |-- identifier: string |-- other_names: array | |-- element: struct | | |-- note: string | | |-- name: string | | |-- lang: string |-- sort_name: string |-- images: array | |-- element: struct | | |-- url: string |-- given_name: string |-- birth_date: string |-- id: string |-- contact_details: array | |-- element: struct | | |-- type: string | | |-- value: string |-- death_date: string