Monta una Infraestructura Big Data para tu Empresa - Sesión II

Preview:

Citation preview

Taller:

“Monta una infraestructura Big Data para tu Empresa”

Urko Zurutuza

Dpto. Electrónica e Informática

Mondragon Goi Eskola Politeknikoa JMA

Mondragon Unibertsitatea

Agenda

• Día 1: Introducción al Big Data

• Día 2: Instalación de un cluster

Cloudera

• Día 3: Ejercicios sobre Cloudera

Índice

1. Requisitos

2. Consideraciones de Red y de Seguridad

3. Instalación

4. Instalando Cloudera Manager

5. Cloudera Manager

Requisitos

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

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 unaversión JDK soportada por todos los clusters Hadoopque 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.

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

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.

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 ClouderaManager Server.

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 ClouderaManager Server.

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.

Python

• Cloudera Manager, CDH5 y HUE

funcionan sobre Python 2.6 o 2.7

Consideraciones de Red y Seguridad

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

Requisitos de Red

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

• En la mayoría de los casos, ClouderaManager 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.

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.

Instalación

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

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 ClouderaManager Server y Hive.

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

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 ClouderaManager 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.

Tipos de Instalación de Cloudera

Manager

Hoy realizaremos un despliegue de

demostración y prueba de concepto

Instalando Cloudera Manager

Arquitectura del sistema

Cloudera Manager

Nombre: taldeanodo1

ip: 192.168.0.100

Roles

Nombre: taldeanodo4

ip: 192.168.0.101

Roles

Nombre: taldeanodo2

ip: 192.168.0.101

Roles

Nombre: taldeanodo3

ip: 192.168.0.101

Configuraciones iniciales

• Crear usuarios comunes:

root@ubuntu$ adduser user

xxxxxx@ubuntu$ sudo adduser user

user/eskola2016

xxxxxxx@ubuntu$ logout

Configuraciones iniciales

• 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

Configuraciones iniciales

• Identificar nodos del cluster:user@ubuntu$ sudo nano /etc/hosts

127.0.0.1 localhost

IP_nodo1 taldeanodo1

IP_nodo2 taldeanodo2

IP_nodo3 taldeanodo3

IP_nodo4 taldeanodo4

Configuraciones iniciales

• Dar nombre al host. Ej:

user@ubuntu$ sudo nano /etc/hostname

taldeanodo1

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

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

Configuraciones iniciales

• 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.k

ey -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

Configuraciones iniciales

• Actualizar el servidor

user@ubuntu $ sudo apt-get upgrade

• Reiniciar las máquinas

user@ubuntu $ sudo reboot

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

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"

Instalación de Cloudera Manager

Server

http://ip_master:7180/cmf/login

User: admin

Password: admin

Cloudera Manager

Cloudera Manager

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).

Cloudera Manager

Cloudera Manager

Cloudera Manager

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

Añadir Servicios Gestionados

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.

Roles de los Servicios

Gestionados

Roles de los Servicios

Gestionados

Configuración de la Base de Datos

Cloudera Manager

Fin!

Cloudera Manager

• Información sobre las máquinas que puede

monitorizar Cloudera Manager (agentes de

Cloudera)

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, autenticación,…

Añadir Hosts al Cluster

Añadir Hosts al Cluster

Fin!

Eskerrik asko

www.mondragon.edu

Urko Zurutuza

Mondragon Unibertsitatea

uzurutuza@mondragon.edu

https://es.linkedin.com/in/uzurutuz

a/

@urkovain