60
Introducción a Hadoop. Instalación en AWS Fco. Javier Lahoz Sevilla

Curso Hadoop. FcoJavierLahozSevilla v1.0.pdf · Introducción+a Hadoop. InstalaciónenAWS • Parte+1.+Introducción+a Hadoop+ – ¿Que+es+Hadoop?+ – Versionesde+Hadoop+ – Gesón

Embed Size (px)

Citation preview

Introducción  a  Hadoop.  Instalación  en  AWS  

Fco.  Javier  Lahoz  Sevilla  

Introducción  a  Hadoop.  Instalación  en  AWS  

•  Parte  1.  Introducción  a  Hadoop  –  ¿Que  es  Hadoop?  –  Versiones  de  Hadoop  –  GesCón  y  monitorización  de  un  cluster  –  Configuración  de  un  cluster  –  Dimensionamiento  de  un  cluster  –  Principales  tecnologías  del  ecosistema  de  Hadoop  –  Principales  distribuciones  de  Hadoop  

•  Parte  2.  Instalación  en  AWS  –  Instalación  y  configuración  en  una  instancia  EC2  –  Escalar  a  varias  instancias  y  configurar  el  cluster  –  Probar  el  correcto  funcionamiento  del  cluster  

¿Que  es  Hadoop?  

•  Hadoop  es  un  sistema  de  código  abierto  que  se  uCliza  para  almacenar,  procesar  y  explotar  grades  volúmenes  de  datos.  Hadoop  se  inspiró  en  los  documentos  de  Google  para  MapReduce  y  Google  File  System.  

•  Componentes:  –  HDFS.  El  Hadoop  Distributed  File  System  es  un  sistema  de  archivos  

distribuido,  escalable  y  consistente  a  fallos.  

–  MapReduce.  Paradigma  de  computación  paralela  donde  se  distribuyen  las  tareas  para  su  procesamiento  unitario  (Map)  y  se  agrupan  una  vez  procesados  (Reduce).  

  Fco.  Javier  Lahoz  Sevilla  

Maquina  2          

¿Que  es  Hadoop?  

•  HDFS  

                           Fichero  1                                Fichero  2                              Fichero  3        

 

Máquina  1          

B1   B1   B1  

B1  

B1  

B1  

B2  

B2   B2  

B2   B3  

Maquina  3          

B3  

B1   B2  B3   B1   B2  B1  

Fco.  Javier  Lahoz  Sevilla  

¿Que  es  Hadoop?  

•  MapReduce      

 

   

 

esto  es  una  prueba  prueba  de  contar  palabras  palabras  de  una  prueba    

Map  Maquina  1  

 (esto,1)  (es,1)  (una,1)  

(prueba,1)  

Maquina  2    

(prueba,1)  (de,1)  

(contar,1)  (palabras,1)  

Maquina  3    

(palabras,1)  (de,1)  (una,1)  

(prueba,1)  

Input  

Fco.  Javier  Lahoz  Sevilla  

¿Que  es  Hadoop?  

•  MapReduce      

 

   

 

esto  es  una  prueba  prueba  de  contar  palabras  palabras  de  una  prueba    

Map  Maquina  1  

 (esto,1)  (es,1)  (una,1)  

(prueba,1)  

Maquina  2    

(prueba,1)  (de,1)  

(contar,1)  (palabras,1)  

Maquina  3    

(palabras,1)  (de,1)  (una,1)  

(prueba,1)  

Suffle&Sort  Maquina  1  

(es,1)  (esto,1)  

(prueba,1)  (prueba,1)  (prueba,1)  

Maquina  2    

(contar,1)  (de,1)  (de,1)  

Maquina  3    

(palabras,1)  (palabras,1)  (una,1)  (una,1)  

Input  (prueba,(1,1,1))  }

(de,(1,1))  }

(palabras,(1,1))  }

Fco.  Javier  Lahoz  Sevilla  

¿Que  es  Hadoop?  

•  MapReduce      

 

   

 

esto  es  una  prueba  prueba  de  contar  palabras  palabras  de  una  prueba    

Map  Maquina  1  

 (esto,1)  (es,1)  (una,1)  

(prueba,1)  

Maquina  2    

(prueba,1)  (de,1)  

(contar,1)  (palabras,1)  

Maquina  3    

(palabras,1)  (de,1)  (un,1)  

(fichero,1)  

Maquina  1  (es,1)  (esto,1)  

(prueba,1)  (prueba,1)  (prueba,1)  

Maquina  2    

(contar,1)  (de,1)  (de,1)  

Maquina  3    

(palabras,1)  (palabras,1)  (una,1)  (una,1)  

Reduce  Maquina  1  

 (contar,1)  (prueba,3)  (es,1)  (esto,1)  

Maquina  3    

(de,2)  (palabras,2)  (una,2)  

Input  

Maquina  2          

