30
Jun 14

Apache MESOS Centos 6 (parte II)

Para continuar con el tutorial de Apache Mesos en Centos 6. En el ejemplo utilizaremos 2 nodos slave contectados a un master, en el cual además esta corriendo zookeeper.

hostname & ips de los nodos

cat /etc/hosts
[root@centos00 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
localhost.localdomain localhost
192.168.33.100 centos00
192.168.33.101 centos01
192.168.33.102 centos02

run mesos-master

cd mesos-0.19.0
cd build
./bin/mesos-master.sh --ip=192.168.33.100 --work_dir=/tmp/mesos --log_dir=/opt/mesos/log --zk=zk://localhost:2181/mesos --quorum=1 --cluster=TEST

Ahora si ingresan vía web a http://192.168.33.100:5050, verán el administrador de mesos donde no aparecen slaves o frameworks.

run mesos-slave
Los nodos que funcionarán como slaves deben tener instalado mesos, proceso que fue presentado anteriormente.

cd mesos-0.19.0
cd build
./bin/mesos-slave.sh --master=zk://192.168.33.100:2181/mesos --ip=192.168.33.101

Ahora si ingresan a http://192.168.33.100:5050 verán que aparecen dos slaves listos para ser utilizados, el siguiente paso es instalar el framework marathon

instalar & ejecutar marathon

curl -O http://downloads.mesosphere.io/marathon/marathon-0.6.0/marathon-0.6.0.tgz
tar xvfz marathon-0.6.0.tgz
cd marathon-0.6.0
./bin/start --master zk://192.168.33.100:2181/mesos --zk zk://192.168.33.100:2181/marathon

28
Jun 14

Apache MESOS Centos 6 (parte I)

Hace un par de días he estado leyendo sobre el proyecto Apache Mesos. Ahora es momento de comenzar con las pruebas de concepto para ver que tal se comporta. Básicamente es un administrador de recursos para un cluster, no es un planificador, sino un administrador!. Una de las principales ventajas es que permite abstraernos de  las “máquinas” en un cluster y simplemente pensar cuantos recursos necesitaríamos para ejecutar cierto proceso, tampoco nos importa en que maquinas corra.

Para instalar Apache Mesos (versión 0.19.0 actualmente) en centos deben realizar lo siguiente.

Instalar paquetes de desarrollo (homologo al build-essential de ubuntu)

yum groupinstall "Development tools"

Instalar dependencias de java y python

yum install java-1.7.0-openjdk-devel python python-devel libcurl libcurl-devel python-boto zlib-devel cyrus-sasl-devel

Instalar zookeeper server utilizando cloudera.com

wget http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/cloudera-cdh4.repo
yum --nogpgcheck localinstall cloudera-cdh-4-0.x86_64.rpm
yum install zookeeper-server
echo 1 > /var/lib/zookeeper/myid
service zookeeper-server init
service zookeeper-server start

Instalar maven

wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
yum install apache-maven

Descargar y descomprimir las fuentes

wget http://www.apache.org/dist/mesos/0.19.0/mesos-0.19.0.tar.gz
tar xvfz mesos-0.19.0.tar.gz
cd mesos-0.19.0
mkdir build
cd build
../configure

Podrían tener un error si no tienen seteados el JAVA_HOME y algunas otras variables de entorno.

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64
export JAVA_LDFLAGS="-L/usr/lib/jvm/java-1.7.0/jre/lib/amd64/server -R/usr/lib/jvm/java-1.7.0/jre/lib/amd64/server -ljvm"
export JAVA_CPPFLAGS="-I/usr/lib/jvm/java-1.7.0/include -I/usr/lib/jvm/java-1.7.0/include/linux"
export LD_LIBRARY_PATH=/usr/lib/jvm/java-1.7.0/jre/lib/amd64/server:$LD_LIBRARY_PATH

Compilar, check e instalar

make
make check
make install

PD: Igual pueden descargar e instalar el paquete para su distribución en http://mesosphere.io/downloads/