Blog de la Comunidad de PHD 2014 Consultores - Big Data e Inteligencia de Negocios.

www.phd2014consultores.com

miércoles, 23 de abril de 2014

Mini Proyecto de Playlist, Parte 1



Mini Class Project (Linux)

            El Class Project consiste en una aplicación web de Playlist. Se ejecuta con una versión independiente del servidor de aplicaciones Jetty, y no necesita un servidor externo para ejecutarlo. Una vez que se esté ejecutando, podemos visitar la aplicación usando un navegador web.

  1. Descomprimimos el archivo session1.zipen “/home/<nombre_usuario>/Desktop/Laboratorios/”. Luego vamos al subdirectorio “target”.

$> cd /home/<nombre_usuario>/Desktop/Laboratorios/session1/target

  1. En el directorio se encuentra el archivo “playlist-1.0-SNAPSHOT.jar”que contiene una clase principal que hace una llamada StartJetty. Además todas las dependencias de bibliotecas necesarias están el directorio “lib”.

  2. Para ejecutar el programa:

$> java -cp 'playlist-1.0-SAPSHOT.jar:lib/*' StartJetty

La salida debería ser la siguiente:

0 [main] INFO StartJetty  - Web Resources Directory: jar:file:/home/luiscarl/Escritorio/Laboratorios/session1/target/playlist-1.0-SNAPSHOT.jar!/webapp
464 [main] INFO org.eclipse.jetty.server.Server  - jetty-8.1.12.v20130726
1374 [main] INFO org.eclipse.jetty.server.AbstractConnector  - Started SelectChannelConnector@0.0.0.0:8080

  1. Visitamos la aplicación Playlist en el navegador web introduciendo la dirección http://localhost:8080/playlist. Ésta se conectará a Cassandra e imprimirá información de clúster.






5. Si Cassandra no se está ejecutando, o no se pudo realizar la conección, se arrojará la excepción: NoHostAvailableException. Debemos iniciar Cassandra y refrescar el navegador.



Ejercicio #4: Abriendo el Proyecto en Eclipse

            Una vez instalado el eclipse, debemos seguir los siguientes pasos:

  1. Instalamos MAVEN. Para eso descomprimimos el archivo “apache-maven-3.2.1-bin.tar.gz” en el directorio “/home/<nombre_usuario>/app/”.


