Categories
Bigdata General NoSQL

Construye tu propio Cloud Storage con Riak CS

Riak CS es una solución Open Source, desarrollada por Basho, que te permite montar tu propio servicio de almacenamiento en la nube, de manera similar a los servicios S3 de Amazon.

Riak CS permite crear tanto nubes públicas como privadas de almacenamiento y está basado en una base de datos de código abierto NoSQL.
Los principales puntos fuertes de la solución son:

  • Almacenamiento tolerante a fallos en alta disponibilidad.
  • Soporte para almacenar objetos de gran tamaño.
  • API compatible-S3 y autenticación.
  • Multi-tenancy y presentación de informes por usuario.
  • Modelo operativo simple para añadir capacidad, altamente escalable.
  • Estadísticas sólidas para el seguimiento y métricas.

En la web de Basho, disponemos de documentación especifica (Riak CS Fast Track) para construir un entorno virtual rápidamente utilizando Vagrant Chef y así poder probar y testear la solución.

Una vez desplegado, simplemente necesitaremos un cliente de S3, por ejemplo: s3cmd, para interaccionar con el entorno.
Interaccionar con Riak CS a través de s3cmd

  • Crear un bucket de pruebas
s3cmd mb s3://test-bucket
  • Listar el contenido de un bucket
s3cmd ls s3://test-bucket
  • Subir un fichero al bucket
dd if=/dev/zero of=test_file bs=1m count=2 # Create a test file
s3cmd put test_file s3://test-bucket
  • Obtener o descargar un fichero del bucket
s3cmd get s3://test-bucket/test_file

En definitiva, Riak CS se presenta como una buena alternativa al Object Storage (Swift) de OpenStack.
En la web de Basho se puede consultar documentación adicional del proyecto, tanto de Riak como de Riak CS, así como otros proyectos creados a partir de Riak:

 
 

Categories
Bigdata General Guide In detail

Como configurar una replicación Master-Slave en MySQL Percona 5.5

image
En MySQL (no Percona) si queremos realizar un servidor de replicación (Slave) nos encontramos que antes de realizar el backup, debemos bloquear la escritura en las tablas, apuntar la posición del log binario, realizar el backup y habilitar nuevamente la escritura en las tablas. Esto se tiene que realizar así, porque si durante el proceso de backup se escribe algo en una tabla, la relación entre la posición del log binario que hemos apuntado y el contenido del backup no será correcto y si usáramos ese backup para realizar la replicación, la base de datos slave seria diferente a la base de datos master. El problema de lo que acabo de citar, es que si queremos hacer esto con una base de datos de una web en producción, deberemos poner la web en mantenimiento y según el tamaño de la base de datos pueden llegar a ser horas en las que la web no estará operativa y hay situaciones en las que no podemos permitirnos ese lujo (perdidas económicas). Para evitar pasar por este problema, si disponemos de un servidor de bases de datos con Percona MySQL 5.5, podemos realizar esta tarea de forma muy sencilla y sin necesidad de bloquear la escritura en las tablas en el proceso de backup, gracias a una herramienta de Percona llamada ‘innobackupex’, que lo que hace es que durante el proceso de backup cree un fichero independiente con todas las transacciones que se realizan durante el proceso, y una vez termina, integra en el backup esas transacciones y finalmente nos genera la posición del log binario correcta. Para realizar este proceso, simplemente deberemos seguir los siguiente pasos:
DATOS INICIALES QUE NECESITAMOS (IP O HOSTNAME DE AMBOS SERVIDORES)

MASTER_HOST='m.m.m.m'
SLAVE_HOST='s.s.s.s'

PASOS A REALIZAR EN EL SERVIDOR BD MASTER
1. Accedemos vía SSH y nos cercioramos de que la hora del servidor es la correcta
2. Instalamos el paquete ‘percona-xtrabackup’ (forma parte del mismo repositorio de donde hemos descargado Percona MySQL) que nos proporcionará la aplicación “innobackupex” que usaremos para realizar el proceso:

yum install percona-xtrabackup

3. Creamos el usuario en Percona MySQL, que realizará la réplica de la BD:

mysql -uroot -p******
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO repl_user_name@'s.s.s.s' IDENTIFIED BY 'pass_repl_user';
mysql> exit

4. Nos anotamos los valores que hemos usado en la creación del usuario:

MASTER_USER='repl_user_name'
MASTER_PASSWORD='pass_repl_user'

5. Editamos el fichero de configuración de Percona MySQL (my.cnf) con nuestro editor favorito (en este caso vim):

vim /etc/my.cnf

6. Añadimos los siguientes valores (o modificamos las variables si ya existen):

log-bin=mysql-bin
server_id=1

7. Reiniciamos el servicio de Percona MySQL, para aplicar los cambios que hemos realizado en el fichero de configuración.

/etc/init.d/mysql restart

