maven hadoop ant hadoop2

maven artefactId hadoop 2.2.0 para hadoop-core



ant hadoop2 (3)

Estoy migrando mi aplicación de hadoop 1.0.3 a hadoop 2.2.0 y la construcción de maven ha marcado hadoop-core como dependencia. Dado que hadoop-core no está presente para hadoop 2.2.0. Intenté reemplazarlo con hadoop-client y hadoop-common, pero sigo recibiendo este error para ant.filter. ¿Alguien puede sugerir qué artefacto usar?

previous config : <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-core</artifactId> <version>1.0.3</version> </dependency> New Config: <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.2.0</version> </dependency>

Error:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project event: Compilation failure: Compilation failure: [ERROR] /opt/teamcity/buildAgent/work/c670ebea1992ec2f/event/src/main/java/com/intel/event/EventContext.java:[27,36] package org.apache.tools.ant.filters does not exist [ERROR] /opt/teamcity/buildAgent/work/c670ebea1992ec2f/event/src/main/java/com/intel/event/EventContext.java:[27,36] package org.apache.tools.ant.filters does not exist [ERROR] /opt/teamcity/buildAgent/work/c670ebea1992ec2f/event/src/main/java/com/intel/event/EventContext.java:[180,59] cannot find symbol [ERROR] symbol: class StringInputStream [ERROR] location: class com.intel.event.EventContext


Las dependencias de Maven pueden obtenerse de este enlace. En cuanto a los dependientes de hadoop-core, hadoop-core fue el nombre de hadoop 1.X y el cambio de nombre de la versión a 2.X no ayudará. También en un proyecto hadoop 2.X que usa la dependencia hadoop 1.X da un error como

Causado por: org.apache.hadoop.ipc.RemoteException: Server IPC versión 9 no se puede comunicar con la versión de cliente 4

Por lo tanto, se sugiere no usarlo. He estado usando las siguientes dependencias en mi hadoop

<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.7.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>2.7.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-core</artifactId> <version>2.7.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-jobclient</artifactId> <version>2.7.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-common</artifactId> <version>2.7.1</version> </dependency> <dependency>

Puedes probar estos.


Dependemos principalmente de hdfs api para nuestra aplicación. Cuando migramos a hadoop 2.X, nos sorprendimos al ver los cambios en las dependencias. Comenzamos a agregar dependencias de a una por vez. Hoy dependemos de las siguientes bibliotecas principales.

hadoop-annotations-2.2.0 hadoop-auth-2.2.0 hadoop-common-2.2.0 hadoop-hdfs-2.2.0 hadoop-mapreduce-client-core-2.2.0

Además de estos también dependemos de bibliotecas de prueba. En función de sus necesidades, es posible que desee incluir hadoop-HDF y hadoop-mapreduce-client para las dependencias junto con hadoop-common.


Intente con estos artefactos, palabra bien en mi proyecto de palabras del proyecto de muestra

<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-core</artifactId> <version>1.2.1</version> </dependency>