Author Archives: stefano

How to fix open_stackdumpfile: Dumping stack trace to less.exe.stackdump (git+cygwin)

At work I’m using git [git version 2.15.0.windows.1] + cgywin , some git commands like diff or log throw an exception and I got this message on the console [main] cygwin_exception::open_stackdumpfile: Dumping stack trace to less.exe.stackdump

To fix this error you have to change the value of $TERM to xterm, previously was screen (collateral damage? I don’t know yet xD)

export TERM=xterm

https://conemu.github.io/en/GitForWindows.html

Configuraciones marathon (mesos scheduler) parte I

Después de estar un tiempo trabajando en la implementación de Apache Mesos y Marathon como scheduler algunos tips  que he aprendido en el camino.

  • La configuración de las variables de entorno cuando utilizamos los paquetes generados por Mesoshere se debe agregar en el archivo /etc/sysconfig/marathon 
  • Cuando tenemos más de una ip en nuestro nodo de marathon y queremos forzar para que las conexiones vayan utilizando esa red debemos agregar la variable LIBPROCESS_IP
  • Marathon utiliza un puerto para comunicarse con el mesos-master, este puerto es aleatorio pero se puede forzar utilizando LIBPROCESS_PORT  más info
  • La configuración de Marathon (usando los paquetes de mesosphere) se realiza mediante la creaciónd de archivos en el path /etc/marathon/conf , cuando necesitemos agregar un parámetro que no tiene valor (por ejemplo –disable_http) el archivo debe comenzar con un ‘?’ (ver código en github)

Eso por ahora

Apache MESOS Centos 6 (parte III)

En esta tercera parte de Apache MESOS & Centos 6 está enfocada en posibilitar el uso de linux containers en mesos utilizando el framework marathon y dockers.

Primero debemos instalar python2.7 para poder instalar luego deimos.

Primero debemos instalar algunas dependencias

yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install -y bzip2-devel
wget https://www.python.org/ftp/python/2.7.7/Python-2.7.7.tar.xz
xz -d Python-2.7.7.tar.xz
tar -xvf Python-2.7.7.tar
cd Python-2.7.7
./configure --prefix=/usr/local
make
make altinstall
export PATH="/usr/local/bin:$PATH"
curl -O http://python-distribute.org/distribute_setup.py
python2.7 distribute_setup.py
easy_install-2.7 pip
pip2.7 install deimos

Cuando revisamos el log de docker podemos encontrar un mensaje diciendo que la versión de docker es inestable debido a la versión del kernel que estamos usando, a continuación actualizaremos el kernel a la última versión que esta disponible en el repositorio elrepo

yum install http://www.elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel kernel-ml-headers

Además debemos agregar (cgroup_enable=memory swapaccount=1 selinux=0) en

/boot/grub/menu.lst

title CentOS (3.15.3-1.el6.elrepo.x86_64)
        root (hd0,0)
        kernel /vmlinuz-3.15.3-1.el6.elrepo.x86_64 ro root=UUID=03b47cb3-1cad-4bad-9fbf-6baecb8c0e9b console=hvc0 crashkernel=auto SYSFONT=latarcyrheb-sun16 LANG=en_US.UTF-8 KEYTABLE=us cgroup_enable=memory swapaccount=1 selinux=0
        initrd /initramfs-3.15.3-1.el6.elrepo.x86_64.img

Finalmente una vez que se reinicie la máquina estaremos utilizando la version 3.15.x del kernel. La próxima guía mostrará como enviar un proceso al kernel distribuido mesos vía marathon utilizando containers dockers.

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