3. hadoop

100
1 Hadoop Cristian González García v 1.2.2 Noviembre 2015

Upload: cristian-gonzalez-garcia

Post on 09-Feb-2017

46 views

Category:

Education


3 download

TRANSCRIPT

Page 1: 3.  Hadoop

1

Hadoop

Cristian González García v 1.2.2 Noviembre 2015

Page 2: 3.  Hadoop

Índice Introducción

Arquitectura

Configuración Básica

Standalone Mode

Pseudo-Distributed Mode

Ejemplo: Word Count

Ejemplo: Hipotecas

Errores Comunes

Comandos y otros

Bibliografía

2

Page 3: 3.  Hadoop

Introducción

3

Page 4: 3.  Hadoop

¿Qué es? http://hadoop.apache.org/

Proyecto Open Source Licencia Apache License 2.0

Mantenido por Apache Foundation

Framework Sistema de archivos distribuidos

Volúmenes grandes de datos

Escalable, detección de fallos, alta disponibilidad

Ejecución de computación paralela

Desarrollado en Java

Multiplataforma

Yahoo! Es su mayor contribuyente

4

Page 5: 3.  Hadoop

Nacimiento Creado por Doug Cutting y Mike Cafarella

Coincidieron en Yahoo!

Nutch, Hadoop

Se basaron en el artículo sobre MapReduce de Google [1]

Doug Cutting

El nombre proviene del elefante de juguete de su hijo

Desarrolló también Lucene (API)

Ahora forma parte de Cloudera

Se desarrolló para Nutch, un motor de búsqueda basado en Lucene

5

Page 6: 3.  Hadoop

Artículo de Google

Se inspiró en el artículo [1] de Google sobre

MapReduce y Google File System (GFS)

Computación distribuida

6

Page 7: 3.  Hadoop

¿Qué ofrece?

Computación distribuida

Para cualquier tarea que pueda ejecutarse

por lotes

Análisis de datos, procesamiento de imagen

y video, estadísticas, búsquedas, paralelizar

servicios, publicidad, almacenaje y

búsqueda, …

Gran capacidad de cómputo

7

Page 8: 3.  Hadoop

Es utilizado por … I Adobe

Desarrollo de software Almacenamiento y procesamiento de datos desde 2008 30 nodos y próximamente 80 Hadoop, Hbase y trabajos MapReduce

Alibaba Comercio electrónico Procesamiento de datos para su motor de búsqueda 15 nodos de 8 cores, 16GB Ram y 1.4TB (10^12)

Ebay Subastas Optimización de búsquedas 532 nodos de 8 cores y 5.3PB (10^15)

MapReduce, Pig, Hive y HBase

Facebook Red Social Almacenar copias de los logs, análisis y Machine Learning 1100 nodos con 8800 cores y 12PB (10^15) 300 nodos con 2400 cores y 3PB (10^15)

8

Page 9: 3.  Hadoop

Es utilizado por … II Last.fm

Red Social y Radio por Internet

Cálculo de gráficas, informes, análisis de datos, …

100 nodos (Dual quad-core Xeon L5520 @ 2.27GHz & L5630 @ 2.13GHz , 24GB RAM, 8TB(4x2TB)/node storage)

LinkedIn Red Social

Gente que puedas conocer, tablón, skills, …

~4100 nodos ~800 Westmere-based HP SL 170x, with 2x4 cores, 24GB RAM, 6x2TB SATA ~1900 Westmere-based SuperMicro X8DTT-H, with 2x6 cores, 24GB RAM, 6x2TB SATA ~1400 Sandy Bridge-based SuperMicro with 2x6 cores, 32GB RAM, 6x2TB SATA

Pig

Twitter Red Social

Almacenaje y procesamiento de Tweets, logs, etc…

Pig, Avro, Hive y Cassandra

Yahoo! Empresa global

Más de 100.000 cpu. El mayor clúster es de 4500 nodos

Pig

9

Page 10: 3.  Hadoop

Es utilizado por … III

Amazon

Spotify

Universidades

Telefónica

Y decenas de empresas más…

