Lectura y escritura en HDFS

Lectura y escritura en HDFS

Arquitectura de HDFS

Arquitectura y componentes de HDFS

¿Qué es Apache Hadoop?

Introducción a Apache Hadoop

Solucionar problema con TP-Link TL-WN725N en Raspberry pi

¿Problemas con el driver del TP-Link TL-WN725N para tu raspberry pi?

Bq incorpora Ubuntu en el E4.5

La empresa española, la primera del mundo en incorporar Ubuntu como sistema operativo en sus smartphones

Nueva Raspbery Pi 2 model B, unboxing y caracteristicas

Te contamos todas las novedades del nuevo dispositivo.

martes, 3 de mayo de 2016

OpenNebula VS otras plataformas cloud

OpenNebula VS otras plataformas cloud

Amazon AWS, OpenNebula, Eucalyptus y CloudStack


OpenNebula:
  • Código abierto.
  • Permite construir cualquier tipo de cloud: privado, público e híbrido.
  • Diseñado para ser integrado con cualquier tipo de red y almacenamiento.
  • Gestiona:
    • Almacenamiento
    • Redes
    • Tecnologías de virtualización.
  • Proporciona la posibilidad de desplegar servicios distribuidos
  • OpenNebula soporta Xen, KVM y VMWare como hipervisores.

Eucalyptus:
  • Código abierto basado en Linux.
  • Implementa clouds privados e híbridos
  • Diseñado para que sea fácil de instalar
  • Proporciona una capa de red virtual.
  • Capacidad de interactuar con Amazon EC2
  • Soporta Xen y KVM como hipervisores.

CloudStack:
  • Software de código abierto.
  • Permite efectuar despliegue, configuración y gestión de entornos de computación elástica.
  • 3 versiones diferentes:
    • CloudStack Community Edition:
      • Open source, soportado por la comunidad CloudStack
    • Enterprise Edition:
      • Código open source y propietario.
    • CloudStack Service Provider Edition
      • Emplea código open source y código propietario.
      • Fue diseñado para los proveedores de servicios
      • Se distribuye de forma comercial
  • CloudStack soporta Xen Server y KVM como hipervisores.

Amazon EC2 - Amazon Elastic Compute Cloud:

  • Servicio Web de Amazon que proporciona herramientas para la computación cloud.
  • Permite escalar distintos servicios de procesamiento de forma sencilla.
  • Amazon proporciona la interfaz AWS Management Console que permite gestionar por medio de un navegador Web los siguientes servicios


Twitter @SierraBares

miércoles, 27 de abril de 2016

Herramientas proporcionadas por OpenNebula

Herramientas proporcionadas por OpenNebula

  • Gestión de recursos flexible y despliegue de máquinas pre-configuradas.
  • Gestión de usuarios (uso, facturación, provisionamiento..)
  • Gestión de perfiles de seguridad
  • Gestión de redes (subsistema propio de redes con independencia entre las máquinas virtuales completa, VLANS, Bondings,...)
  • Gestión de almacenamiento (en red, local, en la nube)
  • Gestión de Alta Disponibilidad y Clusters
  • Gestión de Zonas
  • Gestión de Virtual Centers (VDCs)
  • Gestión de Nubes Híbridas (Amazon EC2)
  • Gestión de Markets (Apps a través de todas las instancias de Open Nebula y su distribución)
  • Servicios de Monitorización
  • API para integración
  • Sistema de Hooks


Todo ello hace que OpenNebula sea un completo gestor de data centers virtuales, que permite gestionar desde la capa más básica de la red y almacenamiento, hasta los procesos de gestión de usuarios, escala bajo demanda o tiempos de uso y explotación de los recursos.

domingo, 24 de abril de 2016

Proyectos vinculados a Apache Hadoop: Cassandra

Proyectos vinculados: Cassandra



El proyecto Apache Hadoop está formado por HDFS, MapReduce, Hadoop Common (Contiene los paquetes y script necesarios para hacer correr Hadoop) y YARN (Framework para planificación de tareas y gestión de recursos de clúster).

Pero a su vez, hay varios proyectos relacionados, como por ejemplo:

  • Ambari: Herramienta basada en web para administración y monitoreo de clusters Hadoop con soporte para Hadoop HDFS, Hadoop MapReduce, etc.
  • Chukwa: sistema de recolección de datos para la gestión de grandes sistemas distribuidos. Analiza grandes volúmenes de log.
  • HBase: Una base de datos escalable, distribuida que soporta el almacenamiento de datos estructurados para tablas grandes.
  • Cassandra: Base de datos NoSQL distribuida.