Fco.  Javier  Lahoz  Sevilla  

Suffle&Sort  

¿Que  es  Hadoop?  

•  MapReduce      

 

   

 

esto  es  una  prueba  prueba  de  contar  palabras  palabras  de  una  prueba    

Map  Maquina  1  

 (esto,1)  (es,1)  (una,1)  

(prueba,1)  

Maquina  2    

(prueba,1)  (de,1)  

(contar,1)  (palabras,1)  

Maquina  3    

(palabras,1)  (de,1)  (un,1)  

(fichero,1)  

 Maquina  1  

(es,1)  (esto,1)  

(prueba,1)  (prueba,1)  (prueba,1)  

 

Maquina  2    

(contar,1)  (de,1)  (de,1)  

Maquina  3    

(palabras,1)  (palabras,1)  (una,1)  (una,1)  

Reduce  Maquina  1  

 (contar,1)  (prueba,3)  (es,1)  (esto,1)  

Maquina  3    

(de,2)  (palabras,2)  (una,2)  

Input  (contar,1)  (de,2)  

(prueba,3)  (palabras,2)  (una,2)  (es,1)  (esto,1)  

 

Output  

Maquina  2          

Fco.  Javier  Lahoz  Sevilla  

Suffle&Sort  

Introducción  a  Hadoop.  Instalación  en  AWS  

•  Parte  1.  Introducción  a  Hadoop  –  ¿Que  es  Hadoop?  –  Versiones  de  Hadoop  –  GesCón  y  monitorización  de  un  cluster  –  Configuración  de  un  cluster  –  Dimensionamiento  de  un  cluster  –  Principales  tecnologías  del  ecosistema  de  Hadoop  –  Principales  distribuciones  de  Hadoop  

•  Parte  2.  Instalación  en  AWS  –  Instalación  y  configuración  en  una  instancia  EC2  –  Escalar  a  varias  instancias  y  configurar  el  cluster  –  Probar  el  correcto  funcionamiento  del  cluster  

Versiones  de  Hadoop  

•  Existen  diversas  versiones  que  se  pueden  agrupar  en  Hadoop  1  y  Hadoop  2  según  los  demonios  que  las  componen.  

•  Ambas  versiones  Cenen  demonios  similares  para  el  almacenamiento  de  los  datos:  –  NameNode,  corre  en  el  nodo  maestro  para  gesConar  los  metadatos  de  los  ficheros  y  

el  nivel  de  réplica  de  cada  fichero,  además  de  coordinar  el  acceso  de  los  clientes  a  los  Datanodes  y  el  estado  de  éstos.  

–  Secundary  NameNode,  es  un  demonio  opcional  encargado  de  fusionar  periodicamente  la  imagen  del  filesystem  con  el  log  de  edicion  para  que  no  crezca  excesivamente.  

–  DataNode,  demonio  encargado  del  almacenamiento  de  los  bloques  realizando  las  operaciones  de  lectura  y  escritura  que  corre  en  los  nodos  esclavos  o  workers.  

La  principal  diferencia  entre  ambas  versiones  es  que  Hadoop  2  incluye  federación  del  NameNode.  

 

Fco.  Javier  Lahoz  Sevilla  

Versiones  de  Hadoop  

•  Para  el  procesamiento  de  los  datos  sí  existen  diferentes  demonios  según  la  versión:  –  Hadoop  1:    

•  JobTracker,  corre  en  el  nodo  maestro  siendo  responsable  de  hablar  con  el  Namenode  para  determinar  la  localización  de  los  datos  y  enviará  trabajos  a  los  nodos  esclavos  que  conCenen  los  datos  o  están  próximos  a  éstos.  

•  TaskTracker,  se  ejecuta  en  los  nodos  esclavos  para  lanzar  tareas  MapReduce  sobre  los  datos  que  conCene  (para  la  fase  Map)  o  que  se  le  mueven  (para  la  fase  Reduce)  

–  Hadoop  2:  Definido  como  MRv2  o  YARN  (Yet  Another  Resource  NegoCaCor)  •  ResourceManager,  hacer  las  veces  de  JobTracker  gesConando  y  planificando  

los  recursos  del  cluster.  •  NodeManager,  sería  equivalente  al  TaskTracker  con  la  responsabilidad  de  los  

contenedores,  monitorizar  el  uso  de  recursos  y  reportarlos  al  ResourceManager.  

 

Fco.  Javier  Lahoz  Sevilla  

Versiones  de  Hadoop  

Maestro    

NameNode  SecundaryNN  

 JobTracker  

Esclavo    

DataNode    

TaskTracker  

Esclavo    

DataNode    

TaskTracker  

Maestro    

NameNode  SecundaryNN  

 ResourceManager  

Esclavo    

DataNode    

NodeManager  

Esclavo    

DataNode    

NodeManager  

           Hadoop  1                    Hadoop  2  

