BIGDATA. Acceso al cluster.

BIGDATA. Acceso al cluster.

Como sabemos BIGDATA es una solución para manejar grandes volumenes de información, en otro artículo hablamos sobre el proceso de instalación de la infraestructura necesaria, podemos ver este artículo aqui:

https://oscarquerejazu.wordpress.com/2015/07/03/big-data-laboratorio-2/

En este caso , una vez instalado vamos a entrar a la gestión del cluster y ver el aspecto que presenta.

Lo primero, vemos una imagen del escritorio, vamos a utilizar la distribucion Hadoop CLOUDERA, quick start que lo podemos descargar de:

http://www.cloudera.com/content/cloudera/en/downloads.html

Por tanto no nos hace falta realizar todo el proceso de instalación de la infraestructura, ya que cloudera nos aporta esta máquina virtual preparada con 1 nodo. (Es por lo que en el artículo anterior montamos toda la infraestructura con mas nodos, para que sea mas realista).

1

Lo primero que podemos hacer es desde la consola de comandos , ejecutar la herramientas que nos da paso a la administracion:

1.1

Y aqui ya lo tenemos preparado para via http, acceder a la gestión:

2

Entramos con el navegador:

3Nos autenticamos con:

usuario : cloudera

contraseña: cloudera

4

Una vez dentro nos aparece la pantalla principal con todos los apartados de gestión:

5

Bien, a través de este lado de gestión, lo que hacemos es “gestionar el cluster hadoop”, es decir, mantenemos el cluster para que los encargados de la gestión de los datos puedan realizar su trabajo, por ejemplo , si alguien utiliza MAP REDUCE , lo hará a través de HUE y para ello necesita que esté funcionando bien la infraestructura de cluster, los nodos, el cluster, etc. Por tanto nuestro objetivo es conocer bien cómo funciona la gestion del cluster y mantenerlo vivo.

6

En la pantalla superior vemos un NODO (cloudera nos aporta esta appliance con 1 nodo tal y como hemos comentado antes). Además vemos los servicios que presta o ROLES.

Cuando hay mas de 1 nodo , lo que hacemos es asignar ROLES o servicios a diferentes nodos.

En la siguiente imagen vamos a ver una infraestructura con varios nodos, en donde cada uno tiene asignado distintos roles o servicios:

15Varios nodos y roles específicos

7Estado del cluster

En la pantalla superior vemos por ejemplo el estado del cluster, a esta pantalla hemos llegado accediendo al servicio (por ejemplo desde el host), desde la siguiente pantalla:

8

Es decir, el servicio CLOUDERA MGMT.

Se utiliza el sistema de archivos HDFS, que tambien debe ser monitorizado para ver su estado de rendimiento, como vemos en el caso de esta imagen:

9

Desde HUE hemos comentado que es desde dónde se realiza toda la gestión de los datos, pinchamos en ella y via web accedemos.

10

Nos aseguramos primero que esté arrancado:

11

Nos aseguramos que esté arrancado y accedemos via web:

13Pulsamos en HUE WEB UI:

Usuario: cloudera

Contraseña: cloudera

14

Bueno, pues ahí tenemos desde donde se puede hacer toda la labor de gestión de los datos, en otro post pongo un ejemplo con MAP REDUCE.

un saludo,

Anuncios

BIG DATA. Laboratorio. 2

BIG DATA. Laboratorio. 2

Vamos a montar una infraestructura de BigData para empezar a trabajar con los diferentes servicios.

Necesitamos lo siguiente:

* Un linux ubuntu 14.04.2 , 64 bits (ésta es la que hemos elegido)

• RHEL, CentOS (5.7 64 bit, 6.4 64 bit, 6.4 en modo Selinux,
6.5, 64 bit)
• Oracle Enterprise Linux with default kernel and Unbreakable
Enterprise Kernel, 64-bit (5.6 (UEK R2), 6.4 (UEK R2), 6.5
(UEK R2, UEK R3))
• SUSE Linux Enterprise Server 11, 64-bit
• Debian – Wheezy (7.0 and 7.1), Squeeze (6.0) (deprecated),
64-bit
• Ubuntu – Trusty (14.04), Precise (12.04), Lucid (10.04)
(deprecated), 64-bit