¿Qué es Casandra?

[15] “Apache Cassandra es una base de datos NoSQL distribuida y basada en un modelo de almacenamiento de «clave-valor», escrita en Java.

Fue inicialmente desarrollada por Facebook, ya que tener a miles de personas insertando, consultando y borrando datos hacia que las bases de datos tradicionales se les quedasen pequeñas.

Tenían como objetivo alcanzar escalabilidad lineal y alta disponibilidad sin perder prestaciones y lo consiguieron con Cassandra, el cual es escalable de forma elástica.




En 2008 Cassandra pasó a ser de código abierto. Desde entonces es mantenida por Apache y ha alcanzado un gran éxito comercial.

Cassandra puede ejecutarse en un clúster de nodos de forma transparente al usuario. Estos nodos usan arquitectura P2P, lo que proporciona máxima redundancia y pueden estar distribuidos en zonas geográficas muy separadas sin que esto empeore el rendimiento.

En bases de datos relacionales, los datos se almacenan en forma de filas; en Cassandra se hace en columnas con pares Key-valor, lo que conlleva que muchas de las operaciones que se pueden realizar con bases de datos relacionales no sean posibles con este tipo de base de datos NoSQL, ya que están muy simplificadas para ofrecer mayor rendimiento, lo que hace que se tengan que controlar muchas más cosas a la hora de programar (por ejemplo, no hay restricciones).


Ejemplo de tablas key-valor:


Cassandra es un sistema descentralizado en el que cada nodo tiene copias de su información en otros nodos, por lo que si uno falla el problema es resuelto fácilmente. No hay punto único de fallo.



En Cassandra hay una consistencia débil, lo cual debe ser tenido en cuenta a la hora de decidir su implementación. Esto es, los datos se replican en todo el sistema pero tarda un tiempo, ya que se hace mediante una topología en anillo que permite evitar cuellos de botella. Las lecturas muestran el valor más recientemente escrito del que se tenga constancia y pueden variar si se accede a un nodo u otro en un determinado momento.

Twitter @SierraBares

miércoles, 20 de abril de 2016

Caso de éxito español: OpenNebula

El auge de los hipervisores libres como KVM hacen que la integración del cloud computing con los sistemas linux esté muy optimizada.

Como emblema español actual de plataformas en la nube tenemos a OpenNebula, un proyecto de software libre para proporcionar un servicio de infraestructura de Cloud Computing para data centers. Es un producto que ofrece la flexibilidad de la comunidad, ya que es de código abierto y permite la modificación y adaptación del producto a nuestras necesidades.


OpenNebula nació en el DSA (Distributed System Architecture Research Group), de la universidad complutense de Madrid. Está ampliamente soportado por una amplia comunidad de desarrolladores y se consolidó comercialmente en 2010 con la creación de la empresa C12G.

Ubuntu, Debian, OpenSuse y centOS lo han incluido en sus repositorios dada la gran demanda que está teniendo y la eficacia de su servicio.

OpenNebula no depende de ningún tipo concreto de supervisor, igualmente no requiere de unos determinados recursos pudiendo adaptarse a infraestructuras ya existentes de la capacidad que se desee.

Como IaaS, OpenNebula se compone de una serie de herramientas, un core donde se gestionan las peticiones via XML-RPC y la gestión de máquinas virtuales y los pools de bases de datos SQL.
Finalmente, en una capa inferior se encuentran los drivers que son la unión entre la capa hardware y el core de OpenNebula.

El API de OpenNebula permite programar en Java, Ruby o XML-RPC, pudiendo extender el entorno según se desee.

Opennebula tiene como objetivos principales:

  1. Ser una solución flexible, de alto nivel y escalable para construir nubes IaaS.
  2. Proporcionar módulos para crear cloud usando distintas arquitecturas e iteración con otros servicios.
  3. Ofrecer elección de interfaces desde software libre hasta estándares de facto.
  4. Asegurar la estabilidad y calidad del software distribuido.


Twitter @SierraBares

domingo, 17 de abril de 2016

¿Cómo se beneficia Hadoop de las redes de altas prestaciones?