Fco.  Javier  Lahoz  Sevilla  

Introducción  a  Hadoop.  Instalación  en  AWS  

•  Parte  1.  Introducción  a  Hadoop  –  ¿Que  es  Hadoop?  –  Versiones  de  Hadoop  –  GesCón  y  monitorización  de  un  cluster  –  Configuración  de  un  cluster  –  Dimensionamiento  de  un  cluster  –  Principales  tecnologías  del  ecosistema  de  Hadoop  –  Principales  distribuciones  de  Hadoop  

•  Parte  2.  Instalación  en  AWS  –  Instalación  y  configuración  en  una  instancia  EC2  –  Escalar  a  varias  instancias  y  configurar  el  cluster  –  Probar  el  correcto  funcionamiento  del  cluster  

GesCón  y  monitorización  de  un  cluster  

Se  puede    gesConar  e  interactuar  con  un  cluster  de  hadoop  a  través  de  lineas  de  comanados  o  con  las  interfaz  Web.  •  Líneas  de  comandos:  

–  Administración  à  hdfs  dfsadmin  <comando>  •  -­‐report:  proporciona  estadísCcas  e  información  básica  del  sistema  de  archivos.  •  -­‐safemode  get|leave:  el  sistema  de  mantenimiento  de  modo  seguro.  El  modo  

seguro  es  un  estado  en  el  que  NameNode  o  bien  no  acepta  cambios  en  el  espacio  de  nombres  (sólo  lectura)  o  bien  no  se  replica  o  eliminar  bloques.  

–  Namenode  à  hdfs  namenode  <comando>  •  -­‐format:  formatea  el  NameNode  perdiendo  todos  los  datos.  Arranca  el  

NameNode  lo  formatea  y  lo  para.  

–  Check  Filesystem  à  hdfs  fsck  <comando>  •  -­‐locaCons:  muestra  las  localizaciones  de  cada  bloque  y  el  estado  del  Filesystem.  

Es  úCl  cuando  hay  bloques  sobre  replicados  o  bajo  replicados  •  -­‐delete:  elimina  bloques  corruptos.  

   

 

Fco.  Javier  Lahoz  Sevilla  

GesCón  y  monitorización  de  un  cluster  

–  Interacción  à  hdfs  dfs  <comando>  •  -­‐copyFromLocal|-­‐put  <fichero  local>  <uri>:  copia  el  fichero  local  a  la  uri  

especificada.  Si  no  se  indica  uri  se  copiará  por  defecto  en  la  ruta  del  usuario  que  ejecuta  la  instrucción.    

•  -­‐copyToLocal|-­‐get  <uri>  <desCno  local>:  copia  un  fichero  de  la  uri  especificada  al  directorio  local  indicado.  Si  no  se  especifica  desCno  local  lo  copialra  en  el  path  donde  se  ejecuta  la  instrucción  

•  -­‐ls  <uri>:  lista  los  ficheros  de  la  uri  indicada.  Si  no  se  indica  nada  tomará  por  defecto  la  uri  del  usuario  que  ejecuta  la  instrucción.  

•  -­‐mkdir  <paths>:  crea  el  directorio  especificado.  •  -­‐rm  <uri>:  elimina  el  fichero  espcificado  en  la  uri.  •  -­‐rmr  <uri>:  elimina  recursivamente  la  uri  indicada.  •  -­‐cat  <uri>:  copia  las  rutas  de  origen  a  la  salida  estándar.  •  -­‐text  <path>:  obCene  un  archivo  y  lo  muestra  en  formato  texto.  Es  úCl  para  

hacer  un  merge  de  varios  ficheros,  por  ejemplo:  hadoop  fs  -­‐text  <files>  |  hadoop  fs  -­‐put  -­‐  targetFilename.txt  

–  Ejecucion  de  aplicación  à  hadoop  jar  <comandos>  •  <libreria>  <clase>  <directorio  entrada>  <directorio  salida>  

   

 

Fco.  Javier  Lahoz  Sevilla  

GesCón  y  monitorización  de  un  cluster  

•  Interfaces  Web:  –  NameNode  à  hjp://<master>:50070  

 

   

 

Fco.  Javier  Lahoz  Sevilla  

GesCón  y  monitorización  de  un  cluster  

 

–  Resource  Manager  à  hjp://<master>:8088      

   

 

Fco.  Javier  Lahoz  Sevilla  

Introducción  a  Hadoop.  Instalación  en  AWS  

•  Parte  1.  Introducción  a  Hadoop  –  ¿Que  es  Hadoop?  –  Versiones  de  Hadoop  –  GesCón  y  monitorización  de  un  cluster  –  Configuración  de  un  cluster  –  Dimensionamiento  de  un  cluster  –  Principales  tecnologías  del  ecosistema  de  Hadoop  –  Principales  distribuciones  de  Hadoop  

•  Parte  2.  Instalación  en  AWS  –  Instalación  y  configuración  en  una  instancia  EC2  –  Escalar  a  varias  instancias  y  configurar  el  cluster  –  Probar  el  correcto  funcionamiento  del  cluster  

Configuración  de  un  cluster  

Hadoop  Cene  varios  ficheros  de  configuración  que  se  podrán  ajustar  según  las  necesidades  de  funcionalidad  y  procesamiento.    •  core-­‐site.xml:  

<configuraCon>  <property>      <name>fs.default.name</name>          <value>hdfs://<master>:9000</value>  </property>  <property>          <name>hadoop.tmp.dir</name>          <value>/path/to/tmp</value>      </property>  </configuraCon>  

   

 Fco.  Javier  Lahoz  Sevilla  

Configuración  de  un  cluster  

•  hdfs-­‐site.xml:  <configuraCon>  <property>    <name>dfs.replicaCon</name>    <value>1</value>  </property>  <property>      <name>dfs.name.dir</name>          <value>file:/path/to/namenode</value>  </property>  <property>      <name>dfs.data.dir</name>          <value>file:/path/to/datanode</value>  </property>  </configuraCon>  

   

Fco.  Javier  Lahoz  Sevilla  

Configuración  de  un  cluster  

•  mapred-­‐site.xml:  <configuraCon>    <property>      <name>mapreduce.framework.name</name>        <value>yarn</value>    </property>  </configuraCon>  

•  yarn-­‐site.xml:  <configuraCon>    <property>      <name>yarn.nodemanager.aux-­‐services</name>          <value>mapreduce_shuffle</value>    </property>  </configuraCon>  

Fco.  Javier  Lahoz  Sevilla  

Introducción  a  Hadoop.  Instalación  en  AWS  

•  Parte  1.  Introducción  a  Hadoop  –  ¿Que  es  Hadoop?  –  Versiones  de  Hadoop  –  GesCón  y  monitorización  de  un  cluster  –  Configuración  de  un  cluster  –  Dimensionamiento  de  un  cluster  –  Principales  tecnologías  del  ecosistema  de  Hadoop  –  Principales  distribuciones  de  Hadoop  

•  Parte  2.  Instalación  en  AWS  –  Instalación  y  configuración  en  una  instancia  EC2  –  Escalar  a  varias  instancias  y  configurar  el  cluster  –  Probar  el  correcto  funcionamiento  del  cluster  

Dimensionamiento  de  un  cluster  

Cuando  se  contempla  el  despliegue  de  un  cluster  en  producción  es  necesario  conocer  la  infraestructura  necesaria,  en  concreto  se  deben  tener  en  cuenta  las  siguientes  consideraciones  para  los  servidores  esclavos(Datanodes):    •  Número  de  máquinas.  El  número  total  de  máquinas  dependerá,  

principalmente,  del  espacio  a  almacenar.  Si  se  usa  un  nivel  de  replica  3  el  total  de  los  TB  se  deberá  dividir  entre  3  .  

 Por  ejemplo  para  almacenar  5TB/mes  a  lo  largo  de  un  año  con    servidorer  de  6  discos  de  7TB  se  necesitaria:  •  HDFS  neto:  1  (año)  x  12  (meses)  x  5TB  (mes)  =  60  TB  •  Capacidad  discos  necesaria:  60TB  x  3  (Replicas)  =  180TB    •  Capacidad  discos  servidor:  6  (discos)  *  7TB  =  42TB  •  Numero  servidores:  180/  42  =  4,2  à  5  Servidores  

   

Fco.  Javier  Lahoz  Sevilla  

Dimensionamiento  de  un  cluster  

•  CPU.  Normalmente  se  suele  usar  CPUs  de  gama  media  ya  que  el  cuello  de  botella  suele  estar  en  la  Red  y  los  Discos  duros.  

•  Memoria.    Como  se  trabaja  con  java  si  es  importante  dimensionar  bien  la  memoria  dependiendo  de  los  procesos  que  se  desplieguen  (HBase,  Spark,…).  Las  tareas  MapReduce  necesitarán  entre  1GB  y  4GB  por  tarea  (número  de  tareas  =  1,5  x  numero  de  cores  por  CPU)  

 •  Discos  Duros.  Seleccionar  discos  de  gama  media.  Mejor  elegir  más  

discos  de  menos  capacidad  que  discos  más  grandes.    

   

   

Fco.  Javier  Lahoz  Sevilla  

Dimensionamiento  de  un  cluster  

La  configuración  para  los  nodos  Maestros  será  más  críCca  ya  que  es  SPOF  (si  no  Cene  Alta  Disponibilidad).  Las  recomendaciones  podrían  ser:  •  Introducir  redundancia.  Disco  en  RAID  1,  doble  fuente  de  

alimentación,  varias  tarjetas  Ethernet.  

•  Memoria.  Dependerá  del  tamaño  del  cluster  y  de  los  procesos  desplegados.  

•  Independizar  procesos.  Separar  los  procesos  NameNode  y  ResourceManager  si  se  espera  una  carga  alta.  

La  Red  es  algo  muy  importante  (se  genera  mucho  tráfico  dentro  del  cluster)  por  eso  es  recomendable  que  esté  aislada  del  resto  de  la  empresa.  

   

Fco.  Javier  Lahoz  Sevilla  

Introducción  a  Hadoop.  Instalación  en  AWS  

•  Parte  1.  Introducción  a  Hadoop  –  ¿Que  es  Hadoop?  –  Versiones  de  Hadoop  –  GesCón  y  monitorización  de  un  cluster  –  Configuración  de  un  cluster  –  Dimensionamiento  de  un  cluster  –  Principales  tecnologías  del  ecosistema  de  Hadoop  –  Principales  distribuciones  de  Hadoop  

•  Parte  2.  Instalación  en  AWS  –  Instalación  y  configuración  en  una  instancia  EC2  –  Escalar  a  varias  instancias  y  configurar  el  cluster  –  Probar  el  correcto  funcionamiento  del  cluster  

Tecnologías  del  Ecosistema  

Vamos  a  ver  brevemente  las  principales  tecnologías  del  ecosistema  de  Hadoop:    •  Hive  •  Pig  •  Flume  •  Sqoop  •  HBase  •  Mahout  •  Spark  

    Fco.  Javier  Lahoz  Sevilla  

Hive  es  us  sistema  de  almacen  de  datos  (data  warehouse)  capaz  de  seleccionar  y  gesConar  grandes  conjuntos  de  datos  almacenados  

en  HDFS.  

Tecnologías  del  Ecosistema  

Vamos  a  ver  brevemente  las  principales  tecnologías  del  ecosistema  de  Hadoop:    •  Hive  •  Pig  •  Flume  •  Sqoop  •  HBase  •  Mahout  •  Spark  

   

Fco.  Javier  Lahoz  Sevilla  

Pig  es  una  plataforma  para  el  análisis  de  grandes  conjuntos  de  datos  que  consiste  en  un  lenguaje  de  alto  nivel  para  expresar  los  programas  de  análisis  de  datos.  

Tecnologías  del  Ecosistema  

Vamos  a  ver  brevemente  las  principales  tecnologías  del  ecosistema  de  Hadoop:    •  Hive  •  Pig  •  Flume  •  Sqoop  •  HBase  •  Mahout  •  Spark  

   

Fco.  Javier  Lahoz  Sevilla  

Flume  es  un  servicio  distribuido,  fiable  y  disponible  para  la  

ingesCón,  agregación  y  volcado  de  grandes  canCdades  de  datos  y  eventos.  Tiene  una  arquitectura  simple  y  flexible  basado  en  el  streaming  flujos  de  datos.  

Tecnologías  del  Ecosistema  

Vamos  a  ver  brevemente  las  principales  tecnologías  del  ecosistema  de  Hadoop:    •  Hive  •  Pig  •  Flume  •  Sqoop  •  HBase  •  Mahout  •  Spark  

   

Fco.  Javier  Lahoz  Sevilla  

Sqoop  es  una  herramienta  diseñada  para  transferir  datos  de  manera  eficiente  a  entre  Hadoop  y  almacenes  de  datos  estructurados  como  bases  de  datos  relacionales.  

Tecnologías  del  Ecosistema  

Vamos  a  ver  brevemente  las  principales  tecnologías  del  ecosistema  de  Hadoop:    •  Hive  •  Pig  •  Flume  •  Sqoop  •  HBase  •  Mahout  •  Spark  

   

Fco.  Javier  Lahoz  Sevilla  

HBase  es  una  distribución  de  almacén  de  datos  escalable  que  se  ejecuta  sobre  HDFS.  Se  engloba  dentro  de  las  bases  de  datos  

NoSQL  de  Cpo  BigTable  (columnar  de  Cpo  clave-­‐valor).  

Tecnologías  del  Ecosistema  

Vamos  a  ver  brevemente  las  principales  tecnologías  del  ecosistema  de  Hadoop:    •  Hive  •  Pig  •  Flume  •  Sqoop  •  HBase  •  Mahout  •  Spark  

   

Fco.  Javier  Lahoz  Sevilla  

Mahout  es  una  librería  escalable  de  algoritmos  de  aprendizaje  

automáCco,  implementados  sobre  Hadoop  para  analizar  los  datos  

almacenados  en  HDFS  uClizando  el  paradigma  MapReduce.  

Tecnologías  del  Ecosistema  

Vamos  a  ver  brevemente  las  principales  tecnologías  del  ecosistema  de  Hadoop:    •  Hive  •  Pig  •  Flume  •  Sqoop  •  HBase  •  Mahout  •  Spark  

   

Fco.  Javier  Lahoz  Sevilla  

Spark  es  un  marco  de  procesamiento  de  datos  en  paralelo  que  complementa  

Hadoop  para  hacer  más  fácil  el  desarrollo  de  aplicaciones  rápidas  y  unificadas  que  combinan  batch,  streaming,  y  análisis  interacCvos  

de  todos  sus  datos.  

Introducción  a  Hadoop.  Instalación  en  AWS  

•  Parte  1.  Introducción  a  Hadoop  –  ¿Que  es  Hadoop?  –  Versiones  de  Hadoop  –  GesCón  y  monitorización  de  un  cluster  –  Configuración  de  un  cluster  –  Dimensionamiento  de  un  cluster  –  Principales  tecnologías  del  ecosistema  de  Hadoop  –  Principales  distribuciones  de  Hadoop  

•  Parte  2.  Instalación  en  AWS  –  Instalación  y  configuración  en  una  instancia  EC2  –  Escalar  a  varias  instancias  y  configurar  el  cluster  –  Probar  el  correcto  funcionamiento  del  cluster  

Distribuciones  de  Hadoop  

Existen  en  el  mercado  varias  distribuciones  comerciales  que  empaquetan  las  disCntas  tecnologías  del  ecosistema  de  Hadoop,  entre  ellas,  las  que  hemos  visto  anteriormente.  Además  proprorcionan  herramientas  para:  •  Monitorizar  y  administrar  un  cluster  •  GesConar  la  seguridad  •  Gobierno  de  los  datos  

A  conCnuación  veremos  alguna  de  las  principales  distribuciones:    

 

   

Fco.  Javier  Lahoz  Sevilla  

Distribuciones  de  Hadoop  

•  Cloudera    

 

   

Fco.  Javier  Lahoz  Sevilla  

Distribuciones  de  Hadoop  

   

   

Fco.  Javier  Lahoz  Sevilla  

Distribuciones  de  Hadoop  

   

   

Fco.  Javier  Lahoz  Sevilla  

Distribuciones  de  Hadoop  

•  Hortonworks    

 

   

Fco.  Javier  Lahoz  Sevilla  

Distribuciones  de  Hadoop  

   

   

Fco.  Javier  Lahoz  Sevilla  

Distribuciones  de  Hadoop  

•  MapR    

 

   

Fco.  Javier  Lahoz  Sevilla  

Distribuciones  de  Hadoop  

   

   

Fco.  Javier  Lahoz  Sevilla  

Introducción  a  Hadoop.  Instalación  en  AWS  

•  Parte  1.  Introducción  a  Hadoop  –  ¿Que  es  Hadoop?  –  Versiones  de  Hadoop  –  GesCón  y  monitorización  de  un  cluster  –  Configuración  de  un  cluster  –  Dimensionamiento  de  un  cluster  –  Principales  tecnologías  del  ecosistema  de  Hadoop  –  Principales  distribuciones  de  Hadoop  

•  Parte  2.  Instalación  en  AWS  –  Instalación  y  configuración  en  una  instancia  EC2  –  Escalar  a  varias  instancias  y  configurar  el  cluster  –  Probar  el  correcto  funcionamiento  del  cluster  

Instalación  y  configuración  

En  primer  lugar  vamos  a  ver  la  consola  de  Amazon  Web  Services.    •  Nos  conectamos  a  AWS  

–  console.aws.amazon.com  

•  Creamos  un  grupo  de  seguridad  

•  Generamos  un  Key  Par  y  le  restringimos  los  permisos  chmod  400  CURSO_HADOOP.pem  

   

 

   

Fco.  Javier  Lahoz  Sevilla  

Instalación  y  configuración  

Una  vez  creado  el  key  pair  podemos  arrancar  una  instancia  y  conectarnos  a  ella:  •  Creamos  una  instancia  y  nos  connectarnos  

ssh  -­‐i  CURSO_HADOOP.pem  ubuntu@<PUBLIC_EC2_IP>  –  Si  da  error  regeneramos  las  claves:  ssh-­‐keygen  -­‐R  <PUBLIC_EC2_IP>  

•  Configurar  el  nombre  de  Host  sudo  -­‐i  vi  /etc/host  <PRIVATE_EC2_IP>  hadoop.master  

•  Generamos  las  claves  para  conectarnos  por  ssh  ssh-­‐keygen  -­‐t  rsa  cat  ~/.ssh/id_rsa.pub  >>  ~/.ssh/authorized_keys  chmod  0600  ~/.ssh/authorized_keys  

   

 

   

Fco.  Javier  Lahoz  Sevilla  

Instalación  y  configuración  

ConCnuamos  instalando  java  y  hadoop.  •  Installar  java:  

sudo  apt-­‐get  update  sudo  apt-­‐get  install  openjdk-­‐7-­‐jre    

•  Descargar  y  desempaquetar  Hadoop:  wget  hjp://}p.cixug.es/apache/hadoop/common/hadoop-­‐2.6.0/hadoop-­‐2.6.0.tar.gz  tar  -­‐xvf  hadoop-­‐2.6.0.tar.gz    

•  Crear  link:  ln  -­‐s  hadoop-­‐2.6.0  hadoop  

   

   

Fco.  Javier  Lahoz  Sevilla  

Instalación  y  configuración  

•  Configuramos  las  variables  de  entorno  en  el  fichero,  $HOME/.bashrc  export  JAVA_HOME=/usr/lib/jvm/java-­‐1.7.0-­‐openjdk-­‐amd64  export  HADOOP_HOME=/home/ubuntu/hadoop  export  HADOOP_INSTALL=$HADOOP_HOME  export  HADOOP_MAPRED_HOME=$HADOOP_HOME  export  HADOOP_COMMON_HOME=$HADOOP_HOME  export  HADOOP_HDFS_HOME=$HADOOP_HOME  export  YARN_HOME=$HADOOP_HOME  export  HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/naCve  export  PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$JAVA_HOME/bin  Y  los  cargamos:  source  ~/.bashrc    

   

   

Fco.  Javier  Lahoz  Sevilla  

Instalación  y  configuración  

Ahora  hay  que  empezar  a  configurar  la  instalación.  •  Configurar  el  entorno  de  hadoop  

–  Editar  fichero  $HADOOP_HOME/etc/hadoop/core-­‐site.xml    <property>      <name>fs.default.name</name>          <value>hdfs://hadoop.master:9000</value>  </property>    

–  Renombrar  el  fichero  $HADOOP_HOME/etc/hadoop/mapred-­‐site.xml.template  a  mapred-­‐site.xml  <property>      <name>mapreduce.framework.name</name>        <value>yarn</value>    </property>    

   

Fco.  Javier  Lahoz  Sevilla  

Instalación  y  configuración  

–  Editar  fichero  $HADOOP_HOME/etc/hadoop/hdfs-­‐site.xml    <property>    <name>dfs.replicaCon</name>    <value>1</value>  </property>  <property>      <name>dfs.name.dir</name>          <value>file:/opt/hadoop/dfs/namenode</value>  </property>  <property>      <name>dfs.data.dir</name>          <value>file:/opt/hadoop/dfs/datanode</value>  </property>  

   

Fco.  Javier  Lahoz  Sevilla  

Instalación  y  configuración  

–  Editar  fichero  $HADOOP_HOME/etc/hadoop/yarn-­‐site.xml    <property>      <name>yarn.nodemanager.aux-­‐services</name>          <value>mapreduce_shuffle</value>    </property>    

–  Editamos  el  fichero  de  esclavos  $HADOOP_HOME/etc/hadoop/slaves  y  susCtuimos  localhost  por  hadoop.master  (nombre  de  la  máquina)  

–  Editamos  el  fichero  de  entorno  $HADOOP_HOME/etc/hadoop/hadoop-­‐env.sh  y  cambiamos  la  variable  JAVA_HOME    export  JAVA_HOME=/usr/lib/jvm/java-­‐1.7.0-­‐openjdk-­‐amd64  

   

Fco.  Javier  Lahoz  Sevilla  

Instalación  y  configuración  

Cuando  ya  están  los  ficheros  configurados  podemos  crear  los  directorios  del  NN  y  DN  para,  finalmente,  formatear  el  NN.      •  Crear  directorios  para  en  namenode  y  el  datanode,  y  le  

cambiamos  el  owner:    sudo  mkdir  -­‐p  /opt/hadoop/dfs/namenode    sudo  mkdir  -­‐p  /opt/hadoop/dfs/datanode    sudo  chown  -­‐R  ubuntu:ubuntu  /opt/hadoop/dfs/datanode    sudo  chown  -­‐R  ubuntu:ubuntu  /opt/hadoop/dfs/namenode  

 

•  Formateamos  el  namenode:  hdfs  namenode  -­‐format  

   

Fco.  Javier  Lahoz  Sevilla  

Instalación  y  configuración  

Ahora  ya  estamos  en  disposición  de  arrancar  Hadoop:  •  Arrancamos  DFS  y  YARN:  

–  $HADOOP_HOME/sbin/start-­‐dfs.sh  –  $HADOOP_HOME/sbin/start-­‐yarn.sh  

•  Testeamos  HDFS  y  YARN  –  Cargamos  un  fichero  –  Ejecutamos  un  job  MapReduce  

•  Si  queremos  usar  las  interfaces  Web  habrá  que  abrir  tuneles:  ssh  -­‐i  CURSO_HADOOP.pem  ubuntu@<PUBLIC_EC2_IP>  -­‐L  50070:<PRIVATE_EC2_IP>:50070  -­‐L  8088:<PRIVATE_EC2_IP>:8088  

   

