quarta-feira, 10 de dezembro de 2014

Instalação Cassandra no Linux CentOS


Baixar a versão mais nova do Cassandra


Neste momento a versão mais nova é:
http://www.apache.org/dyn/closer.cgi?path=/cassandra/2.0.2/apache-cassandra-2.0.2-bin.tar.gz

Comandos:

$ wget http://ftp.unicamp.br/pub/apache/cassandra/2.0.2/apache-cassandra-2.0.2-bin.tar.gz
$ tar -zxvf apache-cassandra-2.0.2-bin.tar.gz
$ sudo cp -r apache-cassandra-2.0.2 /usr/local
$ cd /usr/local/apache-cassandra-2.0.2/config

Abrir arquivo:

$ vim cassandra.yaml

verificar diretórios das variáveis dentro do arquivo:

-data_file_directories
-commitlog_directory
-saved_caches_directory

Criar então os diretórios correspondentes:

$ sudo mkdir -p /var/lib/cassandra/data
$ sudo mkdir -p /var/lib/cassandra/commitlog
$ sudo mkdir -p /var/lib/cassandra/saved_caches
$ sudo mkdir -p /var/log/cassandra

Dar as permissões para o usuário:

usuário atual:
$ sudo chown -R $USER:$GROUP /var/lib/cassandra
$ sudo chown -R $USER:$GROUP /var/log/cassandra

ou usuário específico:
$ sudo chown -R userx:user-groupx /var/log/cassandra/
$ sudo chown -R userx:user-groupx /var/lib/cassandra/

Para que o Cassandra aceite conexões de outros computadores modifique o arquivo:
/usr/local/apache-cassandra-2.0.2/conf/cassandra.yaml na variável rpc_address mudar de localhost para 0.0.0.0

Inicia ao cassandra em Foreground (para testarmos)
$ /usr/local/apache-cassandra-2.0.2/bin/cassandra -f

Inicia ao cassandra em Background
$ /usr/local/apache-cassandra-2.0.2/bin/cassandra

Para matar o processo:

$ pkill -f CassandraDaemon

Instalando e configurando PIP e PyCassa do Python


O python já está instalado no Linux. No caso do Cent OS provavelmente o PIP não estará instalado.

Para instalar execute:

$ easy_install pip

