Cómo compilar el código fuente de la última versión 1.5.2 de Flume-NG
/3446.html apache-flume-1.5.2-src.tar.gz
2
Descomprima en el directorio raíz de la unidad C
Se recomienda colocarlo en el directorio raíz de la unidad C. Lo coloqué aquí durante la prueba. No se garantiza que otros directorios pasen con éxito. Consulte la prueba.
3
Ejecute mvn
Ingrese al directorio c:\apache-flume-1.5.2 y ejecute mvn install -DskipTests -Dtar Nota: Hay otros referencias en Internet La información dice comentar las dependencias relacionadas con hbase y hadoop-test, pero no lo hice. No hice eso y no funcionó.
Esto puede variar según su entorno. Sin embargo, si encuentra errores relacionados con hbase y hadoop-test, puede consultar la corrección.
4
Referencia de código parcial
& lt;scope>pruebas
< / dependency
5
Procesamiento del problema típico 1 [énfasis agregado más adelante]
1. Abra el zip Error al leer el archivo
[ERROR] error: error al leer
/org/elasticsearch/elasticsearch/0.90.1/elasticsearch-0.90.1.jar;
Error abriendo archivo comprimido
[ERROR] -> [Ayuda 1]
Este error puede ocurrir porque hay un problema con el archivo jar que has descargado. Visite su repositorio local y busque la ubicación del jar correspondiente, luego elimínelo y vuelva a ejecutar el comando mvn para solucionarlo. Este error no significa necesariamente que no se encuentre el contenedor de elasticsearch; otros contenedores también pueden tener este problema.
6
Procesamiento del problema típico 2 [énfasis añadido]
Hay un problema con flume-ng-morphline-solr-sink, la correspondiente kite-morphline No se encontraron dependencias. Quiero hacer algunos artículos con este flume-ng-morphline-solr-sink, por lo que el problema aquí debe resolverse.
[ERROR] No se pudo ejecutar el objetivo en el proyecto flume-ng-morphline-solr-sink: no se pudo resolver el proyecto org.apache.flume.flume-ng-sinks:flume-ng-morp
Error al recopilar las dependencias para [org.apache.flume:
flume-ng -core:jar:1.5.2 (compile), org.slf4j:slf4j-api:jar:1.6. 1 (compilar), org.
kitesdk:kite-morphlines-all:pom:0.12.0 (¿compilar?), org.slf4j: jcl-over-slf4j:jar:
1.6.1 (proporcionado), org.apache.solr:solr-test-framework:jar:4.3.0 (prueba), org.kite
sdk:kite- morphlines-solr-core:jar :tests:0.12.0 (test), junit:junit:jar:4.10 (test
t)]: Error al leer el descriptor de artefacto para org.kitesdk:kite- morphlines-all:pom: p>
0.12.0: No se pudo transferir el artefacto org.kitesdk:kite-morphlines-all:pom:0.12.0 de
rom/to cdh.repo (/artifactory/cloudera-repos) : Conexión rechazada: Se agotó el tiempo de conexión: conectar
ct -> [Ayuda 1]
El mensaje de error es para conectarse a Cloudera. Se agotó el tiempo de espera del repositorio central. Verifiqué el archivo pom.xml de flume-ng-morphline-solr-sink, la versión kite.version correspondiente es 0.12.0, pero el almacén central de Cloudera es diferente. Pero, de hecho, el repositorio central de Cloudera ya no tiene esta versión. Entonces la solución es: A, cambiar la versión de kite.version a 0.15.0. Después de la modificación, ingrese al directorio raíz del código fuente para buscar el archivo pom.xml, busque
< groupId>org.apache. hadoop
</exclusions>
C:\apache-flume- 1.5.2-src\flume-ng-sinks\flume-ng-morphline-solr-sink, abra el archivo pom.xml y reemplace todo ${kite.version} con 0.15.0. El propósito del paso anterior es que si el proyecto hace referencia a org.kitesdk, esa versión no se utilizará. La versión referenciada se puede personalizar. Estos son los dos principales problemas que encuentro en la práctica. Por supuesto, algunos son principalmente problemas de conexión del repositorio (la empresa es una lástima y la red es limitada). He estado probando varios métodos para solucionar el problema, como descargar el repositorio de Internet y subirlo a un servicio privado. Finalmente, aparece el mensaje "Compilar correctamente", la compilación se realizó correctamente, como se muestra en la siguiente figura.
7
Compilar en el proyecto eclipse
mvn eclipse:eclipse En este punto, se puede desarrollar el método de utilizar eclipse para importar el proyecto.
También encontré dos pruebas monolíticas flume-dataset-sink, donde un método no se compiló. Como no uso este fregadero, no me molesto en arreglarlo. Otro problema es que puede encontrar el problema del artefacto faltante jdk.tools:jdk.tools:jar:1.6 durante la instalación.
Solución alternativa: agregue dependencias en el archivo flume-ng-morphline-solr-sink pom.xml.
En cuanto a la versión de jdk y la ruta del sistema, dependen de las variables de entorno del entorno de desarrollo real. Todo lo demás es normal.