El establecimiento de un minicluster Hadoop en Mac OS X Snow Leopard


Hadoop es un marco cada vez más popular para SIMD distribuida (Single Instruction, múltiples datos) la computación paralela. A riesgo de sobre-dramático es compartido un montón de datos entre un número de procesadores (conocido como clúster Hadoop, procesadores individuales son llamados nodos) y el funcionamiento uniforme se aplica a la porción de los datos (el fragmento) asignados a cada máquina. El resultado de la operación se devuelve como un conjunto de pares clave-valor. Esta etapa se conoce como la cartografía, donde "Mapa" se refiere a una estructura de datos que consiste en un conjunto de pares clave-valor.

En el siguiente paso el conjunto de pares clave-valor se reduce de tamaño. Típicamente para cada tecla un conjunto reducido de resultados - idealmente se produce un valor dominante de los pares. Este paso se conoce como reducción.




El algoritmo es sorprendentemente llama Mapa-Reducir.

En complejidad proviene del hecho de que los procesadores pueden fallar o tener radicalmente diferentes momentos que seguir su curso, y los datos pueden ser perdido en tránsito.

Para los desarrolladores minicluster una sola máquina con un pequeño conjunto de datos es útil para probar y depurar programas. Aquí (aproximadamente, ya que todo cambia) es cómo configurar un entorno de prueba y desarrollo en OS X (Snow Leopard). La mayoría de las instrucciones aquí asumen terminal de utilidad OSX está abierto al directorio de instalación de Hadoop. Hay muchas cosas que usted puede hacer para hacer la instalación más elegante y fácil de usar, pero cada uno tendrá sus propias ideas de cómo esto podría y debería hacerse.

SSH

SSH es un protocolo para la conexión segura de que viene con OS X, pero está mejor habilitado, de lo contrario Hadoop puede pedir la contraseña en el momento equivocado.

Abra el terminal y escriba

localhost ssh

Usted debe obtener una respuesta en respuesta

Último ingreso: dom 15 de julio 2012 01:15:19

Como alternativa (para los curiosos) busca el directorio .ssh (nótese el período) en la carpeta de inicio. Usted debe ver tres archivos.

ls .ssh

authorized_keys id_rsa id_rsa.pub known_hosts

Si usted puede ssh a la máquina local

  1. Vaya a Preferencias del Sistema → → Wireless y compartir Internet

    y verificar

  2. Abrir terminal en su directorio personal y el tipo

    1. ssh-keygen -t rsa -P ""

    2. gato $ HOME/.ssh/id_rsa.pub >> $ HOME/.ssh/authorized_keys

  1. Trate localhost ssh.

La segunda fase genera claves públicas y privadas a ssh a usar y los agrega a un archivo de claves públicas que pertenecen a usuarios autorizados del clúster.

Cómo Hadoop

Esto cambia de vez en cuando. Google "Descarga de Hadoop" y darse una vuelta hasta encontrar las últimas versiones estables (masoquistas puede descargar una versión alfa, si lo desean). Usted quiere que el Hadoop _ ** - versión bin.tar.gz o, si desea buscar en el origen de la versión tar.gz **. La versión utilizada aquí fue 1.0.3

Puedes descargarlo, descomprimirlo, poner la carpeta en la que desea. Guardo en una carpeta/local.

Configuración


Y 'necesario editar algunos archivos (todos los nombres son en relación con el directorio extraído del archivo tar), todos en el directorio conf de la distribución

conf/hadoop-env.sh

  • elimine la línea A_HOME JAV exportación y ponerlo en/Library/Java/Home

  • descomentar la HADOOP_HEAPSIZE exportación de línea y mantenerla en 2000

  • Es posible que necesite añadir o eliminar el comentario de la siguiente línea que resuelve un problema con Lion

  • exportación HADOOP_OPTS = "- Djava.security.krb5.realm = OX.AC.UK -Djava.security.krb5.kdc = kdc0.ox.ac.uk: kdc1.ox.ac.uk"

El último cambio es superar un problema con Mac OS Lion. Encontré esta versión que he descargado.

conf/coresite.xml debería tener este aspecto.

(Ajuste la ubicación para almacenar los directorios temporales de Hadoop y HDFS, el Sistema de archivos distribuido Hadoop. También establece el nombre predeterminado para el sistema de archivos, que es un puerto en el equipo local. Por supuesto que puede hacer el valor de hadoop.tmp Dir. lo que quieras).

hadoop.tmp.dir

/Users/${user.name}/hadoop-store

Una base para otros directorios temporales.

fs.default.name

HDFS: // localhost: 8020

conf/HDFS-site.xml debería ser similar. La replicación propiedad determina cuántas copias se deben almacenar en un archivo. Dado que este se ejecutará en una sola máquina se pone a 1

dfs.replication

1

-site.xml mapred debería tener este aspecto:

(Debe especificar el nombre de la obra del tracker y el número máximo de mapa y reducir las actividades generadas).

mapred.job.tracker

localhost: 9001

mapred.tasktracker.map.tasks.maximum

2

mapred.tasktracker.reduce.tasks.maximum

2


Formatear la NameNode

Esto debe hacerse sólo una vez. Desde Hadoop instalar tipo de directorio

bin/Hadoop NameNode -format

Usted debe ver un montón de líneas, la última final con

SHUTDOWN_MSG: Stop NameNode

No debe volver a formatear la NameNode. Cree el directorio y rellena hadoop.tmp.dir.