$> sudo cp -r /home/<nombre_usuario/Downloads/apache-maven-3.2.1-bin.tar.gz /home/<nombre_usuario/app/
$> sudo tar -xvzf /home/<nombre_usuario>/app/apache-maven-3.2.1-bin.tar.gz
$> sudo rm /home/<nombre_usuario>/app/*.tar.gz

  1. Configuramos el PATH:

$> PATH=/home/<usuario>/app/apache-maven.3.2.1/bin:$PATH ; export PATH

  1. Verificamos la instalación

$> mvn -version
Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-14T13:07:52-04:30)
Maven home: /home/luiscarl/app/apache-maven-3.2.1
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: /usr/local/java/jdk1.7.0_51/jre
Default locale: es_ES, platform encoding: UTF-8
OS name: "linux", version: "3.11.0-18-generic", arch: "amd64", family: "unix"

  1. Antes de continuar copiamos la carpeta “session1” en el directorio “/home/<nombre_usuario>/Desktop/Laboratorios/” y luego ejecutamos:

$> cd /home/<nombre_usuario>/Desktop/Laboratorios/session1/
$> mvn eclipse:eclipse

  1. Luego Abrimos el eclipse e importamos el proyecto:

$> cd /home/<nombre_usuario>/app/eclipse/
$> ./eclipse &


  1. Para importar el proyecto hacemos click: “File → New → Java Project”.
    Debemos seleccionar el directorio:
    “/home/<nombre_usuario>/Desktop/Laboratorios/session1”.
    Y colocar “session1” como nombre del proyecto.



  2. Sin embargo, Maven no encuentra las dependencias. Para solucionar esto se debe utilizar una variable de classpath que se debe añadir al workspace de eclipse. Para ello hacemos clic en: “Windows → Preferences” y en la caja de búsqueda escribimos “classpath” para encontrar la opción.





  1. Click en “New” y como ruta añadimos la del repositorio local: “/home/<nombre_usuario>/.m2/repository”.






  2. Al hacer clic en ok, eclipse volverá a compilar el proyecto y ya podrá encontrar las dependencias.

  3. Ya se puede ver el proyecto sin errores. En el archivo “CassandraData.java” podemos revisar el método que crea el objeto de Sesión con Cassandra. El objeto se guarda en una variable static y se puede manejar la sesión con comodidad.



  1. Ahora se puede hacer debug del proyecto y familiarizarse con él. Clic derecho sobre el proyecto y “Debug As → Java Application”. Seleccionamos el nombre de la clase principal “StartJetty”. Luego vamos a http://localhost:8080/playlist. en nuestro navegador.





miércoles, 9 de abril de 2014

Primeros pasos con Apache Cassandra en Linux



Primeros pasos con Apache Cassandra en Linux

1.      Podemos descargar Apache Cassandra de la página oficial http://cassandra.apache.org/download/ o usar la distribución dsc que se encuentra en http://planetcassandra.org/. En los próximos ejercicios usaremos la distribución dsc ya que incluye: Apache Cassandra, OpsCenter Community, ejemplos de aplicaciones y Bases de Datos, y la utilidad CQL.


2.      Descargamos el archivo “dsc-cassandra-2.0.6-bin.tar.gz”.

3.      Creamos un directorio “/home/<nombre_usuario>/app/” para las aplicaciones a utilizar en este curso. Copiamos el archivo en el directorio creado. Se debe utilizar el comando sudo para obtener permisos de súper usuario.

$> sudo mkdir /home/<nombre_usuario>/app
$> cd /home/<nombre_usuario>/Downloads
$> sudo cp -r dsc-cassandra-2.0.6-bin.tar.gz /home/<nombre_usuario>/app/
$> cd /home/<nombre_usuario>/app/


4.      Descomprimimos el archivo y ejecutamos el comando “ls”. Debería existir el directorio “dsc-cassandra-2.0.6” y el archivo “dsc-cassandra-2.0.6-bin.tar.gz”. Borramos el archivo.

$> sudo tar -xvzf dsc-cassandra-2.0.6-bin.tar.gz
$> ls
dsc-cassandra-2.0.6
     dsc-cassandra-2.0.6-bin.tar.gz
$> rm *.tar.gz


5.      Luego insertamos:

$> cd dsc-cassandra-2.0.6/bin
$> sudo ./cassandra

Si nos responde con algún error de memoria ejecutamos:

$> sudo apt-get install libjna-java

Y reiniciamos el sistema.

6.      Ejecutamos el cliente. Tenemos dos opciones:

$> sudo ./cassandra-cli

Ó

$> sudo ./cqlsh

Este se conectará automáticamente a la instancia de Cassandra en localhost. Deberíamos ver algo como lo siguiente:
Connected to Test Cluster at localhost:9160.
[cqlsh 4.1.1 | Cassandra 2.0.6 | CQL spec 3.1.1 | Thrift protocol 19.39.0]
Use HELP for help.
cqlsh>


7.      Utilizamos la herramienta cqlsh para examinar el sistema de tablas de la base de datos. Es importante familiarizarse con la herramienta. Se puede utilizar el comando HELP o la función de auto completar como guía.
La herramienta permite la escritura en minúsculas, así como también ejecutar comandos internos y CQL.


8.      Si Cassandra no está en ejecución se obtendrá la siguiente salida:

Connection error: Could not connect to localhost:9160


9.      Veamos la conexión:

cqlsh> show host;

10.  Usemos auto completar:

cqlsh> select * from system.<presione tabulador>
 
Obtendremos:

"IndexInfo"              local                    schema_columns "NodeIdInfo"             paxos                    schema_keyspaces batchlog                 peer_events              schema_triggers compaction_history       peers                    sstable_activity compactions_in_progress  range_xfers             
hints                    schema_columnfamilies

Escribimos cualquiera de las opciones (podemos presionar tabulador a medida que vamos escribiendo y así auto completar). Luego punto y coma <;> y presionamos <Enter>.