* 3-4 servidores en total. En estos servidores instalaremos ubuntu linux 14.04.2

Uno de estos servidores será el “Nodo Master” y los otros 3 serán los nodos que tendrán el agente.

* El nodo master lo recomendable seria 8 gb de ram (al menos), aunque podriamos trabajar con 4 gb.

* Los otros nodos podrian tener 2 gb cada uno . (Estamos ahorrando recursos para el laboratorio).

Lo que vamos a realizar es el montaje de un CLUSTER Hadoop en donde los intervinientes serán nuestros 3 o 4 servidores (1 nodo master y 2 nodos mas con un agente).

El nodo master tendrá el “CLOUDERA MANAGER”, (recordemos que vamos a montar la distribucion Hadoop de Cloudera).

Sobre CLOUDERA MANAGER

• Cloudera Manager:
– Oracle JDK 1.8.0_11
– Oracle JDK 1.7.0_67
– Oracle JDK 1.6.0_31
• Cloudera Manager debe estar ejecutado sobre una versión JDK
soportada por todos los clusters Hadoop que gestiona. Ejemplo:
– Cloudera Manager 5 sobre la versión 1.6 de JDK solo podrá gestionar clusters
de CDH4.
– Para gestionar clusters CDH5 se necesita la versión 1.7 de JDK.
– Si se desean gestionar clusters de CDH4 y CDH5 de forma simultánea con
Cloudera Manager 5, se deberá urilizar la versión 1.7 de JDK.

• La Consola de Administración de Cloudera Manager, la
cual se utiliza para la instalación, configuración, gestión y
monitorización de servicios, está soportada por:
– Mozilla Firefox 11 y superiores
– Google Chrome
– Internet Explorer 9 y superiores
– Safari 5 y superiores

• Cloudera Manager Server almacena información sobre los servicios
configurados, la asignación de roles, un histórico de la configuración,
comandos, usuarios, y procesos en ejecución en una base de datos propia.
• Cloudera Manager y los servicios que los soportan pueden hacer uso de las
siguientes bases de datos:
– MySQL – 5.0, 5.1, 5.5, y 5.6
– Oracle 11gR2
– PostgreSQL – 8.4, 9.1, 9.2, y 9.3
• Cloudera soporta las versiones de MySQL y PostgreSQL que incluyen las
distribuciones Linux en sus instalaciones.

ESPACIO EN DISCO

• Cloudera Manager Server:
– 5 GB en la partición /var.
– 500 MB en la partición /usr.
– Para el uso de “parcels”, el espacio requerido depende del número de “parcelas” que se
descarguen a Cloudera Manger y se distribuyan a los agentes. Ejemplo:
• CDH 4.6 – 700 MB por parcel;
• CDH 5 (que incluye Impala y Search) – 1.5 GB por parcel (empaquetado), 2 GB por parcel (desempaquetado)
• Cloudera Impala – 200 MB por parcel
• Cloudera Search – 400 MB por parcel
• Cloudera Management Service – Las bases de datos de monitorización se almacenan sobre
la partición /var. Se recomienda asegurar al menos 20 GB en esta partición.
• Agentes – Cada “parcel” desempaquetado requiere en los agentes unas 3 veces el espacio
del “parcel” descargado en Cloudera Manager Server.

NOTA: (En cuanto a la RAM • Es conveniente reducir la cantidad máxima de memoria que
usa Cloudera Manager Server para sus servicios Java.)

• Cloudera Manager, CDH5 y HUE funcionan sobre Python
2.6 o 2.7

LA RED

• Direccionamiento IP asignado de forma estática
Fichero /etc/hosts correctamente formateado. Debe:
– Contener información persistente sobre los nombres de los
equipos y direcciones IP de los nodos
– No debe contener nombres que contengan mayúsculas
– No debe contener direcciones IP duplicadas

NOTA: Muy importante tener bien configurado el fichero hosts, ya que en caso contrario no podremos desplegar el agente correctamente el instalar cloudera manager. (lo veremos mas adelante).

En la mayoría de los casos, Cloudera Manager Server deberá
tener acceso SSH a los equipos del cluster para poder
realizar la instalación y despliegue de servicios.
• Además, se deberá proveer del usuario y credencial de root,
o proveer de un usuario con permiso “sudo” sin que se pida
la contraseña.
• Una vez finalizada la instalación, se puede cambiar la
contraseña de root, o deshabilitar el requisito anterior.

NOTA: Durante la instalación de cloudera manager , y durante el despliegue del agente en los nodos, será importante indicar con qué usuario lo haremos (podria ser el root), pero como la conexion es por SSH , debemos cambiar el fichero “sshd” y permitir acceso al root , ya que por defecto está deshabilitado. O bien…podemos meter en sudoers el usuario “normal” con el que trabajamos.

(Lo veremos en su momento, no problem).

• Asegurar que Security-Enhanced Linux (SELinux) no bloquea
ningún servicio o acceso.
• IPv6 debe estar deshabilitado.
• Asegurarnos que no se están bloqueando puertos mediante
iptables o algún otro tipo de firewall. El puerto 7189 debe
estar accesible una vez termine la instalación. El propio
Cloudera Manager recomienda en su documentación los
puertos que deben estar abiertos.

—————————————————————————————————————-

LA INSTALACION

• Un despliegue de Cloudera Manager consiste en los
siguientes componentes Software:
– Oracle JDK
– Cloudera Manager Server y los paquetes Agentes
– Software de base de datos que de soporte
– CDH y el software de servicios gestionados

– Los requisitos previos para esta instalación son:
• Darle la opción de abrir sesión en el host de Cloudera Manager Server utilizando
una cuenta root o una cuenta donde el usuario tenga permisos sudo sin requerir
la contraseña. (Lo que comentabamos antes).
• Permitir que Cloudera Manager Server tenga acceso uniforme a SSH en todos los
hosts del cluster.
• Todos los hosts deberán tener acceso a los repositorios estándar y también al
repositorio de archive.cloudera.com

• Despliegues para entornos de producción
– Requiere que primero se instalen y configuren la base de datos de
producción para Cloudera Manager Server y Hive Metastore.
Existen dos opciones de instalación:
• Instalación Manual utilizando los Paquetes de Cloudera Manager
– Los administradores instalan Oracle JDK, y los paquetes de Cloudera Manager
Server y de la base de datos embebida PostgreSQL en el host Cloudera Manager
Server.
• Instalación manual utilizando los Tarballs de Cloudera Manager
– Los adminsitradores instalan Oracle JDK, Cloudera Manager Server, y Cloudera
Manager Agent software como tarballs y utilizan Cloudera Manager para
automatizar la instalación de CDH y el software de servicios gestionados como
parcels.

———————————————————————————————————————

EMPEZAMOS CON LA INSTALACION

Crear usuarios comunes:
xxxxxxx@ubuntu$ sudo addusr

Deshabilitar IPv6:
user@ubuntu$ sudo nano /etc/sysctl.conf
• Añadir al final:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
• Aplicar cambios:
user@ubuntu$ sudo sysctl -p

• Identificar nodos del cluster:

Es decir, rellenamos correctamente el archivo hosts.
user@ubuntu$ sudo nano /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.0.19   nodemaster

192.168.0.17   node1

192.168.0.18   node2

• Configurar NTP (Network Time Protocol)
user@ubuntu$ sudo nano /etc/ntp.conf
(comentar los servidores que vienen por defecto,
y añadir al final:)
#cluster configuration
restrict <red_del_cluster> mask
<mascara_del_cluster> nomodify notrap
server 193.146.78.15 iburst
server <ip_del_master> iburst

• Añadir user a “sudoers”, usuario con capacidad de
ejecutar comandos de administrador, sin necesidad de
contraseña:
user@cdhmaster:~$ sudo visudo
Añadir al final:
user ALL=(ALL:ALL) NOPASSWD: ALL

• Añadir repositorios de Cloudera para Ubuntu

user@ubuntu $ sudo wget ‘http://archive.cloudera.com/cdh5/ubuntu/
trusty/amd64/cdh/cloudera.list’ -O /etc/apt/sources.list.d/
cloudera.list
user@ubuntu $ wget http://archive.cloudera.com/cdh5/ubuntu/trusty/
amd64/cdh/archive.key -O archive.key
user@ubuntu $ sudo apt-key add archive.key
user@ubuntu $ sudo apt-get update
user@ubuntu $ sudo nano /etc/apt/preferences.d/cloudera.pref
Package: *
Pin: release o=Cloudera, l=Cloudera
Pin-Priority: 501

NOTA: Estas lineas anteriores las añadimos en el fichero “cloudera.pref”.

• Actualizar el servidor
user@ubuntu $ apt-get upgrade
• Reiniciar las máquinas
user@ubuntu $ sudo reboot

———————————————————————————————————–

En el Master
user@cdhmaster$ wget http://archive.cloudera.com/cm5/
installer/latest/cloudera-manager-installer.bin
user@cdhmaster$ chmod u+x cloudera-managerinstaller.
bin

Aqui ejecutamos la instalación, a partir de este momento la instalación es visual.
user@cdhmaster$ sudo ./cloudera-manager-installer.bin

• Antes de proceder, reducir el parámetro de memoria RAM
consumida por Cloudera Manager .
user@cdhmaster$ sudo nano /etc/default/cloudera-scmserver
export CMF_JAVA_OPTS=”-Xmx1g -XX:MaxPermSize=256m –
XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp”

Cuando terminemos la instalación , accedemos via web para administrar:

http://ip_master:7180/cmf/login
User: admin
Password: admin

1

2

3

4

En esta pantalla anterior podemos ver los distintos modos de licenciamiento que tenemos y funcionalidades.

5

6

En esta pantalla , separados por comas, introducimos las IPS de los servidores (tanto nodos como el nodemaster).

7

Esta parte la dejamos por defecto.

8

Marcamos solo la primera opcion.

9

Aqui es donde especificamos el usuario con el que el master se va a conectar a los demás nodos para instalar el agente, nos fijamos que funciona con SSH.

10

Este error aparece cuando tenemos un problema de resolucion de nombres, podemos asegurarnos que funcionara, si el fichero “hosts” tiene correctamente los nombres e ips de todos los servidores, (tanto en el nodemaster como en cada uno de los nodos), todos tienen que tener conocimiento de todos.

Realmente el error es de falta de latido del agente.

11

En esta pantalla especificamos los servicios que vamos a necesitar en nuestro Hadoop.

12

Esta pantalla es donde asignamos que roles va a tener qué servidor, (lo podemos cambiar mas adelante una vez instalado todo).

13

Parámetros de configuracion del cluster, que, de momento podemos dejarlo por defecto.

14

Ya lo tenemos instalado !!

Asegurarnos que “selinux” está desactivado, desactivarlo sino.

cambio fichero desabilitar y ver status SELINUX

SELINUX a disabled

Si hiciera falta desactivar el firewall.

desactivar firewall ubuntu

Instalado. En el próximo post, accedemos via web y gestionamos el cluster. También realizaremos ejemplos de utilización.

Un saludo

BIG DATA. Conceptos. Laboratorio 1

BIG DATA. Conceptos. Laboratorio 1

La idea es en este post es de forma muy resumida, explicar lo que es bigdata , conceptos y herramientas, para posteriormente en otro post, comenzar con la instalación de la infraestructura necesaria paso a paso.

Comenzamos por una de las definiciones de BIGDATA:

“Big Data” hace referencia al conjunto de información que
es demasiado compleja como para ser procesada mediante
TI tradicionales de manera aceptable

La palabra clave es …”compleja“.

1

Terabytes de datos (volumen), velocidad de los datos que cambian rápidamente en tiempo real, datos que muestran múltiples formas (ficheros de imagen, de video, texto en diversos formatos…), “variedad”…

Hadoop simplificado, esquema:

2

Tenemos varias distribuciones de Hadoop:

• Cloudera
• HortonWorks
• MapR
• IBM BigInsights
• Amazon EC2
• Microsoft Azure HDInsight

(En nuestro laboratorio vamos a montar Cloudera).

3

¿Que componentes tenemos?

APACHE HADOOP

• Sistema que permite una computación
– Fiable,
– Escalable, y
– Distribuida
• Un Framework que permite el procesamiento distribuido
de grandes conjuntos de datos sobre clusters de
ordenadores.

Hadoop common: utilidades comunes que dan soporte al
resto de los módulos de Hadoop
Hadoop Distributed File System (HDFS): sistema de ficheros
distribuido.
Hadoop YARN: sistema para la planificación de trabajos y
gestión de recursos del cluster
Hadoop MapReduce: sistema basado en YARN para
procesamiento paralelo de grandes volúmenes de datos

¿Quienes usan  Hadoop?

Adobe

• EBay
– 532 nodes cluster (8 * 532 cores, 5.3PB).
– Heavy usage of Java MapReduce, Apache Pig, Apache Hive,
Apache HBase
Lo usan para optimizaciones de búsquedas.

• Facebook
– Lo utilizan para almacenar copias de los logs internos y dimensionar los origines de datos y utilizar los origenes para sacar reportes.
– Currently we have 2 major clusters:
• A 1100-machine cluster with 8800 cores and about 12 PB raw storage.
• A 300-machine cluster with 2400 cores and about 3 PB raw storage.
– Each (commodity) node has 8 cores and 12 TB of storage.
– We are heavy users of both streaming as well as the Java APIs. We have
built a higher level data warehousing framework using these features
called Hive (see the http://hadoop.apache.org/hive/).

• LinkedIn
– Utilizan GRIDS (cluster de clusters)
– Hardware:
• ~800 Westmere-based HP SL 170x, with 2×4 cores, 24GB RAM, 6x2TB SATA
• ~1900 Westmere-based SuperMicro X8DTT-H, with 2×6 cores, 24GB RAM, 6x2TB SATA
• ~1400 Sandy Bridge-based SuperMicro with 2×6 cores, 32GB RAM, 6x2TB SATA
– Software:
• RHEL 6.3
• Sun JDK 1.6.0_32
• Apache Hadoop 0.20.2+patches and Apache Hadoop 1.0.4+patches
• Pig 0.10 + DataFu
• Azkaban and Azkaban 2 for scheduling
• Apache Hive, Apache Avro, Apache Kafka, and other bits and pieces…
– Lo utilizan para descubrir gente que podrias conocer…

• Spotify
– Lo utilizan para generacion de contenidos, agregar datos y analisis y reporting.
– 690 node cluster = 8280 physical cores, 38TB RAM, 28 PB
storage
– +7,500 daily Hadoop jobs (scheduled by Luigi, our homegrown
and recently open-sourced job scheduler – code and
video)

Twiter….

HDFS

• Diseñado para ejecutarse en Hw común (commodity)
• Tolerante a fallos
• Diseñado para trabajo por lotes (batch)
• Diseñado para manejar ficheros grandes, enfocado en muchos
accesos (throughput), más que en velocidad (latencia)
• Modelo: escribir una vez, leer muchas
• Importancia: es más barato mover la computación que los datos
• Portabilidad

Arquitectura de HDFS

4

Almacenamiento NOSQL

• Base de Datos de nueva generación que en su mayoría
aborda algunas de las siguientes características:
– no relacional,
– distribuida,
– open-source, y
– horizontalmente escalable

• Qué es Hbase?
– En Hbase los datos se almacenan en tablas, las cuales tienen filas
y columnas… pero mejor verlo como un mapa u objeto
multidimensional
– Una tabla de Hbase contiene multiples filas.
– Una fila de datos tiene una clave ordenable y un número arbitrario
de columnas. La tabla se almacena de forma dispersa, de modo
que las filas de una misma tabla pueden tener columnas tan
variadas como se quiera.

• Map: filas de datos

• Sorted Map: filas ordenadas por la clave

• Multidimensional: familias de columnas por cada fila

• Multidimensional: una familia de columnas puede tener
varias columnas, identificadas por una etiqueta o qualifier

• Multidimensional: timestamp

Procesamiento de datos

• Varios modos de alimentar un sistema Hadoop:
– Por lotes (batch): tengo todos los datos y los proceso
– En tiempo real (streaming): según se generan los eventos los
computo

Batch MAP REDUCE

Marco para escribir aplicaciones que procesan enormes cantidades
de datos de forma paralela en grandes clusters formados por
hardware común.
• MapReduce job
– Divide el conjunto de datos de entrada en pedazos (chunks) que son
procesados por tareas “map” de forma paralela.
– Ordena las salidas de los “maps”, que son entrada a las tareas
“reduce”.
– Opera sobre pares clave-valor.
– No necesariamente en Java.

Ejemplo MAP REDUCE:

• Ejemplo:
$ bin/hadoop dfs -cat /usr/joe/wordcount/input/file01
Hello World Bye World
$ bin/hadoop dfs -cat /usr/joe/wordcount/input/file02
Hello Hadoop Goodbye Hadoop

• Mapper:
– procesa cada línea (cada línea un map)
– Divide en tokens separados por espacios (palabras)
– Emite un conjunto de claves-valor, en modo <palabra, 1>
– Map 1:
• < Hello, 1>
• < World, 1>
• < Bye, 1>
• < World, 1>
– Map 2:
• < Hello, 1>
• < Hadoop, 1>
• < Goodbye, 1>
• < Hadoop, 1>

• Combiner:
– Cada map se ordena y genera agregados locales:
– Salida del primer Map:
• < Bye, 1>
• < Hello, 1>
• < World, 2>
– Salida del segundo Map:
• < Goodbye, 1>
• < Hadoop, 2>
• < Hello, 1>

• Reducer:
– Suma los valores (ocurrencias de cada clave):
• < Bye, 1>
• < Goodbye, 1>
• < Hadoop, 2>
• < Hello, 2>
• < World, 2>

Apache Pig

• Plataforma para análisis/tratamiento de datos
• Tiene un compilador que genera las sequencias de
MapReduce
• Lenguaje de alto nivel: Pig Latin:
A = LOAD ‘student’ USING PigStorage() AS (name:chararray, age:int,
gpa:float);
X = FOREACH A GENERATE name,$2;
DUMP X;
(John,4.0F)
(Mary,3.8F)
(Bill,3.9F)
(Joe,3.8F)

Streaming. Storm

• Sistema de computación distribuido en tiempo real
• “El hadoop del tiempo real”
• Lo que en Hadoop son trabajos MapReduce, en Storm
son topologías.
– El MapReduce es un trabajo específico,
– Una topología está haciendo el trabajo de forma persistente
• Se pueden crear clusters de Storm

Spark streaming

• Procesamiento en memoria (vs. MapReduce)
• Muy rápido
• Java, Scala, Python

INGESTION DE DATOS

• Varios modos de alimentar un sistema Hadoop:
– Por lotes (batch): hacer un volcado
– En tiempo real (streaming): según se generan los
eventos

Ingestion de datos por lotes HDFS

• La forma más sencilla, pero debemos tener los datos en
ficheros
$ hadoop fs –put <nombre_fichero>

Apache sqoop

• Transfiere datos entre Hadoop y datos estructurados
como Bases de Datos Relacionales
$ sqoop import –connect jdbc:mysql://database.example.com/employees
–username aaron –password 12345
• No siempre tenemos los datos empaquetados en un
único fichero

5

Apache FLUME

• Servicio distribuido y fiable para recopilar, agregar y mover
grandes volúmenes de datos (de log) de forma eficiente
• De muchas y variadas fuentes de logs a un lugar
centralizado de almacenamiento de datos (ej. Hadoop)
• Cuando los datos se generan de forma continua
• No solo logs, también sirve para p.e. datos de tráfico de red,
datos generados por social media, emails, …

• Una fuente externa envía eventos a un agente Flume, en
un formato que Flume pueda reconocer.
• El evento se guarda en el canal, hasta que es consumido
por el sumidero (Sink)
• El Sink quita el evento del canal y lo pone en un
repositorio externo o en otro origen de Flume

6

• Origenes Flume:
– Avro
– Thrift
– Exec (el resultado de la ejecución de un comando Unix)
– Un directorio a la espera de nuevos ficheros y sus contenidos
– Twitter
– NetCat
– Syslog
– HTTP

• Canales Flume:
– Memoria
– JDBC
– Fichero
– …

• Sinks Flume:
– HDFS
– Avro
– Thrift
– IRC
– Fichero
– Hbase
– …

• El Sink HDFS crea un fichero, lo abre, mete datos, y
cierra el fichero de forma constante
• Se falla el Sink antes de cerrar el fichero, se pierden los
datos: falta persistencia
• En contra de la filosofía de Hadoop: ficheros grandes Vs.
muchos ficheros pequeños
– Sus metadatos se guardan en memoria del NameNode!!

Apache Kafka

• Servicio para registro de logs distribuido y particionado
• Rápido: un Kafka “broker” puede manejar cientos de
megabytes de lecturas y escrituras por segundo de miles
de clientes
• Escalable: los flujos de datos se pueden dividir por el
cluster, y así ser consumidos de forma distribuida
• Durable: los mensajes son persistentes (en disco)

CONSULTAS

hive

• Provee un mecanismo para proyectar estructuras de
datos y ser consultadas en un lenguaje pseudo-SQL:
HiveQL
• La consulta genera un conjunto de MapReduces, donde
su resultado se muestra como una tabla

Impala

• Mediante Impala se pueden consultar datos de HDFS o
de Hbase
• Se integra con Apache Hive, para compartir sus tablas y
BBDD.
• No usa MapReduce
• Es de Cloudera (MapR tiene Drill)

Solr

• Indexación de contenidos escalable, fiable y distribuido
• Capaz de Indexar:
– Texto
– JSON
– XML
– CSV

Análisis de datos

• In-Memory Analytics vs. In-Hadoop Analytics
• El fondo es el mismo, pero ahora:
– Distribuido
– Escalable
• Herramientas
– R
– Spark (Mllib)
– TODOS: RapidMiner, SAS, Teradata,…

Apache Mahout

• Algoritmos de Machine Learning por Lotes
• Algoritmos:
– Recomendador
– K-Means, Fuzzy K-Means clustering
– Clasificadores Naïve Bayes, Random Forest
– …
• Desde Abril 2014 se dejó de implementar

Apache spark

• Procesamiento en memoria (vs. MapReduce)
• Muy rápido
• Java, Scala, Python

RHdoop

• R: Software estadístico muy extendido
• RHadoop:
– ravro: lee/escribe ficheros en formato Avro
– rmr: funcionalidad MapReduce en R
– rhdfs: funciones de gestión de ficheros en HDFS
– rhbase: gestión de base de datos HBase desde R.

Otros..

Ozzie

• Programa flujos de trabajo para gestionar trabajos
Hadoop
• Orquesta trabajos MapReduce, generados en Java, Pig,
Hive, Sqoop,…

Zookeeper

• Servicio de mantenimiento de:
– Información de configuración
– Información de nombres (nodos)
– Sincronización de la distribución

Hardware para la infraestructura ¿qué necesito?

• En casa?
– Hardware (mínimo): 2*6core CPU, 24-64GB RAM, 1-2TB HDD
– Distribuciones Hadoop: Cloudera, MapR, Hortonworks
• En la nube?
– IaaS (Amazon Elastic Compute Cloud, Azure,…)
– PaaS (Amazon Elastic MapReduce, Azure HDInsight,…)
– SaaS (Teradata, sqlstream,…)

Especialidades de Hadoop

• Administración del cluster
• NoSQL
• Desarrollo (Java, Python, R, …)
• Machine Learning / Data Mining
• Visual analytics (d3.js, CartoDB, Gephi, Tableu,…)

Debemos preguntarnos…………..:

• ¿Qué preguntas debo responder?
• ¿Cómo recojo los datos?
• ¿Cómo los almaceno?
• ¿Cómo los analizo?
• ¿Cómo muestro los resultados?

En el siguiente post, comenzamos con lo que nos hace falta para montar una infraestructura de bigdata hadoop con cloudera, lo haremos paso a paso.

un saludo,