1. Introducción Puesta en marcha del cluster Uso de S3 desde Hadoop
Cluster Hadoop con
herramientas EC2
Tomás Fernández Pena
CITIUS-USC tf.pena@usc.es
Máster en Computación de Altas Prestaciones
Máster HPC
1/12
2. Introducción Puesta en marcha del cluster Uso de S3 desde Hadoop
Índice
1 Introducción
2 Puesta en marcha del cluster
3 Uso de S3 desde Hadoop
Máster HPC
2/12
3. Introducción Puesta en marcha del cluster Uso de S3 desde Hadoop
Índice
1 Introducción
2 Puesta en marcha del cluster
3 Uso de S3 desde Hadoop
Máster HPC
4. Introducción Puesta en marcha del cluster Uso de S3 desde Hadoop
Cluster Hadoop en EC2
Hadoop proporciona herramientas para ejecutar un cluster
Hadoop en EC2 de forma simple
Precisamos:
- Una instalación standalone de Hadoop en nuestro PC
- Las herramientas en línea de comandos de EC2
- Las credenciales de acceso a AWS
Máster HPC
3/12
5. Introducción Puesta en marcha del cluster Uso de S3 desde Hadoop
Credenciales de acceso a AWS (I)
Cinco valores:
1. Access-key ID (20 caracteres alfanuméricos), variable
AWS_ACCESS_KEY_ID
2. Secret Access Key (40 caracteres alfanuméricos), variable
AWS_SECRET_ACCESS_KEY
3. Fichero .pem con el certificado X.509, variable EC2_CERT
4. Fichero .pem con la clave privada, variable EC2_PRIVATE_KEY
5. AWS Account ID (12 dígitos), variable AWS_ACCOUNT_ID
Máster HPC
4/12
6. Introducción Puesta en marcha del cluster Uso de S3 desde Hadoop
Credenciales de acceso a AWS (II)
Consideraciones:
Estos valores se obtienen de
https://portal.aws.amazon.com/gp/aws/securityCredentials
Usualmente, los ficheros .pem de certificado y clave privada se
colocan en el directorio ~/.ec2/
El Account ID hay que usarlo sin guiones
El Secret Access key puede tener, entre sus caracteres, barras (/)
- Puede dar problemas con S3
- Crear nuevas claves, hasta obtener una sin /
Máster HPC
5/12
7. Introducción Puesta en marcha del cluster Uso de S3 desde Hadoop
Índice
1 Introducción
2 Puesta en marcha del cluster
3 Uso de S3 desde Hadoop
Máster HPC
8. Introducción Puesta en marcha del cluster Uso de S3 desde Hadoop
Definición del entorno
Los comandos necesarios están en
$HADOOP_INSTALL/hadoop/src/contrib/ec2/bin/
Editar el fichero hadoop-ec2-env.sh y poner las credenciales
de acceso a EC2
- Poner los valores de AWS_ACCOUNT_ID, AWS_ACCESS_KEY_ID,
AWS_SECRET_ACCESS_KEY
- Poner en KEY_NAME con el nombre de un EC2 Key Pair al que
tengamos acceso
- Poner en PRIVATE_KEY_PATH el path a la EC2 private key (por
defecto, en EC2_KEYDIR=~/.ec2/, con nombre
id_rsa-$KEY_NAME)
- Es necesario que las variables EC2_CERT y EC2_PRIVATE_KEY
estén definidas
Máster HPC
6/12
9. Introducción Puesta en marcha del cluster Uso de S3 desde Hadoop
Definición del entorno
En el fichero hadoop-ec2-env.sh podemos indicar también:
- El tipo de instancia a usar por defecto (INSTANCE_TYPE)
- La versión de hadoop (HADOOP_VERSION)
- El bucket S3 en el que residen las imágenes (S3_BUCKET, por
defecto, las imágenes con hadoop preinstalado están en
hadoop-images)
Para ver las imágenes disponibles, usar:
ec2-describe-images -x all | grep hadoop-images
Máster HPC
7/12
10. Introducción Puesta en marcha del cluster Uso de S3 desde Hadoop
Ejecución del cluster
Comando para iniciar en cluster hadoop:
hadoop-ec2 launch-cluster <nombre-cluster> <número-esclavos>
Después de iniciar nos devuelve el nombre del máster node:
Podemos ver el JobTracker y el NameNode en los puertos
50030 y 50070
Para acceder al master
hadoop-ec2 login <nombre-cluster>
Para terminar el cluster
hadoop-ec2 terminate-cluster <nombre-cluster>
Máster HPC
8/12
11. Introducción Puesta en marcha del cluster Uso de S3 desde Hadoop
Índice
1 Introducción
2 Puesta en marcha del cluster
3 Uso de S3 desde Hadoop
Máster HPC
12. Introducción Puesta en marcha del cluster Uso de S3 desde Hadoop
Sistemas de ficheros en S3
Dos tipos de sistemas de ficheros en S3 para Hadoop:
S3 Native FileSystem (URI scheme s3n) Sistema por defecto, lee y
escribe ficheros regulares
S3 Block FileSystem (URI scheme s3) Almacenamiento por bloques,
similar a HDFS (más optimizado para Hadoop)
S3 Block FileSystem necesita un bucket dedicado
Máster HPC
9/12
13. Introducción Puesta en marcha del cluster Uso de S3 desde Hadoop
Copia de datos y uso de S3 (I)
Copia de local a S3
hadoop fs -put <localpath>
s3://<access-key-id>:<secret-access-key>@<s3-bucket>/
<s3-filepath>
Copia optimizada de S3 a HDFS
hadoop distcp s3://<access-key-id>:<secret-access-key>
@<s3-bucket>/<s3-filepath> <hdfs-filepath>
Uso directo de S3 como entrada desde Hadoop
hadoop jar <jar-file> s3://<access-key-id>:
<secret-access-key>@<s3-bucket>/<s3-filepath> <hdfs-filepath>
Máster HPC
10/12
14. Introducción Puesta en marcha del cluster Uso de S3 desde Hadoop
Copia de datos y uso de S3 (II)
Otros aspectos
Es posible usar s3n (ficheros) en vez de s3 (bloques)
- Limitación de 5 GB por fichero
La AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY pueden
guardarse en el fichero core-site.xml, para no tener que
ponerlas en los comandos
<property>
<name>fs.s3.awsAccessKeyId</name>
<value>access-key-id</value>
</property>
<property>
<name>fs.s3.awsSecretAccessKey</name>
<value>secret-access-key</value>
</property>
Máster HPC
11/12
15. Introducción Puesta en marcha del cluster Uso de S3 desde Hadoop
Copia de datos y uso de S3 (III)
Es posible también usar s3 por defecto, en vez de HDFS
<property>
<name>fs.default.name</name>
<value>s3://s3-bucket</value>
</property>
Máster HPC
12/12