PASOS A REALIZAR EN EL SERVIDOR BD SLAVE
1. Accedemos vía SSH y nos cercioramos de que la hora del servidor es la misma que la del servidor master
2. Instalamos el paquete ‘percona-xtrabackup’:

yum install percona-xtrabackup

3. Editamos el fichero de configuración de Percona MySQL (my.cnf) con nuestro editor favorito (en este caso vim):

vim /etc/my.cnf

4. Añadimos los siguientes valores (o modificamos las variables si ya existen):

server_id=2
relay_log=mysql-relay-bin
log_slave_updates=1
read_only=1

5. Reiniciamos el servicio de Percona MySQL, para aplicar los cambios que hemos realizado en el fichero de configuración:

/etc/init.d/mysql restart

PASOS A REALIZAR EN EL SERVIDOR BD MASTER
1. Realizamos backup de todas las bases de datos con la aplicación innobackupex al directorio “backup” que hemos creado previamente:

innobackupex --defaults-file=/etc/my.cnf --user=root --password=password_del_usuario_root --export /root/backup/

2. Al terminar el backup, veremos el siguinte texto, del que anotaremos los valores de MASTER_LOG_FILE y MASTER_LOG_POS:

'mysql-bin.000000', position 000
MASTER_LOG_FILE='mysql-bin.00000'
MASTER_LOG_POS=000

3. Comprimimos el directorio de backup que se ha creado (nombre del directorio con la fecha y hora) en formato tar.gz:

tar czvf 2014-xxxxxxx.tar.gz /root/backup/2014-xxxxxxx

4. Eliminamos el directorio que ya hemos comprimido (para liberar espacio):

rm -Rf /root/backup/2014-xxxxxxx/

5. Copiamos por SSH el backup comprimido al servidor BD Slave (a un directorio previamente creado):

scp 2014-xxx.tar.gz root@s.s.s.s:/root/backup/.

PASOS A REALIZAR EN EL SERVIDOR BD SLAVE
1. Accedemos al directorio donde hemos copiado el backup comprimido

cd /root/backups/

2. Descomprimimos el backup:

tar xzvf 2014-xxx.tar.gz

3. Realizamos el paso previo a la restauración del backup. Especificamos la memoria que destinaremos al proceso:

innobackupex --use-memory=1G --apply-log /root/backup/2014-xxx

4. Paramos el servicio de Percona MySQL:

/etc/init.d/mysql stop

5. Eliminamos todo el contenido del directorio de mysql:

rm -Rf /var/lib/mysql/*

6. Restauramos el backup:

innobackupex --copy-back /root/backup/2014-xxx

7. Restablecemos los permisos al directorio de Percona MySQL:

chown -R mysql:mysql /var/lib/mysql

8. Reiniciamos el servicio de Percona MySQL, para que cargue los datos restaurados con el backup

/etc/init.d/mysql start

9. Configuramos los datos del servidor master, con los datos previamente recogidos (el valor de MASTER_LOG_POS va sin comillas):

mysql -uroot -p******
mysql> CHANGE MASTER TO MASTER_HOST='m.m.m.m', MASTER_USER='repl_user_name', MASTER_PASSWORD='pass_repl_user', MASTER_LOG_FILE='mysql-bin.000', MASTER_LOG_POS=000;

10. Comenzamos la replicación:

mysql> START SLAVE;

11. Vemos el estado de la réplica, y nos fijamos en el valor de “Second Behind Master”. Cuando llegue este valor a cero, la replicación estará finalizada:

mysql> SHOW SLAVE STATUS\G;
Categories
Bigdata General Guide In detail NoSQL OpenSource Social

Datos en formato Grafo (Parte II – Web Semántica o Linked Data)

La Web Semántica también llamada Web 3.0 o Linked Data, es una funcionalidad de la Web que permite encontrar, compartir y combinar la información más fácilmente. Es una iniciativa de Tim_Berners-Lee (director del W3C e inventor de la Web) para permitir que la información que reside en la red sea accesible y “comprensible” no sólo por los humanos, sino también por las máquinas. Es una revolución tecnológica que está cambiando la forma de entender la Web y obligando a que todo evolucione: los buscadores, los navegadores, el desarrollo y el SEO.  Aquí es donde aparecen actores que quizás no les interese esta evolución.

La Web Semántica propone nuevas técnicas y paradigmas para la representación del conocimiento que faciliten la localización, compartición e integración de recursos a través de la Web. Estas nuevas técnicas se basan en la introducción de conocimiento semántico explícito que describa y/o estructure la información y servicios disponibles, de forma apropiada de ser procesada automáticamente por un software. La Web Semántica mantiene los principios que han hecho de la web actual un éxito, como son los principios de descentralización, compartición, compatibilidad, y la apertura al crecimiento.

Hay artículos que mencionan el fin de los grandes buscadores como Google si se aplicara la Web Semántica en toda la red. En este contexto un problema clave es alcanzar un entendimiento entre usuarios, desarrolladores y programas de muy diverso perfil. Uno de los ejes principales de esta visión es la noción de ontología, que viene del campo de la Inteligencia artificial, como herramienta clave para alcanzar dicho entendimiento entre las partes que participan de este conocimiento común.

Esquema de la Web Semántica

grafic1

Para entender la Web Semántica en su totalidad tenemos que entender las partes de RDF, OWL y el lenguaje de consultas sobre estos formatos denominados SPARQL. Como se puede ver en el siguiente esquema, un XML es un subconjunto RDF, como un RDF es un subconjunto de OWL. Vienen a ser un OWL que incluye las propiedades del RDF y el RDF incluya las propiedades del XML.

OWL, RDF y XML

grafic2

Comparación Web Actual con Web Semántica

En el gráfico se puede ver una comparativa de la Web Semántica con la Web actual, tal como se relacionan sus elementos entre ellas. El HTML tiene un tipo de relación simple llamada hipervínculo (HREF) que relaciona recursos (HTML) sin nombrar el tipo de relación, en cambio la Web Semántica tiene muchos tipos de relaciones entre distintos tipos de información, esta es una de las principales grandezas que tiene esta nueva tecnología.

grafic

Comparación generación Web actual con Web Semántica

Característica 1ª Generación 2ª Generación
Lenguaje principal HTML XML (RDF, OWL)
Forma y estructura Documentos no estructurados Documentos estructurados
Semántica Semántica implícita Etiquetado explícito (metadatos, web semántica)
Relación entre contenido y forma HTML = fusión de forma y contenido Estructura en capas de forma y contenido: XML + transformación (p.ej., XSL) a HTML, WML, PDF, u otros formatos
Editabilidad Documentos estáticos Documentos dinámicos
Descomponibilidad y recomponibilidad Sitios web monolíticos, independientes Bricolaje (agregación), sindicación, reasignación de contenido
Interactividad Medio de difusión unidireccional Web editable, bidireccional
Audiencias Para consumo humano Para humanos y ordenadores (p.ej., servicios web)
Control de producción Centralizado Descentralizado (peer-to-peer P2P)

Utilidad y ventajas de la Web Semántica

Para el fin de recuperar información, la Web semántica pretende la creación de una nueva forma de intercambio de datos que se fundamente en las representaciones de la información contenida en los recursos de la Web, de manera que puedan ser entendidos por las máquinas.

Se busca la mejora en la comunicación entre las máquinas y los humanos, reduciendo considerablemente la acción de estos segundos sobre los primeros. La forma de conseguirlo es dando a la Web un mayor significado, con lo cual se favorece la compartición, procesamiento y transferencia de información de forma sencilla.

La principal ventaja de la Web Semántica es recuperar información. Ésta permite al usuario dejar en manos del software, tareas de procesamiento o razonamiento de un determinado contenido. Por otra parte, el introducir significado a una Web mejora la eficacia de los buscadores, ya que facilita su tarea de estudio del documento. De esta manera, se puede afirmar que la Web Semántica facilita la localización de recursos; la comunicación entre programas y personas; y el procesamiento y manipulación de datos e información de manera automática en lugar de manualmente, como hasta ahora.

En conclusión, se intenta llegar a un estándar en esquematizar la información para poder poner la gran cantidad de información de la red en orden. Una mejor organización significa una mejor agilidad en moverse por la red. Además que se distribuye de forma más humana posible en comparación como se hace actualmente.

Algunos creen que la implementación de la nueva web será el fin de los grandes buscadores (ya que la web pasaría a ser descentralizada); otros que simplemente evolucionarán a mejor aunque tendremos más varias disponibilidades; o otros creen que habrán buscadores más temáticos y no tan generales. Lo más importante es que la libre circulación de la información dará mejores resultados.

Como ejemplos de casos prácticos actuales podemos encontrar:

  • Redes Sociales como Facebook, LinkedIn, Myspace, OpenSocial, etc.

  • Amarok y otros reproductores MP3 que tienen una base de datos de música en RDF.

  • Parecido a las redes sociales hay el buscador y reproductor musical Spotify, Last.fm. dónde el usuario, a partir de un grupo de música puede ir descubriendo grupos o músicas semejantes.

  • Hay experimentos como la Dbpedia.org que mapea toda la información de la Wikipedia para ser migrada a RDF. Otros como OntoWorld es un nuevo buscador desarrollado por MediaWiki. Hice pruebas con la DBPedia y busqué “Viajar+Joven” y me apareció Albergues (aquí la inteligéncia de que automáticamente relacionó Joven con viajes LowCost)

Antecedentes

Antes de entender la Web Semántica, hay que entender sus antecedentes y su evolución hacia la posible Web 3.0.

En el inicio del WWW (World Wide Web) teníamos la Web 1.0 donde todas las páginas eran estáticas, principalmente creadas con el lenguaje HTML, con unos buscadores muy limitados. La mayoría de contribución de la red eran Webs de corporaciones, identidades públicas y privadas. El usuario tenía muy limitada su participación en ellas lo que la convertía en una red unidireccional. Más tarde, se empezó con la creación de páginas personales estáticas. Posteriormente, el Web 2.0 revolucionó el WWW con la llegada de lenguajes como el PHP, Flash, Java, etc. Estos lenguajes permitieron desarrollar Webs dinámicas y multimedia. La web dinámica tiene como principal protagonista el usuario humano que escribe artículos en su blog o colabora en un wiki. En cambio, la web semántica orienta el protagonismo en agentes inteligentes que entiendan de lógica descriptiva en OWL; y concebida para que las máquinas hagan el trabajo de las personas a la hora de procesar la avalancha de información publicada en la Web. Con ella encontramos ya inteligencia artificial en la web.

No está aún del todo claro si la Web Semántica y la Web 3.0 son sinónimas. Se comenta que “Web 3.0” es aún un concepto demasiado abstracto para definirlo. La web 3.0 será una revolución, si como hemos comentado anteriormente; se logra una combinación efectiva entre la inclusión de contenido semántico en las páginas web y el uso de inteligencia artificial que saque partido de ella.

Podemos comprobar que el rápido desarrollo de la sociedad de la información, en concreto de las tecnologías implicadas, ha hecho posible la superación de muchas barreras. Por ejemplo: el almacenamiento de datos es un reto superado, la comunicación es también otro problema resuelto gracias a Internet. Entonces, ¿cuáles son los nuevos retos a superar? Según muchos, es la búsqueda de información y su integración.

El ejemplo más claro y más rápido que se puede encontrar está en Internet. A pesar de la gran cantidad de información que hay en la red, no se encuentra siempre lo que se busca y a veces se tarda mucho en encontrarlo. Los metadatos y las ontologías intentan mejorar estos inconvenientes, y la Web Semántica se caracteriza por incorporar básicamente éstos.

Con las ontologías se intenta encontrar un lenguaje común para describir varios temas. Una ontología combina varios esquemas en una estructura de datos, que contiene todas las entidades relevantes y sus relaciones dentro del dominio. La ontología es usada para una variedad de propósitos, incluyendo el razonamiento inductivo, la clasificación, y una variedad de técnicas de resolución de problemas. Las ontologías se usan para establecer conceptos y relaciones, pudiendo ser compartidas por todos.

Dar significado a los datos ya disponibles en Internet es una tarea que se resuelve añadiendo nuevos datos a los datos previos. Estos “meta-datos” expresan la semántica de dicha información, haciendo referencia a elementos de una ontología (compartida por todos).

La idea de la web semántica es establecer un marco, a nivel mundial, capaz de abarcar tareas como la búsqueda, teniendo en cuenta la semántica y aportar esa tecnología de integración. Así, Berners Lee, a través del consorcio W3C, pretende establecer una serie de estándares lo suficientemente consensuados como para que sean globalmente utilizados. Por ello han planteado una arquitectura general:

Las siguientes diapositivas muestran un posible camino para la evolución de Internet. En éstas, ya se habla de la Web 4.0, pero lo curioso es que aún no se ha definido ni la Web 3.0. Se pueden comprobar los antecedentes de la Web Semántica, un posible después y su línea de evolución. Claramente son unos datos muy subjetivos y no oficiales, pero da una idea de los antecedentes previos y lo que puede llegar en un futuro. Se puede comprobar que cada tecnología viene acompañada de una serie de componentes e ideas que la forman.

Categories
Bigdata General NoSQL OpenSource Social

Datos en formato Grafo (NoSQL) – 1a Entrega

Actualmente las base de datos NoSQL están en auge (http://nosql-database.org). Podemos encontrar una gran diversidad según su arquitectura; las más utilizadas son del tipo Key-Value (como Cassandra o Voldemort) 
o las documentales (por ejemplo MongoDB y CouchDB). Aunque existen otras no tan conocidas como las que os queremos presentar; BBDD NoSQL basadas en grafos o tripletas como DEX y Neo4j. (http://stackoverflow.com/questions/5689091/how-to-choose-which-type-of-nosql-to-use). A parte luego ya hay base de datos NoSQL que ya son casos híbridos que es el caso de OrientDB (http://www.orientechnologies.com/orientdb) que es un híbrido orientado entre base de datos en formato grafo y documentales.
dex
Dex introducción
Os queríamos introducir DEX una base de datos NoSQL de grafos con muchos casos de éxitos. DEX (http://www.sparsity-technologies.com/dex) está escrita en C++ aunque se puede utilizar con muchos otros lenguajes de programación y una de sus características principales es que permite analizar grandes volúmenes de datos.
DEX está basado en el modelo2 de base de datos en grafo, que está caracterizado por cumplir 3 propiedades: las estructuras de los datos son grafos o estructuras similares a un grafo o tripleta, la manipulación de los datos y las consultas se realizan con operaciones orientadas a grafo y existen restricciones para garantizar la integridad de los datos y de sus relaciones.
Un grafo de DEX es un multigrafo dirigido etiquetado y con atributos. Está etiquetado porque tanto nodos como aristas pertenecen a tipos. El grafo es dirigido porque permite que existan tanto aristas dirigidas como no dirigidas. Nodos y aristas pueden tener tantos atributos como se desee. Finalmente también decimos que es un multigrafo porque permite que existan múltiples aristas entre dos nodos aunque éstas sean del mismo tipo.
La principal característica de DEX es su capacidad de almacenamiento de datos y rendimiento, con órdenes de magnitud de miles de millones de nodos, aristas y atributos, gracias a una implementación con estructuras ligeras especializadas. (Wikipedia)

Ref: http://www.cbsolution.net/techniques/ontarget/databases_relational_vs_object_vs

Dex comparación con mysql

Depende mucho de cada caso de uso para saber cuando es más recomendado usar DEX u otro tipo de base de datos. Hemos querido hacer una típica comparación comparando DEX con MySQL. Elegimos MySQL ya que es una de las base de datos más usadas actualmente. Podemos ver en el siguiente listado que ventajas y desventajas nos aportan una base de datos relacional como el MySQL en comparación con una de grafos como DEX.

Ventajas del Mysql:
  • Mejor medición del performance (DEX tiene herramientas pero no suelen ser en tiempo real como pueden ser en MySQL)
  • Madurez. Está claro que las RDB como el MySQL son más maduras que DEX. Este hecho aporta que a nivel seguridad el MySQL es también más maduro y su interfície de gestión es más avanzada.
  • Claramente hay muchos más casos de éxito del MySQL
  • La implementación de MySQL es sencilla y además la mayoría de gente tiene más experiencia en este ámbito de las RDB. Siguiendo a nivel coste, DEX vuelca todos sus datos en RAM por lo cual es más costoso a nivel Hardware que las RDBs. Aunque actualmente el precio de la RAM se está reduciendo cada vez más.
  • Escalabilidad. Curioso caso, el NoSQL suele ser muy utilizado por las carencias de MySQL a nivel escalabilidad. El DEX en sus primeras versiones cojeaba un poco a nivel escalabilidad. Aunque tenemos que estar atentos porque las últimas versiones de DEX mejoran mucho esta característica y quizás este punto ahora sea más favorable para DEX.
Ventajas DEX sobre Mysql:

Ahora viene la parte interesante:

  • Aparentemente MySQL es más ineficiente para modelos de datos complejos o datos flexibles.
  • Es ineficiente para consultas estructurales. O para uso intenso de JOINS.
  • El DEX permite gran capacidad de tratamiento de grandes volumes con un alto rendimiento
  • Los Grafos suelen ser muy utilizado en redes sociales y en el mundo del Big Data.
  • El DEX se puede integrar con dos base de datos públicas.
  • WordNet: definiciones y diccionarios.
  • ConceptNet: relaciones entre conceptos.
  • Muy flexible para manejar Schemas desconocidos o dinámicos
  • El DEX tiene unas consultas estructurales y permite la navegación entre consultas.
  • Fácil mapeo entre ficheros CSV a DEX.
  • Tal como hemos comentado la escalabilidad a mejorado mucho en las últimas versiones. Cosa que seguramente ahora será mejor que el MySQL en este ámbito. Está aun por probar por parte nuestra.

Algunos casos para usarse de forma mucho mejor que MySQL u otras base de datos RDB y NoSQL:
– Encontrar todos los caminos entre 2 saltos de distancia (http://docs.neo4j.org/chunked/stable/cypher-query-lang.html)
– Encontrar amigo con el que tienes más amigos en común. Como también dar recomendaciones de grupos o música.
– Encontrar el camino más cortos entre dos elementos.
– Dijkstraa con DEX: http://architects.dzone.com/articles/graph-databases-features-graph
– Poner pesos entre diversos nodos con un coste. De esta forma podemos buscar el coste más pequeño entre nodos de distintos intereses entre todos . http://docs.neo4j.org/chunked/stable/tutorials-java-embedded-graph-algo.html
Ejemplo simple de un HelloWorld con DEX

public class HelloWorld {
DEX dex = new DEX();
GraphPool gpool = dex.create("/tmp/image.dex");
gpool.close();
dex.close;
System.out.println("Hello, World");
}

En la web de DEX podeis encontrar muchos más ejemplos. (http://www.sparsity-technologies.com/dex)

Las alternativa a DEX

La más conocida y más utilizada a parte de DEX es Neo4j. http://en.wikipedia.org/wiki/Neo4j . También tiene varias versiones como DEX. En el caso del Neo4j, tiene 3 versiones:

  • Comunidad está licenciado bajo GPL, y contiene toda la graphiness impresionante que deseas
  • Advanced es AGPL licencia, y agrega capacidades de seguimiento para su base de datos
  • Enterprise es también AGPL licencia, y agrega el monitoreo, las copias de seguridad en vivo y alta disponibilidad.

A parte de DEX y Neo4j que son las más utilizadas también hay muchas otras más, os recomendamos la siguiente lectura: http://jasperpeilee.wordpress.com/2011/11/25/a-survey-on-graph-databases/
Y por cierto, esta imagen hace un muy buen resumen y clasificación del estado del arte de como esta actualmente el mundo del SQL, NoSQL y el Big data.
451db_map_06.13
Ref: https://blogs.the451group.com/information_management/files/2013/06/451db_map_06.13.jpg

Categories
Bigdata General Hybrid Clouds OpenSource

Storm Project una "alternativa" a Hadoop

StormProject es una alternativa a Hadoop creada por Twitter y liberada el 2011 como Open Source y cada vez más adoptada por muchas compañías del mundo.
Storm permite crear una forma fácil de escribir y escalar cálculos complejos en tiempo real en un clúster de computadoras, garantizando que cada mensaje sea procesado. Este consigue tolerancia a fallos. Además permite crear gran cantidad de topologías con senzilles en un clúster usando casi cualquier lenguaje de programación (Clojure, Java, Ruby, Python, … )
Storm tiene muchos casos de uso: realtime analytics, online machine learning, continuous computation, distributed RPC, ETL y muchos más.
En definitiva es escalable, tiene tolerancia a fallos, garantiza que tus datos sean procesados y fácil de instalar y operar.

Alternativas

Un clúster de Storm es superficialmente similar a un clúster de Hadoop. Considerando que sobre Hadoop se trabaja con “MapReduce” y con Storm se trabaja con “topologías”.
Entre Hadoop y Storm hay la similitud que ambos procesan la carga de forma distribuida y fueron diseñados para distribuir el proceso entre una gran cantidad de máquinas, de esta forma pueden repartir y dividir la carga del trabajo.
Pero Hadoop no fue diseñado para trabajar con los datos en tiempo real sinó para dejar los procesos en batch, mientras se tiene que esperar que el trabajo MapReduce termine antes de cargar los resultados. En cambio Storm si ha estado pensado para trabajar de forma instantánea en tiempo real.
data:image/jpeg;base64,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
Tened en cuenta que los Sistemas más comparables con Storm no son Hadoop sino soluciones como Esper, Streambase, HStreaming y Yahoo S4. De estos el que más se asemeja es el S4 aunque Storm con comparación a este garantiza el procesamiento de los mensajes. Además vemos que ha salido el proyecto que es un híbrido Storm-Hadoop creado también por Twitter.

Funcionamiento

Storm se integra con tecnologías de gestión de colas y de base de datos que la mayoría ya conocemos y usamos. Una topología de Storm consume flujos de datos y procesa aquellas corrientes en formas arbitrariamente complejas, volviendo a particionar las corrientes entre cada etapa del cálculo.
Para aprender más de su funcionamiento les recomendamos los siguientes enlaces:
· https://github.com/nathanmarz/storm/wiki/Tutorial
· http://www.albertcoronado.com/2013/08/14/storm-framework-para-procesar-grandes-cantidades-de-datos-en-tiempo-real/
· https://blog.twitter.com/2011/storm-coming-more-details-and-plans-release
Básicamente veréis que Storm utiliza una cantidad reducida y simples de primitivas conocidas como: nodo (workers), streams, spouts, bolts, workers y topologías. Con estos elementos, el framework se encargará de repartir el trabajo entre sus diversos recursos.
A Storm topology

Rendimiento

Storm es muy rápido, permite procesar millones de mensajes por segundo en un pequeño clúster.
Se ha visto que tiene un rendimiento muy alto ya que puede procesar una gran cantidad de mensajes con una latencia muy baja. Storm puede procesar un millón de mensajes de 100 bytes por segundo en una computadora con Intel 2x E5645@2.4Ghz y 24GB de memoria.

Dependencias tecnológicas para hacer funcionar Storm

Storm se basa en las siguientes tecnologías: Apache Zookeeper, un gestor de colas de mensajes como ZeroMQ, Java, JZMQ (Java Binding for ØMQ), Python 2.6, etc. ZooKeeper es usado para gestionar los distintos componentes del cluster.

Para instalar Storm se puede utilizar GIT y Maven. Además este permite crear fácilmente entornos de desarrollo en un solo nodo de esta forma se puede desarrollar y testear topologías en local. En los siguientes enlaces se explica como instalar Storm con ubuntu, centos, on a single machine y basic installation
Una curiosidad que a nivel Cloud nos encotramos el sub-proyecto que permite arrancar un cluster Storm dentro de Amazon Web Services ( Setting up a Storm cluster y storm-deploy ).

Más información en:

· http://storm-project.net/documentation.html
· Storm Wiki
· https://github.com/nathanmarz/storm/wiki/Creating-a-new-Storm-project
· http://www.infoq.com/news/2011/09/twitter-storm-real-time-hadoop/
· http://www.javaworld.com/article/2078672/open-source-tools/open-source-java-projects–storm.html

Categories
Bigdata General Hybrid Clouds In detail OpenSource

Cassandra, analizado en la última edición de Sudoers

Hemos tenido el placer de asistir a la reunión de Mayo de Sudoers donde Roger Torrentsgenerós expuso Keepalived y Tomàs Núñez explicó Cassandra para sysadmins.

Ya hablamos de Keepalived. Y Cassandra se nombró muy brevemente aquí, pero sin entrar en muchos detalles. Así que vamos a aprovechar para hacer un resumen de la presentación sobre Cassandra.

Como ya sabéis Cassandra es una base de datos NoSQL descentralizada. Está diseñada para trabajar con grandes volumenes de datos y permite escalar horizontalmente de una manera muy fácil.

Está basada en Google Bigtable y Amazon Dynamo, fue desarrollada inicialmente por Facebook. Des de febrero de 2010 es un Top Level Project de Apache y la última versión es la 1.2.5.

Actualmente es un projecto con una comunidad muy activa y existen diversas compañías que se dedican a dar soporte, como por ejemplo Datastax. Grandes compañías tienen Cassandra en sus entornos de producción: Facebook, Twitter, Netflix, Digg, Groupalia, etc.

Los puntos fuertes de Cassandra son:

  • Las escrituras son realmente rápidas (3000x respecto a MySQL).
  • Al ser descentralizada no tiene un Single Point of Failure.
  • Alta disponibilidad viene de serie.
  • Escala horizontalmente.
  • Requiere de muy poca administración.
  • Está pensada para correr sobre hardware barato.

Respecto al modelo de datos destacar que cada objeto tiene un ID y una serie key-value-timestamp. Al ser un modelo ‘sparse’ esto le da gran flexibilidad ya que no todos los elementos de una tabla deben tenen los mismos atributos e incluso se puede alterar el número de atributos sin bloquear la tabla o tener que parar el servicio.

Respecto a la arquitectura decir que se basa en un modelo DHT (Distributed Hash Table) donde los nodos se distribuyen en forma de anillo y cada nodo es el reponsable principal para una partición y el responsable secundario para una o más particiones (dependiendo del factor de replicación que es configurable). También es posible configurar la arquitectura de manera que sea multirack o multidatacenter.

Gracias al proceso de Gossip, todos los nodos saben en todo momento los nodos disponibles, su carga y si están bajo mantenimiento o la versión de Cassandra que están corriendo.

Como ya hemos comentado las escrituras en Cassandra son muy rápidas, ya que no se preocupa de recuperar el valor (si existe) para actualizarlo, sino que escribe directamente como si el valor fuese nuevo. Esto hace que en el momento de la lectura, se tengan que recoger los valores y ver cual es el más reciente.

Como curiosidad decir que se puede definir índice secundarios y des de la versión 0.8 hay soporte para contadores.

Existe una herramienta para el mantenimiendo y admininistración de los nodos llamada nodetool, recomiendo echar un vistazo a la wiki de Apache para ver los detalles de esta versátil herramienta.

Una manera muy sencilla de hacer una copia de seguridad es definir un cluster de backup con un nodo donde se almacenaránn todos los datos, y hacer la copia de este nodo.

La parte más interesante de la presentación fue cuando el ponente hizo gala de su dilatada experiencia con Apache Cassandra y nos explicó una serie de errores frecuentes y algunas optimizaciones. Recomiendo encarecidamente su lectura http://www.tomas.cat/blog/en/cassandra-frequent-mistakes.

Tan solo felicitar a Tomas por su excelente presentación.

Por último podéis encontrar la presentación original aquí.

Espero que lo disfrutéis 😉

Lorenzo  Cubero – CloudAdmin

Categories
Bigdata Guide In detail

Opendedup: Deduplicación en línea sobre volumenes de datos en AWS S3 y Azure.



Sam Silverberg, desarrollador con una dilatada experiencia está al frente del proyecto Opendedup. Opendedup se centra en el desarrollo de nuevos sistemas de ficheros con el objetivo de dar solución e ir más allá en el terreno de la deduplicación en línea. Si analizamos su “core” Opendedup ha desarrollado y apuesta por SDFS, un sistema de ficheros multiplataforma con deduplicación en línea que permite reducir en más del 90% el espacio utilizado, permite deduplicar más de un Petabyte de datos, ofrece rendimientos superiores a 1Gbps, se integra con entornos de virtualización de VMWare como repositorio de máquinas virtuales, soporta “snapshots” a nivel de ficheros o directorios, etc…
http://opendedup.org/whatisdedup
sdfs
Siendo fiel al título de este POST, veremos como SDFS nos puede ayudar en la optimización del uso de recursos en proveedores Cloud para fines como por ejemplo de archivado, dónde este permite almacenar “bloques” deduplicados sobre servicios de almacenamiento en la nube como son Amazon S3 o Azure. Cosa que facilita almacenar una cantidad ilimitada de datos sin la necesidad de almacenamiento local con capacidades de cifrado (AES 256 bit) y compresión (obvia y por defecto).
Si lo analizamos más en detalles, los beneficios están bastante claros ya que reducimos al mínimo el almacenamiento externo, uso de ancho de banda y maximizamos aspectos como el rendimiento de escritura.
Como detalle adicional es importante tener en cuenta que el enfoque de almacenamiento externo mediante bloques requiere que el espacio de nombres y los metadatos de archivos se almacenen localmente en el sistema en el que se monta el volumen SDFS, esto asegura por un lado el máximo rendimiento al permitir que todas las funciones del sistema de archivos se realizan a nivel local a excepción de los datos de lecturas y escrituras pero por otro nos limita a utilizar la misma máquina para acceder a los datos.
En base a su tutorial de uso y si entramos en el caso específico de volúmenes deduplicados sobre AWS S3:
1) Realizaremos la instalación de opendedup – http://opendedup.org/download
2) Utilizando las credenciales que nos proporciona Amazon AWS para su servicio S3 y con un ‘bucket’ ya disponible crearemos un volumen SDFS :
./mkfs.sdfs  –volume-name=<volume name> –volume-capacity=<volume capacity> –aws-enabled=true –cloud-access-key=<the aws assigned access key> –cloud-bucket-name=<a universally unique bucket name such as the aws-access-key> –cloud-secret-key=<assigned aws secret key> –chunk-store-encrypt=true
3) Montaremos el volumen y a jugar…
./mount.sdfs <volume name> <mount point>
Salud!
Cloudadmins.org

Categories
Bigdata General Hybrid Clouds

Ofreciendo Simple Storage Service

Hace algún tiempo, nos vimos en la tesitura de ofrecer servicios de Cloud Storage compatibles con S3. Estuvimos estudiando el mercado, y nos encontramos con Cloudian Multi-tenant S3 Cloud Storage. Básicamente se trata de una plataforma para ofrecer servicios de Cloud Storage mediante una API compatible con S3.

http://www.cloudian.com/overview.html
La idea es bastante interesante. A un cliente que ya se encuentre trabajando con los servicios de Amazon, le resultaría casi trivial cambiar de proveedor de almacenaje en la nube.
La plataforma está muy bien pensada: el contenedor final de los datos está basado en una base de datos noSQL , Apache Cassandra. Dispone de una  Consola de Administración web, que incluso genera informes contables. E incluso viene con un agente de Zabbix para la monitorización del servicio.
En cuanto al modelo de negocio de Cloudian Inc., se puede usar la plataforma de forma totalmente gratuita hasta 100TB de almacenamiento. Empezando a partir de ahí los planes de pago.
Como véis Cloudian está pensado para organizaciones que quieran ofrecer servicios de Cloud Storage a sus clientes.Aunque se trata de una solución muy joven, hay que decir que la versión 2.3 es muy estable y el soporte es muy competente. Por último comentar que Cloudian es capaz de utilizar los servicios S3 de Amazon en caso de que la demanda de almacenaje lo requiera.

Categories
Bigdata General

EEDC Seminars – Big and Open Data

Last Thursday (April, 19th 2012) was celebrated in Barcelona the first day of the EEDC Seminars, inside the Master in Computer Architecture, Networks and Systems (CANS-UPC). The first day was focused in Big and Open Data,  you can see the program here.
The seminar was divided in two different presentations:

  •  Big Data by Marc de Palol (@lant)

Among the interesting things covered, he talked about the three main actions in Big Data: Inserting, processing and serving/using the data. During the presentation, several free software project references were enumerated by Marc. A little piece of the list :  Hadoop, Hive, Nosqldb, Memcache, Thrift, Mahout,…

He explained that OpenData is the idea that certain data (like scientific and government data) should be freely accessible to everyone to use and republish as they wish without restrictions from copyright, patents or other mechanisms of control. David Sánchez explained that actually in Spain a business model based on OpenData analysis is already a challenge. Here you can see a useful example of Big Data application.

In few days, the next  EEDC Seminar will cover IaaS, SaaS and Mobile Apps topics.  See you there!