http://wiki.apache.org/hadoop/PoweredBy

10

Page 11: 3.  Hadoop

Arquitectura

11

Page 12: 3.  Hadoop

Componentes de un Clúster I Componentes

Nodo Maestro MapReduce: Procesamiento

JobTracker

TaskTracker

HDFS: Almacenamiento NameNode

DataNode

Nodos esclavo MapReduce

TaskTracker

HDFS DataNode

JRE 1.6+, JRE 1.7+ (A partir de Hadoop 2.7.1)

SSH: Para conectar los nodos

12

Page 13: 3.  Hadoop

JobTracker Gestiona los trabajos y recursos del clúster Funcionamiento

1. Recibe el trabajo de la aplicación cliente

2. Se comunica con el NameNode para localizar los datos

3. Localiza nodos TaskTracker con ranuras disponibles o cercanas a los datos

4. Envía el trabajo a los nodos TaskTracker elegidos

5. Monitoriza los nodos TaskTracker Si no recibe “noticias” de un nodo TaskTracker, lo dará

por fallido y reprogramará ese trabajo para otro nodo TaskTracker

6. Actualiza el estado cuando se completó el trabajo

7. La aplicación cliente puede preguntar al JobTracker por el estado del proceso

13

Page 14: 3.  Hadoop

TaskTracker Son los nodos que aceptan tareas del nodo

JobTracker

Sus operaciones son Map, Reduce y Shuffle

Tienen configurados un número de slots que se corresponden con el número de trabajos que pueden aceptar Tienen preferencia los nodos con un DataNode que

contenga datos de ese trabajo Si no, busca una slot en un nodo del mismo rack

Para realizar el trabajo, crea un proceso separado. Así evita que se caiga el TaskTracker si el proceso falla

Cuando el proceso termina, notifica el JobTracker

Envía señales cada poco minutos al JobTracker para que este sepa que el nodo sigue vivo Adjunta el número de slots libres

14

Page 15: 3.  Hadoop

NameNode Es el nodo principal del sistema de ficheros HDFS

Guarda el árbol del directorio de ficheros y su localización

No almacena datos de ficheros

Recibe las peticiones de ficheros y responde con los nodos que los poseen

Si se cae, se cae todo el sistema de ficheros

Puede existir un nodo secundario (SecondaryNameNode) en otro nodo para evitar perder el sistema si se cae el principal

Se recomienda que no comparta el nodo con ninguno de los otros 3: JobTracker, TaskTracker y DataNode

15

Page 16: 3.  Hadoop

DataNode Almacena datos en el sistema HDFS

Se conectan con el NameNode

Responde a las peticiones del NameNode

Las aplicaciones cliente y los trabajos MapReducehablan directamente con los DataNode una vez estas recibieron la localización del NameNode

Deberían de compartir nodo con los TaskTracker, para estar cerca de las operaciones MapReduce, por rendimiento

Los DataNodes pueden hablar entre ellos para replicar datos No se necesitan discos RAID

Configuración ideal 1 disco físico por CPU 1 TaskTracker por CPU. Así usan el 100% de la CPU

16

Page 17: 3.  Hadoop

Componentes de un Clúster II

17

Almacena los datos

Gestión de datos

Gestión de componentes

Envía las tareas Map y reduce

Obedece al JobTracker

Ejecuta tareas Map y Reduce

Page 18: 3.  Hadoop

Componentes de Hadoop HDFS MapReduce

Hadoop Streaming

Hive

Hue

Pig

Sqoop

Oozie

HBase

FlumeNG

Mahout

Fuse

Zookeeper

18

Page 19: 3.  Hadoop

Hadoop Distributed File System

(HDFS) http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-

hdfs/HdfsUserGuide.html

Sistema de ficheros distribuidos y escalable de Hadoop

Escrito en Java

Soporta comandos de Shell http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-

common/FileSystemShell.html

Altamente configurable

Distribuye los ficheros por los diferentes nodos Permite trabajar con URL: Amazon con S3

Tiene interfaz web en: http://namenode-ip:50070/

Se compone de NameNode

Gestiona el sistema de ficheros

