Category Archives: java

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/

Retomando Java gracias a Twitter

Hace tiempo que tenía ganas de aprender un nuevo lenguaje de programación pero me faltaba un incentivo. Ahora ya tengo el incentivo solo es cuestión de tiempo. El lenguaje elegido es Java

Mi primera aplicación en java (había hecho otras antes para la universidad pero ya no recuerdo como eran).

Esta pequeña aplicación utiliza la biblioteca Twitter4J la cual nos entrega una serie de clases y funciones para manejar de manera fácil el api de twitter.


import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;

import java.util.List;

public class Main {

public static void main(String[] args) {
if (args.length < 1) {
System.out.println("No TwitterID specified.");
System.exit(-1);
}
try {
Twitter twitter = new Twitter();
List<Status> messages = twitter.getUserTimeline(args[0]);
int i = 0;
for (Status message : messages) {
if( i <= 1) {
System.out.println("<@"+args[0]+"> "+message.getText()+ " date:"+message.getCreatedAt()+ "\n");
i++;
}
}
System.exit(0);
} catch (TwitterException te) {
System.out.println("Failed to get messages: " + te.getMessage());
System.exit( -1);
}
}
}

Con este simple código podemos obtener los últimos 5 mensajes de una cuenta de twitter.