setup for descargar cluster windows hadoop
herehttp://protobuf.googlecode.com/files/protoc-2.5.0-win32.zip

for - Ejecución de Apache Hadoop 2.1.0 en Windows



install hadoop (11)

Soy nuevo en Hadoop y me he encontrado con problemas al tratar de ejecutarlo en mi máquina con Windows 7. En particular, estoy interesado en ejecutar Hadoop 2.1.0 ya que sus notas de lanzamiento mencionan que se admite ejecutar en Windows. Sé que puedo intentar ejecutar versiones 1.x en Windows con Cygwin o incluso usar VM preparada, por ejemplo, Cloudera, pero estas opciones son, en algunos casos, menos convenientes para mí.

Habiendo examinado un tarball de http://apache-mirror.rbc.ru/pub/apache/hadoop/common/hadoop-2.1.0-beta/ Descubrí que realmente hay algunos scripts * .cmd que se pueden ejecutar sin Cygwin . Todo funcionó bien cuando formateé la partición HDFS pero cuando traté de ejecutar hdfs namenode daemon me enfrenté a dos errores: primero, no fatal, era que winutils.exe no se podía encontrar (realmente no estaba presente en el tarball descargado). Encontré las fuentes de este componente en el árbol de fuentes de Apache Hadoop y lo compilé con Microsoft SDK y MSbuild. Gracias al mensaje de error detallado, quedó claro dónde colocar el ejecutable para satisfacer a Hadoop. Pero el segundo error que es fatal no contiene suficiente información para que lo resuelva:

13/09/05 10:20:09 FATAL namenode.NameNode: Exception in namenode join java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z at org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Native Method) at org.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:423) at org.apache.hadoop.fs.FileUtil.canWrite(FileUtil.java:952) at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.analyzeStorage(Storage.java:451) at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverStorageDirs(FSImage.java:282) at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:200) ... 13/09/05 10:20:09 INFO util.ExitUtil: Exiting with status 1

Parece que se debe compilar algo más. Voy a intentar construir Hadoop desde la fuente con Maven, pero ¿no hay una manera más simple? ¿No hay alguna opción-I-know-not-of que pueda desactivar el código nativo y hacer que el tarball se pueda usar en Windows?

Gracias.

ACTUALIZADO. Sí, de hecho. El paquete "Homebrew" contenía algunos archivos adicionales, los más importantes son winutils.exe y hadoop.dll. Con estos archivos, namenode y datanode se iniciaron correctamente. Creo que la pregunta puede ser cerrada. No lo eliminé en caso de que alguien tenga la misma dificultad.

ACTUALIZADO 2. Para construir el paquete "homebrew" hice lo siguiente:

  1. Encontré fuentes y las desempaqué.
  2. Lea cuidadosamente BUILDING.txt.
  3. Dependencias instaladas:
    3a) Windows SDK 7.1
    3b) Maven (utilicé 3.0.5) 3c) JDK (utilicé 1.7.25)
    3d) ProtocolBuffer (utilicé 2.5.0 - http://protobuf.googlecode.com/files/protoc-2.5.0-win32.zip ). Basta con poner el compilador (protoc.exe) en algunas de las carpetas de PATH.
    3e) Un conjunto de herramientas de línea de comandos de UNIX (instalé Cygwin)
  4. Comenzó la línea de comando de Windows SDK. Comience | Todos los programas | Microsoft Windows SDK v7.1 | ... Símbolo del sistema (modifiqué este acceso directo, agregué la opción / lanzamiento en la línea de comando para compilar las versiones de lanzamiento del código nativo). Todos los próximos pasos se realizan desde la ventana de línea de comandos de SDK)
  5. Configura el ambiente:

    establecer JAVA_HOME = {path_to_JDK_root}

¡Parece que JAVA_HOME NO DEBE contener espacio!

set PATH={path_to_maven_bin};%PATH% set Platform=x64 set PATH={path_to_cygwin_bin};%PATH% set PATH={path_to_protoc.exe};%PATH%

  1. Se cambió el directorio a la carpeta raíz de las fuentes (BUILDING.txt advierte que hay algunas limitaciones en la longitud de la ruta, por lo que la raíz de las fuentes debe tener un nombre corto - He usado D: / hds)
  2. Ran proceso de construcción:

    paquete mvn -Pdist -DskipTests

Puedes probar sin ''skipTests'' pero en mi máquina algunas pruebas fallaron y la construcción finalizó. Puede estar relacionado con problemas de enlace simbólico mencionados en BUILDING .txt. 8. Elegido el resultado en hadoop-dist / target / hadoop-2.1.0-beta (los archivos ejecutables de windows y dlls están en la carpeta ''bin'')


Acabo de instalar Hadoop 2.2.0 en mi entorno win7 X64.

El siguiente BUILD.txt me obliga a hacerlo. Tenga en cuenta que: el directorio en hdfs-site.xml y mapred-site.xml comienza con / me gusta a continuación

P.EJ

