Red de conocimiento informático - Conocimiento informático - Cómo configurar Spring y verificar mapreduce

Cómo configurar Spring y verificar mapreduce

El legendario Spring finalmente se integra con Hadoop y se lanza Spring Hadoop.

Cuando quieres empezar a experimentar con Spring Hadoop, te encuentras con todo tipo de problemas extraños y la gente empieza a regresar.

Si simplemente quiere probarlo sin resolver estos problemas usted mismo, aquí hay algunos pasos que pueden darle una idea rápida de lo que Spring Hadoop puede hacer.

Requisitos del entorno: Hadoop 0.20.2+

Una vez completada la instalación, comencemos...

Paso 1. Descargue Spring Hadoop, aquí está el. utilizar Descargar git Si no está familiarizado con git, también puede descargarlo directamente desde el sitio web oficial y luego descomprimirlo

Referencia: Control de versiones de software: vídeo de introducción al uso de Git en Windows

.

Este ejemplo utiliza mi Tome el directorio de inicio como ejemplo. Recuerde cambiar el directorio por el suyo propio.

Recuerde cambiar el nombre del directorio a su propio nombre

/home/evanshsu mkdir springhadoop

/home/evanshsu cd springhadoop

/home/evanshsu/springhadoop git init

/home/evanshsu/springhadoop git init

/home/evanshsu/springhadoop git pull "git://github.com/SpringSource/spring-hadoop. git"

Paso 2.

/home/evanshsu/springhadoop mkdir lib

/home/evanshsu/springhadoop cp build/libs/spring-data-hadoop- 1.0.0 -SNAPSHOT.jar lib/

Paso 3.

Dado que Spring Hadoop depende de Spring-framework, debemos colocar el archivo jar de Spring-framework en lib

/home/evanshsu/springhadoop cp build/libs/spring-data-hadoop-10.0.0 BUILD p>

/home/evanshsu/spring wget "/dist.springframework.org/release /SPR/spring-framework-3.1.1.RELEASE.zip"

/home/evanshsu/ spring descomprime spring-framework-3.1.1.RELEASE.zip spring descomprime spring-framework-3.1.1. RELEASE.zip

