yarn: change configuration and restart node manager on a live cluster


This procedure is to change Yarn configuration on a live cluster, propagate the changes to all the nodes and restart Yarn node manager.

Both commands are listing all the nodes on the cluster and then filtering the DNS name to execute a remote command via SSH. You can customize the sed filter depending on your own needs. This is filtering DNS names with Elastic Mapreduce format (ip-xx-xx-xx-xx.eu-west-1.compute.internal).

1. Upload the private key (.pem) file you are using to access the master node on the cluster. Change the private key permissions to at least 600 (i.e chmod 600 MyKeyName.pem)

2.  Change /conf/yarn-site.xml and use a command like this to populate the change across the cluster.

yarn node -list|sed -n "s/^\(ip[^:]*\):.*/\1/p" | xargs -t -I{} -P10 scp -o StrictHostKeyChecking=no -i ~/MyKeyName.pem ~/conf/yarn-site.xml hadoop@{}://home/hadoop/conf/

3. This command will restart Yarn Node Resource manager on all the nodes.

 yarn node -list|sed -n "s/^\(ip[^:]*\):.*/\1/p" | xargs -t -I{} -P10 ssh -o StrictHostKeyChecking=no -i ~/MyKeyName.pem hadoop@{} "yarn nodemanager stop"

 

HDFS: Cluster to cluster copy with distcp


Este es el formato del comando distcp para copiar de hdfs a hdfs considerando cluster origen y destino en Amazon AWS:

hadoop distcp "hdfs://ec2-54-86-202-252.compute-1.amazonaws.comec2-2:9000/tmp/test.txt" "hdfs://ec2-54-86-229-249.compute-1.amazonaws.comec2-2:9000/tmp/test1.txt"

Mas informacion sobre distcp:

http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/latest/CDH4-Installation-Guide/cdh4ig_topic_7_2.html
http://hadoop.apache.org/docs/r1.2.1/distcp2.html

 

Stress Test: Bees With Machine Guns !


Hace unos días probé una herramienta sumamente interesante: Bees With Machine Guns !!

Esta es una herramienta para realizar pruebas de stress sobre los servicios Load Balancer y Autoscaling de Amazon AWS.

Luego de armar nuestra estructura de servidores, podremos generar una prueba de carga con las abejas. De esta manera, veremos actuar al servicio de Autoscaling creando nuevas instancias de nuestro servidor o decrementando las instancias si la carga disminuye.

Instalación:

$ git clone git://github.com/newsapps/beeswithmachineguns.git
$ easy_install beeswithmachineguns

Creamos archivo de Credenciales:

[Credentials]
aws_access_key_id = <your access key>
aws_secret_access_key = <your secret key>

Estas credenciales deben colocarse en el archivo .boto en nuestro home. Conteniendo la key y secret key que utilicemos en nuestra cuenta de Amazon AWS. Estas credenciales serán utilizadas por la aplicacion para crear las abejas, que no son otra cosa que instancias EC2.

Utilización:

bees up -s 4 -g public-sg -k hvivani-virg-1
bees attack -n 10000 -c 250 -u http://loadbalancer.hvivani.com/
bees down

La primera linea crea 4 abejas (instancias ec2) utilizando las credenciales del archivo .boto junto con los permisos seteados en ‘public-sg’ (Security Group definido en la región) y la key ‘hvivani-virg-1’ (llave privada utilizada para conectar a cualquier instancia en la región).

La segunda linea llama a las 4 abejas a atacar el sitio http://loadbalancer.hvivani.com/ con 10000 solicitudes de a 250 cada vez.

La ultima linea elimina las abejas (termina las instancias de ataque).

A jugar …