<property> <name>dfs.namenode.name.dir</name> <value>file:/hadoop-2.2.0_1/dfs/name</value> <description></description> <final>true</final>

Puede ayudarte!


Además de otras soluciones, here hay una copia precompilada de winutil.exe. Descarguelo y agréguelo a $ HADOOP_HOME / bin. Esto funciona para mi.

(Fuente: haga clic aquí )


Agregar hadoop.dll y hdfs.dll a la carpeta% HADOOP_HOME% / bin me fue útil.


Agregue hadoop.dll (versión sensible) al directorio system32 en Directorio de Windows.

Puede obtener hadoop.dll en winutils




Han preparó los binarios de Windows x64 de Hadoop 2.2 (ver su blog ) y los subió a Github .

Después de poner los dos binarios winutils.exe y hadoop.dll en la %hadoop_prefix%/bin , obtuve el mismo UnsatisfiedLinkError .

El problema era que faltaba alguna dependencia de hadoop.dll . Utilicé Dependency Walker para comprobar las dependencias de los binarios y faltaban los redistribuibles de Microsoft Visual C ++ 2010 .

Entonces, además de construir todos los componentes usted mismo, la respuesta al problema es

  • asegúrese de usar la misma arquitectura para Java y el código nativo. java -version le dice si usa 32 o x64.
  • luego use Dependency Walker para asegurarse de que todos los binarios nativos sean puros y de la misma arquitectura. A veces falta una dependencia x64 y Windows vuelve a x86, lo que no funciona. Ver la respuesta de otra pregunta .
  • también verifica si todas las dependencias de los binarios nativos están satisfechas.

He seguido los siguientes pasos para instalar Hadoop 2.2.0

Pasos para compilar la distribución de bin Hadoop para Windows

  1. Descargue e instale Microsoft Windows SDK v7.1.

  2. Descargue e instale la herramienta de línea de comandos de Unix Cygwin.

  3. Descargue e instale Maven 3.1.1.

  4. Descargue Protocol Buffers 2.5.0 y extráigalo a una carpeta (digamos c: / protobuf).

  5. Agregue variables de entorno JAVA_HOME, M2_HOME y Platform si aún no se han agregado. Nota: El nombre de la variable Plataforma distingue entre mayúsculas y minúsculas. Y el valor será x64 o Win32 para construir en un sistema de 64 o 32 bits. Editar variable de ruta para agregar el directorio bin de Cygwin (digamos C: / cygwin64 / bin), el directorio bin de Maven (digamos C: / maven / bin) y la ruta de instalación de Buffers de protocolo (digamos c: / protobuf).

  6. Descargue hadoop-2.2.0-src.tar.gz y extráigalo a una carpeta que tenga una ruta corta (digamos c: / hdfs) para evitar problemas de tiempo de ejecución debido a la limitación máxima de la longitud de la ruta en Windows.

  7. Seleccione Inicio -> Todos los programas -> Microsoft Windows SDK v7.1 y abra Windows SDK 7.1 Símbolo del sistema. Cambie el directorio a la carpeta de código fuente de Hadoop (c: / hdfs). Ejecute el paquete mvn con opciones -Pdist, native-win -DskipTests -Dtar para crear la distribución tar de Windows.

  8. Si todo va bien en el paso anterior, se creará la distribución nativa hadoop-2.2.0.tar.gz dentro del directorio C: / hdfs / hadoop-dist / target / hadoop-2.2.0.

Instalar Hadoop

  1. Extraiga hadoop-2.2.0.tar.gz en una carpeta (digamos c: / hadoop).

  2. Agregue la variable de entorno HADOOP_HOME y edite la variable de ruta para agregar el directorio bin de HADOOP_HOME (digamos C: / hadoop / bin).

Configurar Hadoop

C: / hadoop / etc / hadoop / core-site.xml

<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>

C: / hadoop / etc / hadoop / hdfs-site.xml

<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/hadoop/data/dfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/hadoop/data/dfs/datanode</value> </property> </configuration>

C: / hadoop / etc / hadoop / mapred-site.xml

<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>

C: / hadoop / etc / hadoop / yarn-site.xml

<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> </configuration>

Formato namenode

Solo por primera vez, se debe formatear namenode.

C:/Users/abhijitg>cd c:/hadoop/bin c:/hadoop/bin>hdfs namenode –format

Inicie HDFS (Namenode y Datanode)

C:/Users/abhijitg>cd c:/hadoop/sbin c:/hadoop/sbin>start-dfs

Inicie MapReduce aka YARN (Administrador de Recursos y Administrador de Nodos)

C:/Users/abhijitg>cd c:/hadoop/sbin c:/hadoop/sbin>start-yarn starting yarn daemons

Se abrirán automáticamente cuatro ventanas de símbolo del sistema separadas para ejecutar Namenode, DataNode, Resource Manager, Node Manager

Referencia: compilar, instalar, configurar y ejecutar Apache Hadoop 2.2.0 en el sistema operativo Microsoft Windows