Fco.  Javier  Lahoz  Sevilla  

Introducción  a  Hadoop.  Instalación  en  AWS  

•  Parte  1.  Introducción  a  Hadoop  –  ¿Que  es  Hadoop?  –  Versiones  de  Hadoop  –  GesCón  y  monitorización  de  un  cluster  –  Configuración  de  un  cluster  –  Dimensionamiento  de  un  cluster  –  Principales  tecnologías  del  ecosistema  de  Hadoop  –  Principales  distribuciones  de  Hadoop  

•  Parte  2.  Instalación  en  AWS  –  Instalación  y  configuración  en  una  instancia  EC2  –  Escalar  a  varias  instancias  y  configurar  el  cluster  –  Probar  el  correcto  funcionamiento  del  cluster  

Instalación  y  configuración  Cluster  

Una  vez  que  ya  está  funcionando  Hadoop  en  una  instancia  ya  podemos  ajustar  la  configuración  para  arrancar  un  cluster.    •  Paramos  Hadoop  

•  Borramos  los  file  system  del  DN  y  NN  

•  Cambiamos  configuración  –  Cambiamos  en  nivel  de  replica  a  3  en  el  fichero  hdfs-­‐site.xml  –  Añadimos  el  framework  yarn  en  el  fichero  mapred-­‐site.xml  

    Fco.  Javier  Lahoz  Sevilla  

Instalación  y  configuración  Cluster  

–  Añadimos  configuración  en  el  fichero  yarn-­‐site.xml:  <property>          <name>yarn.nodemanager.aux-­‐services.mapreduce.shuffle.class</name>          <value>org.apache.hadoop.mapred.ShuffleHandler</value>      </property>      <property>          <name>yarn.resourcemanager.scheduler.address</name>          <value>hadoop.master:8030</value>      </property>      <property>          <name>yarn.resourcemanager.address</name>          <value>hadoop.master:8032</value>      </property>      <property>          <name>yarn.resourcemanager.webapp.address</name>          <value>hadoop.master:8088</value>      </property>      <property>          <name>yarn.resourcemanager.resource-­‐tracker.address</name>          <value>hadoop.master:8031</value>      </property>      <property>          <name>yarn.resourcemanager.admin.address</name>          <value>hadoop.master:8033</value>      </property>  

   

Fco.  Javier  Lahoz  Sevilla  

Instalación  y  configuración  Cluster  

Una  vez  que  ya  está  correctamente  configurado  Hadoop  podemos  arracar  las  instancias  del  cluster.  

•  Primero  creamos  una  AMI    

•  Cambiamos  la  seguridad  del  grupo  para  que  las  máquinas  se  puedan  conectar  al  NameNode  y  el  RersourceManager.  

•  Arrancamos  las  instancias  EC2  a  parCr  del  AMI  guardada  

   

Fco.  Javier  Lahoz  Sevilla  

Instalación  y  configuración  Cluster  

Una  vez  que  ya  están  levantadas  las  instancias  podemos  arrancarlo  y  comprobar  en  las  interfaces  Web  que  todas  las  instancias  están  incluidas  en  el  cluster.  •  Añadimos  las  IP  privadas  de  las  instancias  EC2  en  el  fichero  

slaves  

•  Formateamos  el  namenode  

•  Arrancamos  el  Cluster  –  Primero  arrancamos  DFS  –  A  conCnuación  arrancamos  YARN  

•  Nos  conectamos  al  interfaz  Web:  –  Localhost:50070  para  revisar  el  Datanode  –  Localhost:8088  para  revisar  el  ResourceManager  

   

Fco.  Javier  Lahoz  Sevilla  

Introducción  a  Hadoop.  Instalación  en  AWS  

•  Parte  1.  Introducción  a  Hadoop  –  ¿Que  es  Hadoop?  –  Versiones  de  Hadoop  –  GesCón  y  monitorización  de  un  cluster  –  Configuración  de  un  cluster  –  Dimensionamiento  de  un  cluster  –  Principales  tecnologías  del  ecosistema  de  Hadoop  –  Principales  distribuciones  de  Hadoop  

•  Parte  2.  Instalación  en  AWS  –  Instalación  y  configuración  en  una  instancia  EC2  –  Escalar  a  varias  instancias  y  configurar  el  cluster  –  Probar  el  correcto  funcionamiento  del  cluster  

Probar  el  cluster  

Una  vez  que  ya  está  configurado  Hadoop  ya  estamos  en  disposición  de  arrancarlo  y  probarlo.  

 

•  Cargamos  un  fichero  

•  Ejecutamos  el  WordCount  

•  Revisamos  las  consolas  Web  –  Namenode  –  Resoure  Manager  

   

Fco.  Javier  Lahoz  Sevilla  

Introducción  a  Hadoop.  Instalación  en  AWS  

Fco.  Javier  Lahoz  Sevilla