Configuración básica de Hadoop La distribución Cloudera Diego J. Bodas Sagi – Julio de 2014 Índice Cloudera y la máquina virtual Configuración de la máquina virtual Instalación básica Configuración del cluster Herramientas de administración Introducción al paradigma Big Data 2 Configuración básica de Hadoop Aunque en principio trabajaremos con la máquina virtual de cloudera (Cloudera QuickStart VM recomendado para principiantes), daremos algunas breves pinceladas de la configuración básica de Hadoop A la hora de descargar la MV de Cloudera, es importante seleccionar la versión correcta para el software de virtualización que vayamos a emplear • Vmware en mi caso (y atención a la versión) Permitir virtualización en la BIOS del equipo Introducción al paradigma Big Data 3 ¿Por qué emplear Cloudera? La parte administrativa de Hadoop NO es trivial Ensamblar correctamente todos los componentes puede convertirse en un problema Pero nuestro único problema debería ser analizar datos para obtener una ventaja estratégica Afortunadamente hay software que nos ayuda a gestionar Hadoop y las tecnologías relacionadas Hay otras opciones aparte de Cloudera Manager… Introducción al paradigma Big Data 4 Opciones Apache Hadoop • Versión oficial • Difícil proceso de integración Cloudera • Buena integración gracias al Cloudera Manager • Proveedor muy reconocido Hortonworks • Yahoo + Microsoft • Ahora mismo el gestor no es tan potente como el de Cloudera MAP R • Implementación propietaria en C++ • Buen rendimiento Introducción al paradigma Big Data 5 Infraestructura Máquina virtual de Cloudera • Centos S.O. • Usuarios: – cloudera / cloudera – root / cloudera • Usuarios hadoop (cloudera): – admin / admin • Inicializar sistema: – su –c ‘yum update’ – Ayuda: su –help – - c (ejecutar comando simple en la consola actual) – Sudo nautilus: lanzar explorador como root Introducción al paradigma Big Data 6 Navegadores web Preferentemente Firefox A veces problemas con Chrome Opción • Chromium – cd /etc/yum.repos.d – wget http://people.centos.org/hughesjr/chromium/6/chromium-el6.repo – yum install chromium Introducción al paradigma Big Data 7 Configurar Zona horaria Comportamiento del navegador de archivos Se debe tener en cuenta que es una “versión cloudera” con algunas configuraciones tapadas que puede hacer preciso algo de trabajo adicional para configurar algunas cosas Tampoco tiene mucho sentido al ser un entorno de aprendizaje perder tiempo en esto Introducción al paradigma Big Data 8 Compartir directorio con el host Mejor a través de samba • Habilitar una carpeta compartida en windows • Protegida por contraseña • En opciones avanzadas (propiedades compartir), marcar control total • Desde linux en la MV acceder a través de: – smb:\\ipDeMiEquipo • Copiar / Pegar entre la MV y la máquina residente SÍ funciona Introducción al paradigma Big Data 9 Comunicación mediante SSH La MV tiene su propia IP • “ifconfig” Desde la máquina windows local se puede conectar con la máquina virtual mediante SSH • Una buena opción es emplear SSH Secure Shell o similar Introducción al paradigma Big Data 10 Dos entornos interactuando Introducción al paradigma Big Data 11 ¡Espacio en disco en la MV! Las MV suelen venir configuradas para 20 GB de espacio en disco, algo relativamente corto. Para conseguir más espacio podemos: • Borrar o comprimir los archivos grandes que no necesitemos – usar el comando "du" en Linux – El comando "find / -size +10000k" también puede ser útil • HDFS tiene un comando "du" para eliminar lo que no necesitemos • Parar los agentes que estén recopilando información (por ejemplo, un proceso Flume (lo mencionaremos) que recoge información de internet) • VMware permite crear y añadir otro disco – Se puede montar el nuevo disco (http://www.techotopia.com/index.php/Adding_a_New_Disk_ Drive_to_a_CentOS_6_System) – y mover datos del primer disco al nuevo Introducción al paradigma Big Data 12 Mensaje particular Error: "NameNode in safe mode“. Ante una circunstancia especial (como disco lleno) el NameNode para a estado de sólo lectura A veces impide realizar cualquier operación Truco: • Comprobar que no están agregando nuevos ficheros a los DataNode, parando los servicios que sean necesarios • Desactivar el modo seguro – sudo -u hdfs hadoop dfsadmin -safemode leave • Borrar los ficheros que no sean necesarios – Emplear el comando –skipTrash para asegurarse de que, efectivamente, se eliminan y no se envían a la papelera Introducción al paradigma Big Data 13 Conexión a Internet Cloudera Manager necesita conexión a internet para enlazar correctamente con los repositorios configurados Si se quiere trabajar sin conexión a la red habría que configurar repositorios locales previamente configurados Introducción al paradigma Big Data 14 Módulos básicos de Hadoop La instalación de Hadoop contempla los siguientes módulos: • Hadoop Common: el paquete básico de Hadoop que permite manejar el resto de módulos • Hadoop Distributed File System (HDFS™): incluyendo todo lo necesario para gestionar el sistema de ficheros propio de Hadoop • Hadoop YARN: un framework para la planificación de procesos ( jobs) y la gestión de recursos del cluster • Hadoop MapReduce: sistema basado en YARN para el procesamiento paralelo de grandes conjuntos de datos Introducción al paradigma Big Data 15 Tipos de instalación Hay tres modos de instalación: • Local (Standalone) Mode: – No distribuido – Un único proceso Java – Útil en la fase de desarrollo (Debug) • Pseudo-Distributed Mode – Similar al anterior, pero cada proceso (daemon) de Hadoop se ejecuta en un hilo Java independiente – En principio, la versión de la MV de Cloudera se configura en este modo • Fully-Distributed Mode – Configuración recomendada para entornos en producción con un cluster a nuestra disposición Introducción al paradigma Big Data 16 Archivos de configuración Los archivos (XML) de configuración suelen estar en /etc/hadoop/conf (o en el directorio conf de donde se haya instalado hadoop) Para configurar Hadoop debemos indicar los valores de sus principales variables según el formato: <property> <name>property-name</name> <value>property-value</value> </property> En muchas ocasiones se suele añadir la línea <final>true</final> dentro la propiedad para evitar que los valores de las variables sean modificados por aplicaciones del usuario Introducción al paradigma Big Data 17 Los 3 archivos básicos core-site.xml: contiene los valores por defecto para las propiedades esenciales de Hadoop mapred-site.xml: contiene toda la información relativa a la configuración MapReduce hdfs-site.xml: contiene la información que permite gestionar correctamente el sistema de ficheros distribuido Introducción al paradigma Big Data 18 Localización de los archivos de configuración ¡El gran dilema! • Si descargamos la versión original de Hadoop de Apache, estos archivos están dentro del directorio /etc/hadoop • Es misión nuestra “colocarlos” correctamente en un directorio /conf bajo el directorio raíz de Hadoop Si realizamos una instalación en cluster es preciso copiar el directorio de instalación en todas las máquinas La estructura de directorios debe ser consistente en todos los nodos Introducción al paradigma Big Data 19 Los archivos de configuración en Cloudera Manager Cada vez que se inicia el cluster, Cloudera Manager crea los archivos de configuración necesarios (y no siempre en el mismo directorio, puesto que el ID del proceso forma parte del nombre del directorio) La configuración se pasa como parámetro a cada proceso que la precisa El usuario debe realizar toda la gestión de la configuración a través de las herramientas de Cloudera (para eso están) Introducción al paradigma Big Data 20 Descargando la configuración de Cloudera A través de Services All Services http://localhost:7180/cmf/services/status • Actions • View client configuration URLs • Nos podemos descargar la configuración de HDFS Introducción al paradigma Big Data 21 Configurando las variables con Cloudera Manager (hdfs1) Introducción al paradigma Big Data 22 Variables a configurar fs.default.name (core-site.xml): ubicación del NameNode para el cluster. Las instancias DataNode se registrarán en este NameNode. Los programas clientes también se conectarán a él para obtener la ubicación de los datos que precisan dfs.name.dir (core-site.xml): directorio del sistema de archivos local donde se guardan los metadatos del NameNode. Por defecto (desarrollo), también es el directorio /tmp dfs.data.dir (hdfs-site.xml): directorio del sistema de ficheros local donde la instanciación del DataNode almacenará sus datos. En un entorno en cluster los DataNode estarán distribuidos en diferentes máquinas, se suele estandarizar esta configuración por cuestiones de mantenimiento. Por defecto y para objetivos de evaluación, los datos se dirigen al directorio /tmp Introducción al paradigma Big Data 23 Variables a configurar dfs.datanode.data.dir (hdfs-site.xml): lista de directorios (separados por coma) del sistema de ficheros local donde el DataNode almacena la información. Los directorios que no existen se ignoran mapreduce.jobtracker.address (mapred-site.xml): indica el equipo y puerto donde se ejecuta el MapReduce job tracker. Si está configurado a “local”, se ejecuta en un único hilo Introducción al paradigma Big Data 24 Replicación dfs.replication (hdfs-site.xml): factor de replicación por defecto para cada BLOQUE de datos en el sistema. En un sistema en producción (cluster) se suele configurar a 3. En pruebas (debug) con una instalación en un único nodo se puede configurar a 1 Importante controlar cómo va creciendo el espacio en disco para ampliar (si fuese necesario) antes de que se produzca la saturación Afortunamente, Hadoop tiene un buen sistema de balanceo Introducción al paradigma Big Data 25 Otros archivos importantes slaves: lista de las máquinas (una por línea) correspondientes a los esclavos del cluster (por defecto sólo tiene localhost) hadoop-default.xml: configuración genérica para los procesos de Hadoop y MapReduce. NO MODIFICAR Algunas versiones e instalación poseen el archivo de configuración hadoop-site.xml donde configuran gran parte de las variables necesarias Introducción al paradigma Big Data 26 Evitando problemas de permisos Para poder interactuar correctamente con HDFS a través de los comandos correspondientes: • GUI: localhost:7180hdfs1ConfigurationView and EditDesactivar “Check HDFS Permissions” • Reiniciar servicio (reinicar MV en el peor de los casos) Al tener disponible Cloudera Manager, es lógico que se desactiven otras opciones por cuestiones de seguridad Introducción al paradigma Big Data 27 Seguridad básica Lo que hemos hecho usando el interfaz gráfico es cambiar el valor de una propiedad de configuración de hdfs: <property> <name>dfs.permissions</name> <value>false</value> </property> Introducción al paradigma Big Data 28 Posibles arquitecturas Acceso mediante SSH ¡Cuidado porque si ésta es la arquitectura, primero estamos accediendo a un nodo NO Hadoop y NO funcionarían los comandos de Hadoop Fuente: Hortonworks Introducción al paradigma Big Data 29 Instalación habitual (MRv1) Es frecuente instalar el NameNode y JobTracker en el mismo nodo En caso contrario, la ejecución de los archivos binarios se debe lanzar en el JobTracker La ubicación del JobTracker se indica en el archivo mapredsite.xml <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration Introducción al paradigma Big Data 30 Facilitando el acceso al JobTracker Pero si la labor de programación NO se realiza en el mismo nodo donde se ubica el JobTracker (algo habitual en producción), podemos emplear los métodos de la clase Configuración para indicar dónde lanzar los procesos y dónde está el NameNode Introducción al paradigma Big Data 31 ¿Cuántos nodos necesito? La opción más sencilla se calcula teniendo en cuenta la capacidad total de la que podemos necesitar hacer uso en HDFS • Por tanto consideramos el tamaño de los discos • Pero también debemos tener en cuenta la replicación de los datos y el espacio extra que HDFS necesita para mantener archivos temporales • También hay que tener en cuenta que existe un factor de compresión a la hora de almacenar (variable) • Por último, hay que tener en cuenta que cuanto más grande el cluster, más espacio necesitaremos para archivos temporales, información de gestión… Introducción al paradigma Big Data 32 Capacidad HDFS • Teniendo en cuenta un factor 3 de replicación 𝐻𝐷𝐹𝑆𝑠𝑖𝑧𝑒 𝑇𝑜𝑡𝑎𝑙𝑇𝐵𝐻𝐷 /3 𝑠𝑖 𝑐𝑙𝑢𝑠𝑡𝑒𝑟 < 10 𝑛𝑜𝑑𝑜𝑠 = 𝑇𝑜𝑡𝑎𝑙𝑇𝐵𝐻𝐷 /4 𝑒. 𝑜. 𝑐 El todo es más que la suma de las partes (cuanto más grande mayor es el “esfuerzo” de gestión • Donde TotalTBHD = Capacidad total en TB de los discos duros Introducción al paradigma Big Data 33 Ejemplo ¿Qué información procesamos? • Nuestra compañía genera 20 TB de datos mensuales • Operando dichos datos obtenemos 1 TB de información al año • Nuestro histórico es de 4 años • Anualmente generamos: (20 x 12) + 1 = 241 TB • Teniendo en cuenta el histórico de 4 años: 4 x 241 = 964 TB Supongamos que cada servidor esclavo nuestro tiene 10 discos de 3 TB cada uno • Por tanto, un servidor esclavo tiene capacidad para almacenar (10 x 3) = 30 TB Con estos datos, vamos a fórmula anterior Introducción al paradigma Big Data 34 Solución TotalTBHD = (#esclavos x 30) TB 𝐻𝐷𝐹𝑆𝑠𝑖𝑧𝑒 = 964 TB Mirando las cifras está claro que necesitamos más de 10 nodos, por tanto el factor multiplicativo es 4 964 = (#𝑒𝑠𝑐𝑙𝑎𝑣𝑜𝑠 𝑥 30) 4 Despejando • #esclavos = (964 x 4) / 30 = 128,5 ≈ 129 Introducción al paradigma Big Data 35 Cloudera Manager Interfaces Web • NameNode: http://localhost:50070/ • JobTracker: http://localhost:50030/ • Cloudera Manager: http://localhost:7180/ ¿Por qué Cloudera? • Porque facilita el proceso de integración • Porque proporciona un entorno de gestión sencillo y fiable Introducción al paradigma Big Data 36 Iniciando servicios Introducción al paradigma Big Data 37 Iniciando monitorización Introducción al paradigma Big Data 38 Estado NameNode Introducción al paradigma Big Data 39 Estado JobTracker Introducción al paradigma Big Data 40 La papelera Cloudera mantiene una papelera de reciclaje para evitar eliminaciones accidentales Muy recomendado mantenerlo en producción Pero controlando su tamaño y vaciándola periódicamente De cara al curso de formación de puede desactivar para tener más espacio en disco • En el servicio HDFSConfigurationView and Edit Gateway Default Group Desactivar “use Trash” Introducción al paradigma Big Data 41 Configuración de YARN Introducción al paradigma Big Data 42 YARN - configuración No hay jobtracker o tasktracker Ahora tenemos un gestor de recursos “resource manager” que de ejecuta en la misma máquina que el namenode HDFS (si el cluster es pequeño) También se puede ejecutar el gestor de recursos en una máquina dedicada aparte Cada esclavo del cluster ejecuta un gestor del nodo (“node manager”) Introducción al paradigma Big Data 43 YARN: características Iniciar: start-all.sh script (ubicando en el directorio bin de la instalación por defecto de Hadoop) • En Cloudera: iniciar servicio a través de Cloudera Manager El script inicia el resource manager y un node manager para cada máquina incluída en el fichero de configuración slaves YARN posee un demonio que gestiona los detalles del histório de procesos ejecutados anteriormente También proporciona una interfaz gráfica de acceso Introducción al paradigma Big Data 44 YARN: acceso web Introducción al paradigma Big Data 45 YARN: gestión de memoria YARN permite que cada amplicación emplee un tamaño de memoria concreto pero limitado El número de tareas ejecutándose en un nodo depende de la suma de los requisitos de memoria A diferencia del esquema anterior, el número de reducers puede ir variando • Al principio los reducers deben trabajar de forma conjunta con las tareas de mapeo • Finalizadas las tareas de mapeo, sólo son necesarios reducers. El esquema YARN permite que en esta parte aparezcan nuevos reducers aprovechando mejor los recursos del sistema De cara a la gestión de los recursos de memoria, YARN no distingue entre tareas de mapeo y reducers Introducción al paradigma Big Data 46 YARN y configuración (memoria) Números habituales: • Cada Hadoop daemon: 1000 MB, – Datanode + node manager = 2000 MB. • yarn.nodemanager.resource.memory-mb = 8192 MB (otros procesos por nodo) • mapred.child.java.opts: tamaño de la pila de la JVM para procesos map o reduce (defecto -Xmx800m = 800 MBs) • mapreduce.map.memory.mb (o mapreduce.reduce.memory.mb): memoria reservada para “los contenedores” emplados en las tareas map o reduce en cada job). Por defecto 1024 MBs Introducción al paradigma Big Data 47 Configuración YARN en Cloudera Introducción al paradigma Big Data 48 Ejecución Depende de como se haya montado el cluster y de la versión de Cloudera que tengamos, la versión por defecto será mapreduce1 o yarn1 No obstante: Si tenemos los dos servicios activos, dirigir el job al jobtracker (mapreduce1) o al resource manager (yarn1) que deberán estar ejecutándose en máquinas distintas Introducción al paradigma Big Data 49 Resumen Se ha presentado la máquina virtual que proporciona Cloudera, ideal para el proceso de aprendizaje Se han proporcionado nociones sobre la configuración básica de Hadoop Se ha explicado el procedimiento para calcular el número de nodos que necesito Se ha comentado brevemente la interfaz web de administración que presenta Cloudera Introducción al paradigma Big Data 50
© Copyright 2024