Me encontré con el mismo problema con Hadoop 2.4.1 en Windows 8.1; hubo algunas diferencias con la solución resultante causada principalmente por el sistema operativo más nuevo.

Primero instalé el binario Hadoop 2.4.1, desempaqueándolo en% HADOOP_HOME %.

Las respuestas anteriores describen cómo configurar Java, protobuf, cygwin y maven, y las variables de entorno necesarias. Tuve que cambiar mi variable de entorno de plataforma del valor impar de ''BCD'' de HP.

Descargué la fuente de un espejo Apache y lo desempaqué en un directorio corto ( HADOOP_SRC = C: / hsrc). Maven funcionó bien desde un símbolo del sistema estándar de Windows en ese directorio: paquete mvn -DskipTests .

En lugar de usar Windows 7 SDK (que no pude cargar) o Windows 8.1 SDK (que no tiene las herramientas de compilación de línea de comandos), utilicé Microsoft Visual Studio Express 2013 gratis para Windows Desktop . La compilación de Hadoop necesitaba la ubicación de MSBuild (C: / Archivos de programa (x86) / MSBuild / 12.0) en el PATH, y requería que los diversos proyectos de origen nativos de Hadoop se actualizaran al formato más nuevo (MS VS 2013). Las fallas de generación de maven fueron lo suficientemente buenas como para señalar la ruta absoluta de cada proyecto ya que falló, lo que facilita la carga del proyecto en Visual Studio (que se convierte automáticamente, después de preguntar).

Una vez construido, copié los ejecutables y las bibliotecas nativas en el directorio bin de Hadoop. Se construyeron en% HADOOP_SRC % / hadoop-common-project / hadoop-common / target / bin, y deben copiarse en% HADOOP_HOME % / bin.


Tuve el mismo problema pero con el reciente hadoop v. 2.2.0. Aquí están mis pasos para resolver ese problema:

  1. Construí winutils.exe de fuentes. Directorio de proyectos:

    hadoop-2.2.0-src/hadoop-common-project/hadoop-common/src/main/winutils

    Mi sistema operativo: Windows 7. Herramienta para compilar: MS Visual Studio Express 2013 para escritorio de Windows (es gratis y se puede cargar desde http://www.microsoft.com/visualstudio/ ). Open Studio, File -> Open -> winutils.sln . Haga clic derecho en la solución en el lado derecho -> Build . Hubo un par de errores en mi caso (es posible que deba corregir las propiedades del proyecto, especificar la carpeta de salida). ¡Viola! Obtiene winutils.exe - winutils.exe en el contenedor de hadoop.

  2. Luego tenemos que construir hadoop.dll . Algo de magia woodoo aquí va: abierto

    hadoop-2.2.0-src/hadoop-common-project/hadoop-common/src/main/native/native.sln

    en MS VS; haga clic derecho en la solución -> compilación. Tengo un montón de errores. Creé manualmente varios archivos de encabezado perdidos (¡no me pregunten por qué se pierden en el tarball fuente!):

    https://github.com/jerishsd/hadoop-experiments/tree/master/sources

    (y no me preguntes para qué sirve este proyecto en git! No lo sé - google lo señaló al buscar nombres de archivos de encabezado) He copiado

    hadoop-2.2.0-src/hadoop-common-project/hadoop-common/target/winutils/Debug/libwinutils.lib

    (resultado del paso # 1) en

    hadoop-2.2.0-src/hadoop-common-project/hadoop-common/target/bin

    ¡Y finalmente la operación de compilación produce hadoop.dll! ¡Póngalo de nuevo en el contenedor de hadoop y felizmente ejecute namenode!

Espero que mis pasos ayuden a alguien.


Download e instale Java en c:/java/

asegúrese de que la ruta sea así, si java está instalado en ''archivos de programa'', entonces hadoop-env.cmd no reconocerá la ruta java

Download distribución binaria de Hadoop.

Estoy usando la distribución binaria Hadoop-2.8.1. También recomendaría mantener la ruta de extracción lo más corta posible

Establecer variables de entorno:

JAVA_HOME = "c:/Java" HADOOP_HOME="<your hadoop home>" Path= "JAVA_HOME/bin" Path = "HADOOP_HOME/bin"

Hadoop funcionará en Windows si Hadoop-src se construye utilizando maven en su máquina de Windows. La construcción de Hadoop-src (distribución) creará una distribución binaria de Hadoop, que funcionará como versión nativa de Windows.

Pero si no quiere hacer eso, entonces descargue winutils of Hadoop distribution. Aquí hay un winutils , que tiene winutils de algunas versiones de Hadoop.

si la versión que está utilizando no está en la lista, siga el método convencional para configurar Hadoop en Windows - link

Si encontró su versión, copie y pegue todo el contenido de la carpeta en la ruta: / bin /

Establezca todos los archivos de configuración .xml: Link y establezca la ruta JAVA_HOME en el archivo hadoop-env.cmd

Desde cmd ve a:

<HADOOP_HOME>/bin/> hdfs namenode -format <HADOOP_HOME>/sbin> start-all.cmd

Espero que esto ayude.