¿Cómo se beneficia Hadoop de las redes de altas prestaciones?

+ =
.


  • El funcionamiento de HDFS ya de por sí presenta una elevada latencia, por ello cuanta menos latencia tenga la red, mejor será el rendimiento general en el sistema de ficheros de Hadoop.


  • HDFS trabaja con bloques de datos muy grandes, por lo que necesita de una red que tenga un gran ancho de banda, como bien podría ser InfiniBand para tener la fluidez necesaria para un rendimiento óptimo.


  • Muchos de los sistemas que emplean Hadoop, como bien puede ser Cassandra o la mayoría de bases de datos NoSQL, vuelcan la información directamente a la memoria, así que un hardware de red con sistemas de descarga del procesador puede incrementar ampliamente el rendimiento, consiguiendo operaciones de escritura muy rápidas

En Hadoop la replicación de datos se hace entre nodos esclavos de forma independiente del nodo Maestro, por lo que una red de altas prestaciones con comunicación directa entre todos los nodos facilita enormemente el trabajo, además de aumentar el rendimiento.

Twitter @SierraBares

martes, 12 de abril de 2016

Modelos de cloud computing según la privacidad.

Modelos de cloud computing según la privacidad.

La información en cloud computing se aloja en servidores remotos, por lo que la sensación de “fuera de nuestro control” aumenta. Esto lleva a que los servicios en la nube ofrezcan distintos formatos de privacidad que pueden elegir los usuarios. Estos son los tipos de nubes que se ofrecen:

1-Nubes públicas

Este tipo de nubes hacen uso de servicios gestionados por terceras partes.  Los proveedores ofertan los servicios vía internet y los usuarios pueden acceder a ellos de forma compartida sin que exista un control sobre la ubicación de la información que reside en los servidores del proveedor. El hecho de que sean públicas no quiere decir que sean inseguras, ya que hospedan servicios de múltiples clientes en sus infraestructuras pero de forma opaca al resto de usuarios.

2-Nubes privadas

Para clientes que necesiten seguridad por ser la criticidad de la información que manejan o para clientes que buscan una disponibilidad exclusiva de recursos. Se pone a su disposición una plataforma, infraestructura y aplicaciones de uso exclusivo que son propiedad del cliente.

Es decir, se pueden contratar infraestructuras o plataformas sobre las que el vendedor solo hace mantenimiento, todo el uso y gestión corre de la parte del usuario contratante.

3-Nubes híbridas

Combinan características de las dos anteriores, de forma que parte del servicio se puede ofrecer de forma privada (plataforma, infraestructura) otra corre a cargo de la empresa (herramientas, almacenamiento etc).

domingo, 10 de abril de 2016

8- Conclusiones sobre la elección de Hadoop

Conclusiones

Y para terminar "la saga" de entradas sobre Apache Hadoop, una muy cortita con las conclusiones que pueden ayudar a elegir (o no) Apache Hadoop.

¿Cuando es Hadoop una buena elección?

  • Cuando debemos procesar grandes cantidades de datos no estructurados
  • Cuando el procesamiento puede ser paralelizado
  • En ejecución por lotes
  • Cuando disponemos de mucho hardware de un coste reducido
  • Análisis de imágenes, audios, archivos logs, análisis flujo clicks en una web, salidas de GPS, sensores de temperatura etc.


¿Cuándo no es una buena elección?

  • Para cálculos con pequeños datos o sin datos
  • Cuando el procesamiento no puede ser paralelizado
  • Cuando necesitamos interactuar con los resultados
  • Para cálculos de secuencias de Fibonacci o cálculos numéricos
  • Para reemplazar RDBMS

martes, 5 de abril de 2016

Recursos que el cloud computing ofrece como servicio

Recursos que se ofrecen como servicio

Se pueden clasificar en 3 tipos básicos los diferentes servicios que componen el negocio del cloud computing, estos son:

1-Infraestructura como servicio (IaaS):

Consiste en ofrecer al cliente espacio de almacenamiento o capacidad de cómputo desde los servidores contratados. De esta forma, el cliente tiene a su disposición un disco duro “infinito” o un procesador de rendimiento prácticamente ilimitado, según lo que se contrate y con capacidad de escalabilidad según las necesidades, de donde nace otro concepto: computación elástica.
Este servicio tiene como ventajas el ahorro casi total de una inversión en infraestructuras y la seguridad de que siempre usará tecnología hardware de última generación.