Na máquina de desenvolvimento (Windows) instalar primeiramente o Python 2.7 - Atenção para a versão
(Download e intalar http://www.python.org/getit/)

Abrir o CMD e executar

$ python --version

Se não encontrar o python.exe então deverá adiciona-lo no path do windows o caminho geralmente é
C:\Python27\

Depois disso, basta instalar o Setuptools e o PIP. Links abaixo:

Setuptools
http://www.lfd.uci.edu/~gohlke/pythonlibs/#setuptools

PIP
http://www.lfd.uci.edu/~gohlke/pythonlibs/#pip

Adicionar o caminho abaixo no path do Windows:
C:\Python27\Scripts

Configurar proxy para utilizar o PIP como instalador:

Caso esteja em uma empresa/lugar onde seja necessário configurar o proxy, execute o comando abaixo no Prompt do DOS trocando pelos dados corretos de configuração do proxy usuário e senha:

set HTTP_PROXY=http://username:password@proxyserver.domain.com
set HTTPS_PROXY=https://username:password@proxyserver.domain.com

Ou ainda,

set HTTP_PROXY=http://SeuUsuário:suaSenha@EndereçoIp:Porta
set HTTPS_PROXY=https://SeuUsuário:suaSenha@EndereçoIp:Porta

Intalar o PyCassa


$ pip install pycassa


Links adicionais:

Mais detalhes em:
http://pycassa.github.io/pycassa/installation.html

Exemplos de como utilizar o PyCassa
http://pycassa.github.io/pycassa/tutorial.html

Instalação Hadoop e Mahout no Linux CentOS

Baixar a versão mais nova do Hadoop


http://ftp.unicamp.br/pub/apache/hadoop/common/
Neste momento a versão mais nova está no link: http://ftp.unicamp.br/pub/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz

Comandos:

$ wget http://ftp.unicamp.br/pub/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz
$ tar -zxvf hadoop-1.2.1.tar.gz
$ sudo cp -r hadoop-1.2.1/ /usr/local

Instalar o Java SDK


No Linux CentOS podemos usar o yum. Na versão atual do Java SDK o

Comandos: 

$ yum install java-1.7.0-openjdk-devel
ou
$ yum install java-devel

Baixar a versão mais nova do Mahout

http://ftp.unicamp.br/pub/apache/mahout/
Neste momento: http://ftp.unicamp.br/pub/apache/mahout/0.8/mahout-distribution-0.8.tar.gz

Comandos:

$ wget http://ftp.unicamp.br/pub/apache/mahout/0.8/mahout-distribution-0.8.tar.gz
$ tar -zxvf mahout-distribution-0.8.tar.gz
$ sudo cp -r mahout-distribution-0.8/ /usr/local

Adicionar as linhas abaixo no Arquivo ~/.bachrc:

export HADOOP_PREFIX=/usr/local/hadoop-1.2.1
export PATH=$PATH:$HADOOP_PREFIX/bin
export MAHOUT_HOME=/usr/local/mahout-distribution-0.8
export PATH=$PATH:$MAHOUT_HOME
export JAVA_HOME=/usr/lib/jvm/java-1.6.0

Configurando o ssh para conexão de um servidor no outro sem pedir a senha:

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

Configurando o Cluster

No master:
/etc/hosts adicionar:
192.168.0.123  master
192.168.0.131  slave1
192.168.0.132  slave2

$HADOOP_HOME/conf/master adicionar:
master

$HADOOP_HOME/conf/slaves adicionar:
master
slave1

Em todas as máquinas:

conf/core-site.xml

<property>
<name>fs.default.name</name>
<value>hdfs://master:54310</value>
<description>The name of the default file system. A URI whose scheme and authority determine the FileSystem implementation. The uri's scheme determines the config property (fs.SCHEME.impl) naming the FileSystem implementation class. The uri's authority is used to determine the host, port, etc. for a filesystem.</description>
</property>

conf/mapred-site.xml

<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
<description>The host and port that the MapReduce job tracker runs at. If "local", then jobs are run in-process as a single map and reduce task.
</description>
</property>

conf/hdfs-site.xml

Atenção: <value>2</value> abaixo refere-se a quantidade de nós disponíveis.

<property>
<name>dfs.replication</name>
<value>2</value>
<description>
Default block replication. The actual number of replications can be specified when the file is created. The default is used if replication is not specified in create time.
</description>
</property>

Logo depois executar

Comando:

$ start-all.sh

Links:

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/
http://www.higherpass.com/linux/Tutorials/Installing-And-Using-Hadoop/1/
http://wiki.apache.org/hadoop/PoweredBy

terça-feira, 27 de maio de 2014

GEM: Tutorial Rápido - Instando o Rails

Para saber o quê é Gem vá ao site Ruby Gems. Pra ficar claro a importância da coisa. O próprio Rails é uma Gem.

Tem o funcionamento muito parecido com o Homebrew ou ainda com o apt-get. Ou seja, a ideia é facilitar.

Antes de tudo, atualize-o. No terminal:

gem update --system

Depois disso instale o Bundler digitando:

gem install bundler

Hora de atualizar o rbenv. Se não sabe o que é, pare esse tutorial agora é leia esse e instale o rbenv antes de tudo isso aqui.

No terminal:

rbenv rehash

Instalando o Rails:

gem install rails --no-ri --no-rdoc

Atualize o rbenv:

rbenv rehash

Verifique a versão do Rails:

rails -v

Detalhes, no momento da instalação do Rails, pode-se escolher uma versão especifica, basta adicionar mais um argumento. Ex.:

gem install rails --no-ri --no-rdoc --version=4.0.0

Fácil! Seja Feliz!


segunda-feira, 26 de maio de 2014

RBENV: Tutorial Rápido

Esse tutorial considera o OSX. Neste caso, use Homebrew!

No terminal:

brew install rbenv

Depois:

brew install ruby-build 

Edite o .bash_profile e no final do arquivo adicione a seguinte linha:

eval "$(rbenv init -)"

Salve o arquivo, para que a nova configuração seja carregada, digite no terminal:

source ~/.bash_profile

Pronto. Vá no site do Ruby e procure a versão stable mais recente. Neste momento é a versão 2.1.2. Então no terminal:

rbenv install 2.1.2

Depois:

rbenv rehash 

Para alterar mudar de uma versão para outra utilizando o RBENV basta executar rbenv global [versão] para global existem outras opções; procure na documentação.  Então:

rbenv global 2.1.2

Para verificar a versão atual do Ruby:

ruby -v

Para listar as versões disponíveis:

rbenv versions

Agora você pode gerenciar qual a versão do Ruby será a principal e alternar de uma para outra utilizando o RBENV. Lembre-se de sempre executar o rbenv rehash sempre que instalar uma nova versão do Ruby ou uma nova Gem no ambiente selecionado.

Seja Feliz!

sábado, 24 de maio de 2014

Vagrant: Tutorial Rápido

Algumas notas sobre Vagrant utilizando o OSX
No terminal digite:

vagrant box add hellobits http://files.hellobits.com/vagrant/hellobits-trusty64-virtualbox.box

  • Instalar plugin vagrant-vbguest
No terminal digite:

vagrant plugin install vagrant-vbguest

  • Transformar o diretório do projeto em ambiente Vagrant
No terminal, vá ao diretório de seu projeto e digite:

vagrant init hellobits

Depois edite o arquivo Vagrantfile que foi criado adicionando a linha abaixo à função.

config.vm.network :forwarded_port, guest: 3000, host: 3000

Isso vai redirecionar a porta 3000 (Caso esteja brincando com o Rails)
  • Iniciar o novo ambiente (Iniciar a máquina)
No terminal digite:

vagrant up

  • Entrar no ambiente criado (Entrar na máquina)

vagrant ssh

Ao terminar estará dentro do ubuntu.

Caso ocorra o erro abaixo:

Talvez dê um erro no vagrant up. Algo como:
...Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was...
Neste caso, dê o comando:

vagrant ssh

Depois, já dentro do ubuntu execute:

sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions

Para sair do ubuntu execute   

Exit

logo depois:

vagrant reload

Depois disso deve estar tudo ok:

vagrant ssh

Tudo que criar na pasta que escolheu para ser a sua pasta de projeto será visto dentro do ubuntu se for modificado no ubuntu é modificado também no OSX.

Ou seja, está rodando um ubuntu dentro do OSX, e pode levantar quantas máquinas quiser. Se algo der errado basta dar um:

$ exit 
$ vagrant destroy
$ vagrant init hellobits
$ vagrant up
$ vagrant ssh

e começar tudo novamente, lembre-se de manter o seu projeto sempre em um repositório de controle de versão. (Github por exemplo)
  • Para dar um shutdown no vagrant?

vagrant halt

Bom trabalho e seja feliz.

domingo, 16 de setembro de 2012

MIME type, 1982

O padrão MIME types foi criado em 1982, caramba eu tinha quase 1 ano de idade. E olha essa citação:

"And by the way, when people would ask me, 'Why do you care so much about putting media into e-mail?' I always said because someday I'm going to have grandchildren and I want to get pictures of them by e-mail. And people's reaction was to laugh and laugh." Ned Freed

É por causa de gente assim, gente que não fica feliz com qualquer coisa. Que pega o problema pra resolver e resolve. Alias, neste caso é até "pior"! O problema nem existia. Em suma, esses visionários fazem toda a diferença no mundo.

Seja Feliz!