/home/evanshsu/spring cp spring-framework-3.1.1.RELEASE/dist/*.jar /home/evanshsu /home/evanshsu/spring/samples/lib/

Paso 4. Modifique el archivo de compilación para encapsular todos los archivos jar en el mismo archivo jar

/home/evanshsu/spring/samples/wordcount vim build.gradle

<. p> descripción = 'Muestras de Spring Hadoop - WordCount'

aplicar complemento: 'base'

Aplicar complemento: 'java'

aplicar complemento: 'idea'

Complemento de aplicación:

repositorios {

flatDir(dirs: '/home/evanshsu/springhadoop/lib/')

// Artefactos públicos de Spring

maven { url "pile fileTree('/home/evanshsu/springhadoop/lib/')

compilar "org.apache.hadoop:hadoop-examples :$hadoopVersion"

// ver HADOOP-7461<

/p>

runtime "org.codehaus.jackson:jackson-mapper-asl:$jacksonVersion"

testCompile "junit:junit:$ junitVersion"

testCompile "org. springframework:spring-test:$springVersion"

}

jar {

de configuraciones.compile.collect { it.isDirectory() ? it : zipTree( it).matching{

excluir 'META-INF/spring.schemas'

excluir 'META-INF/spring.handlers'

}

}

}

}.}

}

Paso 5. Hay un hadoop.properties especial que se utiliza para guardar datos de configuración relacionados con hadoop.

Básicamente, necesitamos cambiar wordcount.input.path wordcount.output.path al directorio donde se ejecuta wordcount, y recordar colocar algunos archivos de texto en wordcount.input.path

Además, necesitamos cambiar hd.fs a su configuración de hdfs. Además, deberá cambiar hd.fs a su configuración de hdfs

Si está utilizando el Centro Nacional de Hadoop, cambie hd.fs a hd.fs=hdfs://gm2.nchc .org.tw :8020

/home/evanshsu/spring/samples/wordcount vim src/ main/resources/hadoop.

wordcount.input.path=/user/evanshsu/ input.txt

wordcount.output.path=/user/evanshsu/output

hive.host=localhost

hive.port=12345

colmena .url=jdbc:hive://${hive.host}:${hive.port}

hd.fs=hdfs:// localhost:9000

mapred.job .tracker=localhost:9001

path.cat=bin${file.separator}stream-bin${file.separator}cat

path.wc=bin ${file. separator}stream-bin${file.separator}wc

input.directory=logs

log.input=/logs/input/

log.output =/logs/output/

distcp.src=${hd.fs}/distcp/source.txt

distcp.dst=${hd.fs} /distcp/dst

Paso 6.

Este es el archivo de configuración más importante. Cualquiera que haya usado Spring sabe que este archivo de configuración es el alma de Spring

/home/evanshsu/spring/samples/wordcount vim src/main/resources/META-INF. /spring/context.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http:// www.springframework.org/schema/context"

xmlns:hdp="http://www.springframework.org/schema/hadoop"

xmlns:p="http: //www.springframework.org/schema/p"

xsi:schemaLocation="http://www.springframework.org/schema/ beanshttp://www.springframework.org/schema/beans/ spring-beans.xsd

http://www.springframework.org/schema/context http://www. springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/hadoop http://www.springframework .org/schema/hadoop/spring-hadoop.xsd">

fs.default.name=${hd.fs}

input-path="${wordcount.input.path}" ruta-salida ="${wordcount.output.path}"

mapper="org.springframework.samples.wordcount.WordCountMapper"

reducer="org.springframework.data.hadoop.samples .wordcount.WordCountReducer"<

jar-by-class="org.springframework.data.hadoop.samples.wordcount.WordCountMapper" />

<

;bean id="runner" class="org.springframework.data.hadoop.mapreduce.JobRunner" p:jobs-ref="wordcount-job"/>

Step7.io.IOException;

importar java.util.StringTokenizer;

importar org.apache.hadoop.io.IntWritable;

importar org .apache.hadoop.io.Text;

import org.apache.hadoop.mapreduce.Mapper;

clase pública WordCountMapper extiende Mapper<.Object, Text, Text, IntWritable> {

IntWritable estático final privado uno = nuevo IntWritable(1);

palabra de texto privada = nuevo texto();

mapa vacío público (clave de objeto, valor de texto , Contexto contexto)

lanza IOException, InterruptedException {

StringTokenizer itr = new StringTokenizer(value.write(word, one);

}

}

}

/home/evanshsu/spring/samples/wordcount vim src/main/java/org/springframework/data/hadoop/samples/ wordcount/WordCountReducer. java

Paquete org.p>

importar org.apache.hadoop.io.IntWritable;

importar org.apache.hadoop.io.Text;

importar org.apache.hadoop.mapreduce.Reducer;

importar org.apache.hadoop.mapreduce.Reducer;

importar org.apache.hadoop.io .Text;

import org.apache.hadoop.mapreduce.Reducer; context.write(clave, resultado);

}

}

Paso 8. Agregue spring.schemas, spring.handlers

/home/evanshsu/spring/samples/ wordcount vim src/main/resources/META-INF/spring.schemas

http\://www.springframework.org/schema/context/spring-context.xsd=org /springframework/context/config/spring-contex

t-3.1.xsd

http\://www.springframework.org/schema/hadoop/spring-hadoop.xsd=/org/springframework/data/hadoop/config/spring-hadoop-1.0. xsd

/home/evanshsu/spring/samples/wordcount vim src/main/resources/META-INF/spring.handlers

http\://www.springframework.org/ esquema/p=org.springframework.beans.factory.xml.SimplePropertyNamespaceHandler

http\://www.springframework.org/schema/context=org.springframework.context.config.ContextNamespaceHandler

http\://www.springframework.org/schema/hadoop=org.springframework.data.hadoop.config.HadoopNamespaceHandler

Finalmente, el último paso es encapsular todos los archivos jar y. Tíralo en hadoop

/home/evanshsu/spring/samples/wordcount ..../.../gradlew jar

/home/evanshsu/spring/samples/wordcount hadoop jar build/libs/wordcount-1.0.0.M1.jarorg.springframework.data.hadoop .samples.wordcount.Main