DataNode Almacena los datos y sirve los datos

Soporta otros tipos de trabajo además de MapReduce Aprendizaje automático, procesamiento de imágenes, análisis de

marketing, …

19

Page 20: 3.  Hadoop

MapReduce I http://hadoop.apache.org/docs/r2.7.1/hadoop-mapreduce-client/hadoop-

mapreduce-client-core/MapReduceTutorial.html

Framework para facilitar la programación de aplicaciones para procesar grandes volúmenes de datos de manera paralela usando clústeres

Dos fases Map: Trata los elementos ya divididos de la entrada y los transforman en un conjunto

clave-valor Reduce: Ordena y junta los elementos clave-valor para crear el resultado

Componentes Job

Programa MapReduce que divide en trozos los datos

JobTracker Gestiona los trabajos y recursos del clúster

Gestiona los TaskTracker y su situación

TaskTracker Toma las órdenes del JobTracker y realiza los trabajos MapReduce

Se obtiene un fichero por cada “reduce task” configurado

Soporta varios lenguajes de programación Java, Python, Ruby, C++

20

Page 21: 3.  Hadoop

MapReduce II

21

Page 22: 3.  Hadoop

MapReduce III

22

Page 23: 3.  Hadoop

MapReduce IV –

Programación I

Se compone de 3 partes

Map

Reduce

Main

Se puede modificar también el “Combiner”

Todo va dentro de una clase (En Java)

http://hadoop.apache.org/docs/r2.7.1/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html

23

Page 24: 3.  Hadoop

MapReduce IV –

Programación II

24

Clave-Valor generado por el Map

Contexto de la aplicación

Valor recibido. Es una línea

Iteramos para obtener todas las palabras

Indicamos que el Map va a ser<Text, Int>

Recibe un objeto genérico

Page 25: 3.  Hadoop

MapReduce IV –

Programación II

La salida no se reordena

25

Indicamos la entrada del ReduceEs la misma que la salida del Map<Text, Int>

Valor recibido. <Text, Int>

Agrupa sólo los valores por la misma Clave

Al estar agrupados por Clave,sumamos para ver cuantos hay iguales

Clave

Metemos al contexto el resultado del Reducer

Page 26: 3.  Hadoop

MapReduce IV –

Programación III

Contiene las llamadas y configuraciones Configuración

Job

Clase principal Clase del Map

Clase del Combiner

Clase del Reducer

Salida

Ruta de entrada

Ruta de salida

Salida

https://hadoop.apache.org/docs/r2.7.1/api/org/apache/hadoop/mapreduce/Job.html

26

Page 27: 3.  Hadoop

MapReduce IV –

Programación IV

En el Map debemos hacer las operaciones necesarias para preparar nuestros datos En vez de iterar, tal vez obtener una columna

determinada, extraer una etiqueta, etc…

Si se quiere enviar dos datos en el Map, hay que crear una clase que permita instanciar un objeto que guarde dos valores y usar esa. Heredad de “Writable” y sobrescribid sus métodos

Si queréis leer un tipo de dato diferente, como XML, tenéis que crear una clase que herede de “TextInputFormat” y sobrescribir sus métodos

Si tenéis varias entradas, tenéis que especificar todas en el “main”

27

Page 28: 3.  Hadoop

YARN http://hadoop.apache.org/docs/current/hadoo

p-yarn/hadoop-yarn-site/YARN.html

YARN (Yet Another Resource Negotiator)

MapReduce 2.0, conocido como YARN o NextGen MapReduce

Separación del JobTracker ResourceManager: Gestión de recursos

Application Master: Negociación de recursos

Desacoplamiento de las dos tareas

Ofrecer más gama de procesamientos y aplicaciones Streaming interactivos simultáneos

Acceso Web

28

Page 29: 3.  Hadoop

Hadoop Streaming

Parte de Hadoop

http://hadoop.apache.org/docs/r2.6.2/hadoop-mapreduce-client/hadoop-mapreduce-client-core/HadoopStreaming.html (última versión)

https://wiki.apache.org/hadoop/HadoopStreaming

Librería que permite crear trabajos MapReduce en otros lenguajes de programación

C, C++, Python, Perl, Bash, …

30

Page 30: 3.  Hadoop

Hive

Proyecto de la Apache Foundation

http://hive.apache.org/

Inicialmente desarrollado por Facebook

HiveQL es un lenguaje similar a SQL para crear trabajos MapReduce

Permite incluir Map y Reduce propios cuando sea ineficiente usar HiveQL

Está escrito en Java

Tiene interfaces JDBC/ODBC

31

Page 31: 3.  Hadoop

Hue

Proyecto Open Source

http://gethue.com/

Interfaz web gráfica para desarrollar con

utilidades para Hadoop

Hive, Pig, Sqoop, Oozie, gráficas,

monitorización, …

Escrita en Python

32

Page 32: 3.  Hadoop

Apache Pig Proyecto de la Apache Foundation

http://pig.apache.org/

Inicialmente desarrollado por Yahoo! El 40% de los trabajos de Yahoo! Están hechos con Pig

PIG Al igual que los cerdos comen de todo, Pig está pensado

para poder trabajar con cualquier tipo de datos

Plataforma para análisis de grandes conjuntos de datos

Componentes Lenguaje de alto nivel Lenguaje “Pig Latin”

Sintaxis parecida a SQL

Compilador que crea programas MapReduce

33

Page 33: 3.  Hadoop

Apache Sqoop

Proyecto de la Apache Foundation

http://sqoop.apache.org/

Sqoop <- Sql-to-Hadoop

Transferencia de datos bidireccional entre

Hadoop y BBDD relacionales

Tablas o BBDD

Interfaz por línea de comandos

34

Page 34: 3.  Hadoop

Oozie

Proyecto de la Apache Foundation

http://oozie.apache.org/

Aplicación web REST en Java

Orquestador de procesos

Creador de flujos de trabajos MapReduce

Similar a BPM

Permite acumular acciones

Coordinador de procesos

Definición de aplicaciones

Monitorización de sus aplicaciones

35

Page 35: 3.  Hadoop

HBase

Proyecto de la Apache Foundation

http://hbase.apache.org/

Almacenamiento clave-valor

BBDD no relacional

Open Source

Escrita en Java

Funciona sobre el HDFS de Hadoop

No lo sustituye

36

Page 36: 3.  Hadoop

Apache FlumeNG

Proyecto de la Apache Foundation

http://flume.apache.org/

Cargador en tiempo real para transmitir

datos a Hadoop

Almacena datos en HDFS y HBase

Captura, agregación y movimiento de

forma eficiente de datos log de diferentes

orígenes a un repositorio

37

Page 37: 3.  Hadoop

Apache Mahout

Proyecto de la Apache Foundation

http://mahout.apache.org/

Librería de aprendizaje de máquinas y

minería de datos utilizando Hadoop

Utilizado para análisis predictivos y

avanzados

Descubrimiento de patrones

Posee algoritmos de recomendación,

clustering y clasificación

39

Page 38: 3.  Hadoop

Fuse

http://fuse.sourceforge.net/

Permite utilizar el sistema de ficheros HDFS

como un sistema normal

Permite el uso de comandos como ls, rm, cd,

Soporta GNU/Linux, Mac OS, Windows, …

40

Page 39: 3.  Hadoop

Apache Zookeeper Proyecto de la Apache Foundation

http://zookeeper.apache.org/

Provee de una estructura centralizada para la sincronización y coordinación de servicios de las aplicaciones distribuidas Configuración, jerarquía de nombres, …

Soporta alta disponibilidad al tener redundancia de servicios

Se encarga de almacenar toda la información necesaria para distribuir aplicaciones

Coordina los servicios para aplicaciones distribuidas

41

Page 40: 3.  Hadoop

Modos de funcionamiento Standalone

Modo por defecto

No distribuido

Un solo proceso Java

Útil para depurar

Pseudo-distributed

Modo distribuido en una sola máquina

Varios procesos Java a la vez

Fully-Distributed

Modo distribuido en varios nodos

43

Page 41: 3.  Hadoop

Configuración básica

44

Page 42: 3.  Hadoop

Actualizar

Actualizamos el servidor

Actualizamos la lista de paquetes y versiones

Actualizamos los paquetes disponibles

Instalamos el OpenJDK 7

45

Page 43: 3.  Hadoop

Descargar Hadoop

Descargamos Hadoop 2.5.1 (no el -src)

http://apache.rediris.es/hadoop/common/h

adoop-2.7.1/

Utilizaremos WGET

Esperamos…

46

Page 44: 3.  Hadoop

Descomprimir Hadoop

Nos situamos en la carpeta de la descarga

y comprobamos que está

Descomprimimos el archivo en una carpeta

47

Page 45: 3.  Hadoop

Preparar Hadoop

Movemos Hadoop a /usr/local

Vamos a la carpeta /usr/local

Creamos un enlace para mejorar el

mantenimiento

Comprobamos que esta todo correcto

48

Page 46: 3.  Hadoop

Variables de entorno I

Vamos a la carpeta del usuario

ó

Establecemos paths y directorios

Hadoop, Java y JavaTools

49

Page 47: 3.  Hadoop

Variables de entorno II

Cargamos el nuevo fichero .bashrc para

cargar las variables sin tener que iniciar un

nuevo Shell

50

Page 48: 3.  Hadoop

Clave público-privada

51

La renombramos a id_rsa

Subimos este fichero, el .pem

Page 49: 3.  Hadoop

Standalone Mode

52

Page 50: 3.  Hadoop

Ejemplo I

Creamos una carpeta

Insertamos datos en ella

Ejecutamos un ejemplo de Hadoop

bin/hadoop jar /example.jar grep “carpetaDatos”

“carpetaResultado” ‘expresión regular’

Si la carpeta “carpetaResultado” existe, dará error

Buscamos las cadenas que comiencen por dfs

53

Page 51: 3.  Hadoop

Obtención de resultados

Si todo fue bien, creará los archivos en la

carpeta

En el fichero encontraremos los resultados

54

Page 52: 3.  Hadoop

Ejemplo II

Borramos la carpeta del resultado

Cambiamos la expresión regular

Buscamos las cadenas que comiencen por conf

Resultado

55

Page 53: 3.  Hadoop

Pseudo-Distributed Mode

56

Page 54: 3.  Hadoop

Configuraciones

Vamos a la carpeta de configuraciones

Ficheros de configuración

57

Page 55: 3.  Hadoop

Core-Site I

Modificamos “core-site.xml”

Configuración del sistema de ficheros

Contiene

La configuración del HDFS, del MapReduce y de seguridad

Otras configuraciones

http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common/core-default.xml

58

Page 56: 3.  Hadoop

Core-Site II

Añadimos nuestro servidor

59

Page 57: 3.  Hadoop

HDFS-Site I

Modificamos el fichero “hdfs-site.xml”

Contiene

Otras configuraciones las configuraciones de

los NameNode y DataNode

https://hadoop.apache.org/docs/r2.7.1/hado

op-project-dist/hadoop-hdfs/hdfs-default.xml

60

Page 58: 3.  Hadoop

HDFS-Site II

Configuración de la replicación de los

bloques de los ficheros por los nodos

Solo usamos 1

Con 1, tendremos sólo una copia

61

Page 59: 3.  Hadoop

OpenSSH I

AWS viene con OpenSSH pre-instalado

ssh-agent

Programa que maneja las contraseñas

para claves privadas

ssh-add

Programa que solicita al usuario la clave

privada y la añade a una lista

mantenida por “ssh-agent”. Una vez

añadida, no se solicitará más la clave al

usar SSH

62

Page 60: 3.  Hadoop

OpenSSH II

Posible Error VII y VIII (Mirar soluciones)

Debemos activar el acceso mediante clave

privada

Vamos a la carpeta “~/.ssh”

Cambiamos los permisos

authorized_keys: lectura a todos

id_rsa: lectura solo el dueño

63

Page 61: 3.  Hadoop

OpenSSH III Iniciamos el “ssh-agent”

-s: genera la salida comandos Bourne Shell en la salida estándar

Añadimos la identificación al repositorio del agente. El parámetro es la clave Por defecto cogería “id_rsa” si no ponemos nada

Si no funcionase el último paso…

O…

64

Page 62: 3.  Hadoop

OpenSSH IV

Comprobamos que esto funcione sin pedir

la passphrase

65

Page 63: 3.  Hadoop

Hadoop-env

Abrimos el fichero “hadoop-env.sh”

Contiene las variables de entorno usadas

por Hadoop

Establecemos la variable “JAVA_HOME”

66

Page 64: 3.  Hadoop

Arrancado Hadoop I

En el primer arranque de Hadoop hay que

formatear su sistema de ficheros

Nunca más hacer esto, pues si no, perderéis

vuestro datos, salvo que deseéis esto

Con esto, está todo listo para iniciar

Hadoop

67

Page 65: 3.  Hadoop

Arrancado Hadoop II

Si todo fue bien, debería de funcionar

Si ya estuviesen arrancados, nos manda

que primero los detengamos

68

Page 66: 3.  Hadoop

Arrancado Hadoop III

Accedemos a la interfaz del “NameNode”

http://nuestraIpEc2:50070/dfshealth.html

69

Page 67: 3.  Hadoop

Directorios HDFS

Creamos los directorios HDFS para ejecutar

los trabajos con MapReduce

bin/hdfs dfs –mkdir “nombreDeLaCarpeta”

Si existen nos dará error

Copiamos los datos al sistema de ficheros

distribuidos de Hadoop

bin/hdfs –put “datos” “carpetaDestino”

70

Page 68: 3.  Hadoop

Ejecución de Hadoop

Ejecutamos un ejemplo de Hadoop

bin/hadoop jar /example.jar grep

“carpetaDatos” “carpetaResultado”

‘expresión regular’

Si la carpeta “carpetaResultado” existe, dará

error

Buscamos las cadenas que comiencen por

“dfs”

71

Page 69: 3.  Hadoop

Resultados I

Los resultados se crearon en el sistema HDFS

Copiamos estos resultados a un directorio

local desde el HDFS

72

Page 70: 3.  Hadoop

Resultados II

Vemos los resultados (Forma 2)

Vemos los resultados que bajamos del sistema

HDFS

73

Page 71: 3.  Hadoop

Resultados III

Vemos los resultados (Forma 3)

Vemos los resultados que están en el HDFS sin

traerlos a nuestro sistema

74

Page 72: 3.  Hadoop

Parando Hadoop

Paramos los demonios

75

Page 73: 3.  Hadoop

Ejemplo: Word Count

77

Page 74: 3.  Hadoop

Compilación y Jar

WordCount.java

https://gist.github.com/gonzalezgarciacristian

/8295237c46d233459160

Lo subimos al servidor

Lo compilamos

Generamos el jar

78

Page 75: 3.  Hadoop

Datos de entrada Iniciar Hadoop, ver carpetas existentes,

borrarlas, crearlas, …

Creamos el directorio con los datos de entrada

Creamos el directorio de salida

Subimos los ficheros a utilizar Obtenidos de

https://wiki.skullsecurity.org/Passwords

Pasamos los ficheros al HDFS

79

Page 76: 3.  Hadoop

Ejecución y Resultado

Ejecutamos el proceso

Sacamos el resultado del sistema HDFS

Obtendremos una lista con las palabras más

repetidas

80

Page 77: 3.  Hadoop

Ejemplo: Hipotecas

81

Page 78: 3.  Hadoop

Obtención de datos

Bajamos un CSV

http://catalog.data.gov/dataset

https://mega.nz/#!S4ITzL4S!V-

dFdNCW0Q6hLGeDDyk8RBs9XM2Q2Koe52fZu

WnpbHA

Bajamos el MapReduce

https://gist.github.com/gonzalezgarciacristian

/721e7dd6e87557955b2d

82

Page 79: 3.  Hadoop

Pasos Subimos los datos al servidor

Metemos los datos al HDFS

Compilamos el .java

Creamos el .jar

Ejecutamos el trabajo