2-Plataforma como servicio (PaaS)

Pone a disposición del usuario herramientas para la realización de desarrollos informáticos, de manera que pueden construir sus aplicaciones software sin necesidad de adquirir e implantar en sus organizaciones dichas herramientas o metodologías.
Como ventajas tenemos el ahorro en licencias, mantenimiento e implantación de los diferentes elementos ya comentados, además de la óptima actualización que se ofrece de todos los recursos.

3-Software como servicio (SaaS)

Es una de las modalidades más importantes de cloud computing. Consiste en ofrecer al usuario aplicaciones finales de servicios concretos completamente en la nube. Hay infinidad de aplicaciones de este tipo y cada día nacen más, desde gestores ofimáticos hasta potentes programas de diseño, facturados de forma simple según lo contratado por el cliente.


De estos tres modelos básicos han ido surgiendo derivados como pueden ser:

  1. BaaS (Backup as a Service)
  2. DaaS (Desktop as a Service)
  3. HaaS (Hardware as a Service)
  4. CaaS (Comunication as a Service)

domingo, 3 de abril de 2016

7- Soluciones a grandes problemas que ofrece Apache Hadoop

Soluciones a grandes problemas que ofrece Hadoop

Problemas de Espacio

Se empieza trabajar con terabytes y petabytes de datos, para lo que se necesitan infraestructuras muy potentes que sean capaces de tratar y almacenar tanta información.


El diseño master-slave distribuido de HDFS hace que Hadoop permita pasar de pocos nodos a miles: Escalabilidad horizontal, montando una infraestructura distribuida completamente transparente para el usuario que hace que el sistema se note como local, sin tener en cuenta en qué máquinas están qué datos.

Replicación de datos



Replicación por bloque de información: Por defecto hadoop replica 3 veces por bloque de información, cada uno en un nodo distinto, de forma que si cae uno, quedan 2 copias.


Hay mecanismos de replicación rack, por lo que si cae un rack entero, la información estará disponible en uno o varios nodos de otro rack distinto.
Se intenta que los bloque se repliquen de forma que queden cerca entre ellos, para aumentar el rendimiento.


La idea es separar el trabajo de replicación del nameNode, de forma que se haga por los dataNode sin intervención de NameNode. (Pipeline de replicación)




Hadoop detecta un fallo en hardware o en software por la pérdida del heartbeat de una determinada máquina.

Datos corruptos

Por cada bloque de datos, en HDFS se almacena un metadato mediante un mecanismos de checksun con md5sum [Programa que detecta variaciones en un archivo mediante MD5]
Cada vez que se realiza una lectura sobre un bloque de información, se comprueba el checksun y si no coincide, el nameNode busca la información en otra copia y lo reemplaza en el NameNode que ha dado error.


También hay un mecanismo de scanner que permite cada cierto tiempo repasar todos los bloques que están en HDFS para asegurarse de que los checksuns son válidos y en caso contrario se procede a una reparación del bloque de información corrupto.

Tiempo de acceso

Uno de los principales problemas en el tratamiento de grandes cantidades de datos son los cuellos de botella, y Hadoop para solucionarlo hace uso de carga de trabajo dividida tanto a nivel de lectura como de escritura entre los diferentes esclavos.


Los bloques de datos no siempre están distribuidos de forma uniforme: puede haber datanodes colapsados y datanodes infrautilizados, por lo que HDFS mueve bloques de unos a otros DN de forma que ante una avalancha de trabajo puedan rendir al máximo.  Esto se hace calculando la media de utilización de cada nodo y dependiendo de un umbral previamente establecido decidir si un nodo está sobreutilizado para pasar carga a otros nodos menos usados.


HDFS también tiene algoritmos para usar los servidores según la localización de los datos y así reducir el tráfico al mínimo posible.

Coste

Hadoop no necesita equipamiento muy costoso, funciona bien sobre “commodity hardware”, sin ser necesarios servidores de última generación. Además es de licencia libre.

Por ejemplo, es más barato comprar 1000 PCs con Quad Core que 1 servidor de 4000 cores, con la ventaja añadida de la reducción de riesgo de fallo. Si cae un PC, se puede balancear carga y el sistema sigue arriba. Si cae el server, se cae todo.