Si reformatea el nombre de nodo más tarde eliminar el hadoop.tmp.dir directorio PRIMERO.

Si ha utilizado la opción predeterminada por encima de la voluntad Hadoop-tienda en su directorio personal. Si no borra las cosas nolonger trabajan y aplicaciones o colapsan o lanzan excepciones. También verá mensajes extraños en los registros comienzan HDFS.

Inicio HDFS

También desde Hadoop Instalar

bin/start-all.sh

La respuesta debería ser como este

a partir NameNode, grabación ......

localhost: a partir DataNode, grabación ... ......................

localhost: a partir secondarynamenode, grabación ... .............................

A partir Job Tracker, grabación ... ...............................

localhost: a partir TaskTracker, grabación ... ...............

Tome nota de las rutas y los nombres de los archivos de registro. Si no hay mensajes de error o rastreo de pila excepción puede continuar. De lo contrario, revise las instrucciones de arriba. Otra prueba de humo es de tipo

ps ax | grep Hadoop | wc -l

El resultado esperado debería ser de 6

Explorar y HDFS populares

Usted puede acceder a muchos servicios UNIX sistema de archivos como opción Opciones de Hadoop DFS bien

bin/Hadoop dfs -ls

mostrará todas las carpetas en su área de DFS dfs bin/Hadoop -rmr elimina un directorio de DFS, y así sucesivamente.

Una excepción notable es la copia de la DFS sistema de archivos local que se hace de esta manera

bin/Hadoop dfs -copyFromLocal desde a

de una ruta completa en el sistema local y es en la que desea DFS.

Hay una opción similar en la dirección opuesta.

bin/Hadoop dfs -copyToLocal MyOutput salida

Prueba esto un par de veces con los archivos y directorios a los que están felices de saber qué está pasando. Utilice el ls y opciones -CAT de Hadoop DFS comando para comprobar que todo va bien

En particular, se necesita al menos un directorio en la SSE para la entrada de datos.

Ejecución de los ejemplos

La prueba final es ejecutar algunos de los ejemplos que vienen en la caja con la instalación. Comando genérico de esto es

/ Bin/jar Hadoop

entonces

pi bin jar/Hadoop Hadoop-ejemplos-1.0.3.jar 100 10

calcula una aproximación de pi griego. Dado que se está ejecutando en un nodo de clúster único que puede esperar para conseguir un poco '.

sustitución de "pi 100 10" con "wordcount Input Output" WordCount ejecutar un programa que cuenta las palabras en la entrada del directorio de archivos de texto en la SSE y escribir los resultados en una salida de directorio llamado recién creado

Antes de ejecutar el ejemplo a continuación, pi

bin jar/Hadoop-ejemplos-1.0.3.jar Hadoop ouput wordcount entrada

NOTA: Hadoop no sobrescribir un directorio existente, y si no es el nombre de un nuevo directorio de salida o eliminar el viejo obtendrá un error y el proceso no se ejecutará

Buscar resultados

Puede verificar los resultados mirando el directorio de salida

/ Dfs Hadoop -ls bandeja de salida

debe mostrar tres filas. El llamado parte-r-00000 no debe estar vacío. Vea lo que está en él escribiendo

bin dfs/Hadoop -CAT salida2/parte *

Notas

Info NameNode: http: // localhost: 50070/dfshealth.jsp

Job Tracker: http: // localhost: 50030

A partir de clúster Hadoop: 'bin/startall.sh'

Detener Hadoop clúster: bin/stopall.sh

Compruebe Hadoop inició correctamente: Uso ps ax | grep Hadoop | wc seguro para ver el 6 como salida.

Hay cinco procesos asociados con Hadoop y la pertinencia del último comando

Al formatear NameNode menos mirar dónde está la hadoop.tmp.dir dorectory y donde los registros son. Los registros son de su amigo. A veces, su único amigo.

El Wrap

Esta nota ha mostrado un barato y alegre para establecer un único nodo de clúster Hadoop en OS X. El proceso para crear un nodo de clúster es más complicado y más en un entorno corporativo puede ser complicado por las restricciones de seguridad que afectaron ssh. Sin embargo, esto permite a los desarrolladores aprenden de la experimentación en conjuntos de datos muy pequeños, y para probar y depurar programas en el mismo conjunto de datos antes de implementar en la producción. También será útil para experimentar PIG, el Hadoop lenguaje de scripting

Las siguientes referencias resultó invaluable. Sin embargo, los autores quizás tomado demasiado conocimiento de los lectores y no tienen ningún trampas particulares que pudieran ocurrir. Esto es común y no tengo ninguna duda perdido cuarenta encontrará útil.

Esta no es la única manera de experimentar con Hadoop en OS X. Si usted está interesado sólo en la codificación puede ejecutar programas de Hadoop, con un poco de "menos problemas, en Eclipse. Pero esta nota es bastante tiempo ya.

Otras lecturas

[1] http://wiki.apache.org/hadoop/Running_Hadoop_On_OS_X_10.5_64-bit_%28Single-Node_Cluster%29

[2] http://ragrawal.wordpress.com/2012/04/28/installing-hadoop-on-mac-osx-lion/

[3] Yo era un http://blogs.msdn.com/b/brandonwerner/archive/2011/11/13/how-to-set-up-hadoop-on-os-x-lion-10-7.aspx poco "sorprendió petición de Apple no proporciona Java fuera de la caja.

(0)
(0)

Comentarios - 0

Sin comentarios

Añadir un comentario

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Caracteres a la izquierda: 3000
captcha