Translate

Mostrando las entradas con la etiqueta Apache Thrift. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Apache Thrift. Mostrar todas las entradas

domingo, 11 de noviembre de 2018

Características de Apache HBase


Apache HBase como habrán leído anteriormente es una base NoSql, la cual es orientada a columna.

Pero que características la hacen una base tan especial:

  • Balanceador de carga y recuperación de errores automático: HBase corre sobre el sistema de archivos de Hadoop, hdfs, el cual puede recuperarse dado a que cuenta con bloques de recuperación y servidores de replicación. 
  • Fragmentación automática: HBase maneja el concepto de región lo que permite tener replicaciones en una región determinada y compartir la información con dicha región. 
  • Integración con Hadoop: HBase corre sobre el sistema de archivos de Hadoop, por lo que cuenta con  una muy buena integración con el ecosistema Hadoop. 
  • Map-reduce: HBase utiliza Hadoop map-reduce framework para resolver problemas en paralelo. 
  • Java Api: los clientes java pueden utilizar toda la potencia de la jdk, ya que hbase fue escrito en java. 
  • Thrift o rest web services: HBase brinda 2 caminos para exponer funcionalidad una REST API o servicios Thrift
  • Soporta monitoreo: Igual que Hadoop, soporta software de monitoreo el cual nos indicara la salud de nuestra base de datos. 
  • Distribuida: Puede correr en varios servers. 
  • Escalabilidad lineal: es decir que podemos prever que va a crecer su performance agragando un servidor o cuanto cae si quitamos un servidor. 
  • Orientado a Columna: esto no es una ventaja es solo una característica. Pero quería hacer la lista larga. 
  • Soporta comandos de shell: Se puede administrar HBase totalmente desde una consola . 
  • Soporta versiones: soporta diferentes versiones, a la vez permite hacer snapshot, de versiones anteriores. A la vez soporta multilples versiones de un solo registro por medio de la snapshot que utiliza internamente


domingo, 5 de junio de 2011

Thrift



Thrift es un framework de apache que tiene como fin acelerar el desarrollo e implementación de servicios backend eficientes y escalables. El principal objetivo es permitir comunicaciones eficientes y fiables a través de lenguajes de programación mediante la abstracción de porciones de cada lenguaje en una librería común, específicamente Apache Thrift permite a los desarrolladores definir los tipos de dato e interfaces de servicios en un archivo único en lenguaje neutral y generar todo el código necesario para construir clientes RPC y servidores. Actualmente soporta los siguientes lenguajes C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk y OCaml.

Apache Thrift fue desarrollado y usado por Facebook; para luego ser donado a Apache. Hoy en día thrift no es solo utilizado por facebook sino que lo utilizan paginas como last.fm y reCaptcha.

Podría decirse que Thrift es un kit de herramientas, uno especializado en la interoperabilidad de lenguajes de programación. A través de Thrift Facebook ha combinado el uso de lenguajes tan distintos entre sí como C++, Java, Python, PHP, Ruby, Haskell, y más, a lo largo de todos sus equipos de desarrollo. Facebook no podría crear servicios de software a la velocidad que requiere sin la ayuda de Thrift.

Thrift incluye un stack completo para la creación de software clientes y servidor.

Entre las ventajas podemos resaltar :

  • Serialización cross-lenguaje con poco overhead dado que usa formato binario
  • Una biblioteca limpia, sin configuración de xml o frameworks.
  • Los lenguajes se bindean de forma natural. Por ejemplo Java usa ArrayList y C++ usa std::vector.
  • La llamadas entre diferentes lenguajes son a nivel aplicación, esto permite que se modifiquen de forma separada.
  • No tiene dependencias a software no estándar. No tiene un mix de software con diferentes licencias.
Como funciona?

De hecho las principales tareas de thrift son sencillas:
  • Primero en un archivo .thrift se escriben los objetos y procedimientos que queremos compartir entre diferentes lenguajes.
  • Luego usamos las herramientas de thrift para construir la los archivos para los lenguajes que se deseen utilizar.
  • El paso más importante es crear el cliente y el servidor en el lenguaje que quisieramos utilizar, usando el código generado en el paso anterior. El servidor debe implementar procedimientos descriptos en el archivo .thrift mientras que el cliente debe utilizarlos.
  • Por ultimo y no menos importante se debe correr el servidor usando un script
Esto fue una pequeña introducción a Apache Thrift.

Dejo links: