Segunda parte del Taller "Monta una Infraestructura Big Data para tu Empresa", impartido por Urko Zurutuza de Mondragon Unibertsitatea en Enpresa Digitala. En esta segunda parte, se aborda la instalación de un cluster mediante Cloudera Manager 5
Monta una Infraestructura Big Data para tu Empresa - Sesión II
1. Taller:
“Monta una infraestructura Big Data para
tu Empresa”
Urko Zurutuza
Dpto. Electrónica e Informática
Mondragon Goi Eskola Politeknikoa JMA
Mondragon Unibertsitatea
2. Agenda
• Día 1: Introducción al Big Data
• Día 2: Instalación de un cluster
Cloudera
• Día 3: Ejercicios sobre Cloudera
5. Sistemas Operativos
• 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
6. JDK (Java Development Kit)
• 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.
7. Navegadores
• 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
8. Bases de Datos
• 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.
9. 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.
10. 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.
11. Memoria RAM
• Se recomiendan 4 GB para la mayoría de los
casos, siendo esto un requisito en el caso que
se use una base de datos Oracle.
• En caso contrario y en una instalación de
menos de 100 hosts, podría ser suficiente con
2 GB.
• Es conveniente reducir la cantidad máxima de
memoria que usa Cloudera Manager Server
para sus servicios Java.
14. Requisitos de Red
Cloudera Manager, CDH5 y
HUE funcionan
sobre Python 2.6 o
2.7
• 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
15. Requisitos de Red
Cloudera Manager, CDH5 y
HUE funcionan
sobre Python 2.6 o
2.7
• 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.
16. Requisitos de Red
Cloudera Manager, CDH5 y
HUE funcionan
sobre Python 2.6 o
2.7
• 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.
18. Tipos de Instalación de Cloudera
Manager
• 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
19. Tipos de Instalación de Cloudera
Manager
• Despliegues de demostración y pruebas de
concepto totalmente automatizada:
– Oracle JDK,
– Cloudera Manager Server,
– PostgreSQL embebida,
– Cloudera Manager Agent,
– CDH,
– software de servicios gestionados en los hosts del
cluster.
– Además, configura las bases de datos de Cloudera
Manager Server y Hive.
20. Tipos de Instalación de Cloudera
Manager
• Despliegues de demostración y pruebas de
concepto totalmente automatizados
– Recomendada para pruebas de concepto y
demostraciones. No para despliegues de producción.
– Este sistema no está pensado para poder escalar las
bases de datos en el caso de que el cluster crezca
mucho.
– 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.
• 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
21. Tipos de Instalación de Cloudera
Manager
• 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
22. Tipos de Instalación de Cloudera
Manager
Hoy realizaremos un despliegue de
demostración y prueba de concepto
29. Configuraciones iniciales
• Configurar NTP (Network Time Protocol)
user@ubuntu$ sudo apt-get install ntp
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
30. Configuraciones iniciales
• 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
33. Instalación de Cloudera Manager
Server
• En el Master
user@cdhmaster$ wget
http://archive.cloudera.com/cm5/installer/latest/clou
dera-manager-installer.bin
user@cdhmaster$ chmod u+x cloudera-manager-
installer.bin
user@cdhmaster$ sudo ./cloudera-manager-installer.bin
34. Instalación de Cloudera Manager
Server
• Antes de proceder, reducir el parámetro de
memoria RAM consumida por Cloudera
Manager (debido a los escasos recursos del
Curso):
user@cdhmaster$ sudo nano /etc/default/cloudera-scm-
server
export CMF_JAVA_OPTS="-Xmx1g -XX:MaxPermSize=256m -
XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp"
35. Instalación de Cloudera Manager
Server
http://ip_master:7180/cmf/login
User: admin
Password: admin
38. Cloudera Manager
• “single user”. Este modo hace que el
sistema no necesite crear usuarios para los
distintos componentes de los que se
compone Cloudera, ya que los gestiona
desde un mismo usuario. En nuestro caso,
no seleccionaremos está opción (implica
cierto trabajo manual).
42. Cloudera Manager
• Una vez finalizada la instalación, “tuneamos” el
Master para evitar problemas de memoria:
user@cdhmaster:/etc$ sudo sysctl vm.swappiness=0
y/o
user@cdhmaster:/etc$ sudo nano /etc/sysctl.conf
al final añadir:
vm.swappiness=0
44. Roles de los Servicios
Gestionados
• Una vez instalado y desplegado, deberemos
asignar los roles a los nodos.
• El ayudante de instalación evalúa las
configuraciones del hardware (número de
núcleos, RAM, espacio,…) para determinar
los mejores nodos para cada rol.
• Por lo general, la propuesta realizada no se
modificará a no ser que se vea estrictamente
necesario, o se quiera separar los roles en
diferentes nodos por alguna razón concreta.
51. Cloudera Manager
• Diagnóstico, de los procesos y servicios en
ejecución
• Auditorías: podemos realizar búsquedas y
generar filtros para recuperar registros de
auditoría o logs.
• Charts: sirve para poder crear nuestro propio
panel de mandos de donde monitorizar los
recursos del Cluster
• Administración: permite visualizar y “tocar”
algunos parámetros relacionados con la
eficiencia, seguridad, monitorización,