Obtenemos los resultados (Posible Error XI)

83

Page 80: 3.  Hadoop

Resultado

84

Errores por estar mal el CSV

Usa “,” en vez de “;”

Clave - Valor

Page 81: 3.  Hadoop

Errores Comunes

85

Page 82: 3.  Hadoop

Error I

org.apache.hadoop.mapred.FileAlreadyExis

tsException or 'Output directory output

already exists'. Cause: Output directory

already exists

Hadoop requiere que el directorio destino

no exista

Borrarlo o poner un directorio no existente

en la orden

86

Page 83: 3.  Hadoop

Error II

…could only be replicated to 0 nodes instead of minReplication (=1). There are 0 datanode(s) running and no node(s) are excluded in this operation…

El DataNode no esta funcionando

Parar los demonios

Borrar la caché: /tmp/hadoop-<username>

Formatear el nodo

87

Page 84: 3.  Hadoop

Error III

java.lang.RuntimeException:

java.lang.NoSuchMethodException: …

Las clases map y reduce deben de ser

estáticas (static)

88

Page 85: 3.  Hadoop

Error IV

Type mismatch in value from map:

expected org.apache.hadoop.io.Text,

received org.apache.hadoop.io.IntWritable

Comprobar el tipo de los “job”

89

Page 86: 3.  Hadoop

Error V

Al hacer –put al sistema HDFS, da error de

conexión

Solución

Formatear el nodo

Reiniciarlo

90

Page 87: 3.  Hadoop

Error VI

No encuentra las JavaTools al compilar

Añadir en el .bashrc las JavaTools

Reiniciar el .bashrc

91

Page 88: 3.  Hadoop

Error VII

Open SSH

Fichero id_rsa abierto

Este fichero tiene no puede ser público: 644

Sus permisos deben de ser: 400

92

Page 89: 3.  Hadoop

Error VIII

Open SSH

Pide la “passphrase” al añadir (ssh-add) el

“id_rsa” o da error de conexión

Comprobar que se haya subido el archivo

.pem y no .ppk

93

Page 90: 3.  Hadoop

Error IX

Java

Si tenemos problemas con el path de Java

al compilar o con Hadoop

Comprobar que el path de JAVA_HOME

este bien puesto en el fichero .bashrc

94

Page 91: 3.  Hadoop

Error X

Java

Si tenemos problemas con el path de Java

con Hadoop

Ir a la carpeta de configuración de

Hadoop: cd $CONF

Abrir fichero “hadoop-env.sh”

Comprobar que el JAVA_HOME sea el

correcto

95

Original

Posible ruta

Page 92: 3.  Hadoop

Error XI

Hadoop: -get

Warning

Está solucionado para la 2.7.2

https://issues.apache.org/jira/browse/HDFS-

8099

96

Page 93: 3.  Hadoop

Error XII

Hadoop: Ejecución

Unsupported major.nimor versión X.0

Posible compilación con la versión

incorrecta de Java respecto al Hadoop en

el que se desea ejecutar

97

Page 94: 3.  Hadoop

Comandos útiles

98

Page 95: 3.  Hadoop

HDFS

Listar directorios

hdfs dfs –ls

Crea directorios

hdfs dfs –mkdir

Borrar directorio

hdfs dfs –rm –R “directorio” (sin comillas)

99

Page 96: 3.  Hadoop

Herramientas

101

Page 97: 3.  Hadoop

Eclipse y Debug Eclipse

https://wiki.apache.org/hadoop/EclipseEnvironment

IntelliJ Idea

https://www.jetbrains.com/idea/download/

Bajar Hadoop (no el SRC)

Seguir pasos 10 a 16

http://vichargrave.com/intellij-project-for-building-hadoop-the-definitive-guide-examples/

Debug

Modo Standalone

http://wiki.apache.org/hadoop/HowToDebugMapReducePrograms

102

Page 98: 3.  Hadoop

Bibliografía

104

Page 99: 3.  Hadoop

Bibliografía

105

Page 100: 3.  Hadoop

107

Hadoop

Cristian González García v 1.2.2 Noviembre 2015