Apache Cassandra es un sistema de gestión de bases de datos distribuido, NoSQL, libre y de código abierto. Su principal uso es almacenar datos de gran tamaño en grupos descentralizados y con una alta disponibilidad. Los datos se distribuyen a través de un conjunto de servidores por lo tanto de ahí su alta disponibilidad y sus casi cero fallos.
Vemos como instalar Apache Cassandra en un servidor CentOS 7 o derivados (es necesario el uso de Oracle Java, por tanto lo primero que realizaremos es instalarlo).
Instalamos Java:
1 |
wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm" |
1 |
yum -y localinstall jdk-8u131-linux-x64.rpm |
Comprobamos que se instalo correctamente.
1 |
java -version |
El resultado…
1 2 3 |
java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode) |
Comprobamos si se estableció correctamente la variable del entorno JAVA_HOME.
1 |
echo $JAVA_HOME |
Si la salida de java_home es null o en blanco, debemos editar en archivo .bash_profile.
1 |
nano ~/.bash_profile |
y agregamos los export al final del archivo.
1 2 |
export JAVA_HOME=/usr/java/jdk1.8.0_131/ export JRE_HOME=/usr/java/jdk1.8.0_131/jre |
guardas y cierras nano.
Ahora ejecuta…
1 |
source ~/.bash_profile |
y con esto el problema quedo resuelto, puedes ejecutar de nuevo el echo y veras que ahora si que funciona.
1 |
echo $JAVA_HOME |
1 |
/usr/java/jdk1.8.0_131/ |
ya podemos instalar apache cassandra.
Instalar Apache Cassandra:
Agregamos el repositorio.
1 |
nano /etc/yum.repos.d/cassandra.repo |
Copia y pega.
1 2 3 4 5 6 |
[cassandra] name=Apache Cassandra baseurl=https://www.apache.org/dist/cassandra/redhat/311x/ gpgcheck=1 repo_gpgcheck=1 gpgkey=https://www.apache.org/dist/cassandra/KEYS |
Guarda el repo e instalamos cassandra.
1 |
yum -y install cassandra |
1 |
systemctl daemon-reload |
1 |
systemctl start cassandra |
1 |
systemctl enable cassandra |
Comprobamos que todo funciona correctamente:
1 |
nodetool status |
Ejemplo de salida:
1 2 3 4 5 6 |
Datacenter: datacenter8 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 127.0.0.1 148.29 KiB 256 100.0% a3njuif49-1l70-414e-3efc-de45gth7892e rack4 |
Si no es tu caso y nodetool status rechaza la conexión…
1 |
ConnectException: 'Connection refused (Connection refused)' |
Sigue los siguientes pasos:
1 |
nano /etc/cassandra/default.conf/cassandra-env.sh |
busca la siguiente linea…
1 |
JVM_OPTS="$JVM_OPTS -Djava.adminserver.server.hostname=<public name>" |
y modifica <public name> por la ip localhost 127.0.0.1.
1 |
JVM_OPTS="$JVM_OPTS -Djava.adminserver.server.hostname=127.0.0.1" |
guarda y reinicia cassandra:
1 |
systemctl restart cassandra |
Apache cassandra ya esta instalado y corriendo en nuestro server.