Monitoramento de cluster Hadoop com Ganglia

Ganglia é uma estrutura de monitoramento para clusters de servidores. Ele registra muitas estatísticas e também pode registrar as definidas de forma personalizada. Ele funciona de maneira distribuída, com cada máquina da qual você deseja coletar estatísticas para executar o deamon do monitor Ganglia, gmond. As estatísticas de cada deamon de monitoramento são coletadas por um daemon de metadados, gmetad, rodando em um dos hosts monitorados ou em uma máquina separada. O Ganglia fornece um frontend PHP que exibe os dados do gmetad na forma de gráficos bonitos.

As etapas necessárias para instalar o Ganglia, como acontece com muitos softwares distribuídos, não são imediatamente óbvias. Este é um guia para colocá-lo em funcionamento no Ubuntu 12.04.

Mude seu diretório para $ HOME

cd $HOME

Primeiro, precisamos instalar os pacotes necessários para o Ganglia. Você precisa dos pacotes dev enquanto estamos construindo a partir do código-fonte; os pacotes dev trazem os arquivos de cabeçalho necessários para compilar o ganglia. Os pacotes dev extraem seus pacotes binários associados, no entanto, você só precisa especificar o seguinte para obter tudo o que precisa:

sudo apt-get update

sudo apt
-get install build-essential librrd2-dev libapr1-dev libconfuse-dev libexpat1-dev python-dev

Baixe o arquivo tar de ganglia.sourceforge.net no link abaixo: ganglia-3.0.07.tar.gz

http://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/

Extraia o tarball

tar -zxvf ganglia-3.0.7.tar.gz

Instalando Gmond e Gmetad


cd ganglia-3.0.7

./configure --with-gmetad

make


sudo make install

Executando front-end da web


sudo apt-get install apache2 php5-mysql libapache2-mod-php5 rrdtool

sudo cp
-r ganglia-3.0.7/web /var/www

sudo mkdir
/var/www/ganglia

sudo mv
/var/www/web /var/www/ganglia

A primeira etapa é gerar um arquivo de configuração padrão e personalizá-lo para o seu site.

sudo mkdir /etc/ganglia

sudo gmond
--default_config > /etc/ganglia/gmond.conf

sudo ln
-s /etc/ganglia/gmond.conf /etc/gmond.conf

Abra /etc/ganglia/gmond.conf e altere as linhas:

cluster {
name
= "unspecified"
owner
= "unspecified"
latlong
= "unspecified"
url
= "unspecified"
}

para valores adequados para o seu sistema. Altere o nome e o proprietário do cluster

cluster {
name
= "HadoopCluster"
owner
= "localhost"
latlong
= "unspecified"
url
= "unspecified"
}

Para executar o gmond, você precisa usar o sudo. Gmond irá deseamonizar automaticamente assim que for iniciado.

sudo gmond

Você pode usar o ps para testar se o aplicativo está em execução.

ps aux | grep gmond

Ouput será parecido assim

nobody   24069  3.1  0.7   4304  1872 ?        Ss   15:45   0:00 gmond
hadoop
24071 0.0 0.2 3004 756 pts/0 R+ 15:45 0:00 grep gmond

Por fim, abra a porta que gmond escuta com telnet para verificar se ele está produzindo saída nessa porta.

telnet localhost 8649

Você deve obter um fluxo de XML impresso na janela do terminal.

Se o daemon não for executado com êxito, você pode passar o sinalizador -d 1 para forçá-lo a ser executado em primeiro plano e imprimir mensagens de erro.


Executando Gmetad


Gmetad também precisa de um arquivo de configuração escrito. Existe uma configuração padrão no pacote fonte, que precisa ser movida para /etc/ganglia/gmetad.conf.

sudo cp gmetad/gmetad.conf /etc/ganglia/gmetad.conf

sudo nano
/etc/ganglia/gmetad.conf

Remova o comentário / altere as seguintes linhas:

data_source "HadoopCluster"  localhost 
gridname
"Grid"

sudo ln
-s /etc/ganglia/gmetad.conf /etc/gmetad.conf

Abra /etc/ganglia/gmetad.conf e altere o usuário sob o qual ele é executado para “nobody”. Em seguida, o diretório para Gmetad armazenar seus arquivos rrd precisa ser criado.

sudo mkdir -p /var/lib/ganglia/rrds/
sudo chown
-R nobody /var/lib/ganglia/rrds/

Em seguida, inicie o gmetad no modo de depuração para ter certeza de que funciona. Novamente, -d 1 força o programa a ser executado em primeiro plano.

sudo gmetad -d 1

Se você abrir o front-end da Web do Ganglia novamente, ele deve funcionar (http: // <hostname> / ganglia /). Se não houver gráficos, você pode ter esquecido de instalar o rrdtool.

Depois de ter certeza de que tudo está funcionando, você pode matar o gmetad e reiniciá-lo, permitindo que ele desamonize:

sudo gmetad

Finalmente, execute algum trabalho em seu cluster para ter certeza de que o ganglia está monitorando-o corretamente!

Ainda não escrevi scripts de inicialização para Ganglia. Se alguém tiver, adoraria ter uma cópia.! 🙂