2015-02-22 17 views
0

Я настроил gridgain-hadoop-os-6.6.2.zip и выполнил следующие шаги, как указано в docs/hadoop_readme.pdf. начал gridgain с помощью команды bin/ggstart.sh, теперь я запускаю простой код wordcount в gridgain с hadoop-2.2.0. с помощью командыОшибка GridGain: java.lang.NoClassDefFoundError: org/apache/hadoop/mapreduce/JobContext

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/*-mapreduce-examples-*.jar wordcount /input /output 

шаги я попробовал:

Шаг 1: Извлеченные Hadoop-2.2.0 и gridgain-hadoop-os-6.6.2.zip файл в USR/локальную папку и изменилось имя папки gridgain как «gridgain».

Шаг 2: указан путь для экспорта GRIDGAIN_HOME =/USR/местные/gridgain .. и путь для Hadoop-2.2.0 с JAVA_HOME как

# Set Hadoop-related environment variables 
export HADOOP_PREFIX=/usr/local/hadoop-2.2.0 
export HADOOP_HOME=/usr/local/hadoop-2.2.0 
export HADOOP_MAPRED_HOME=/usr/local/hadoop-2.2.0 
export HADOOP_COMMON_HOME=/usr/local/hadoop-2.2.0 
export HADOOP_HDFS_HOME=/usr/local/hadoop-2.2.0 
export YARN_HOME=/usr/local/hadoop-2.2.0 
export HADOOP_CONF_DIR=/usr/local/hadoop-2.2.0/etc/hadoop 
export GRIDGAIN_HADOOP_CLASSPATH='/usr/local/hadoop-2.2.0/lib/*:/usr/local/hadoop-2.2.0/lib/*:/usr/local/hadoop-2.2.0/lib/*' 

Шаг 3:

сейчас я запускаю команду как bin/setup-hadoop.sh ... ответ Y на каждое приглашение.

Шаг 4:

начал gridgain используя команду

бен/ggstart.sh

Шаг 5:

Теперь я создал каталог и закачанный файл с помощью:

hadoop fs -mkdir /input 

hadoop fs -copyFromLocal $HADOOP_HOME/README.txt /input/WORD_COUNT_ME. 
txt 

Шаг 6:

Выполнение этой команды дает мне ошибку:

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/*-mapreduce-examples-*. 
jar wordcount /input /output 

Получение следующие ошибки:

15/02/22 12:49:13 INFO Configuration.deprecation: mapred.working.dir is deprecated. Instead, use mapreduce.job.working.dir 
15/02/22 12:49:13 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_091ebfbd-2993-475f-a506-28280dbbf891_0002 
15/02/22 12:49:13 INFO mapreduce.JobSubmitter: Cleaning up the staging area /tmp/hadoop-yarn/staging/hduser/.staging/job_091ebfbd-2993-475f-a506-28280dbbf891_0002 
java.lang.NullPointerException 
    at org.gridgain.client.hadoop.GridHadoopClientProtocol.processStatus(GridHadoopClientProtocol.java:329) 
    at org.gridgain.client.hadoop.GridHadoopClientProtocol.submitJob(GridHadoopClientProtocol.java:115) 
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:430) 
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1268) 
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1265) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:415) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491) 
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1265) 
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1286) 
    at org.apache.hadoop.examples.WordCount.main(WordCount.java:84) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:72) 
    at org.apache.hadoop.util.ProgramDriver.run(ProgramDriver.java:144) 
    at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:74) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.hadoop.util.RunJar.main(RunJar.java:212) 

и gridgain ошибка консоли, как:

sLdrId=a0b8610bb41-091ebfbd-2993-475f-a506-28280dbbf891, userVer=0, loc=true, sampleClsName=java.lang.String, pendingUndeploy=false, undeployed=false, usage=0]], taskClsName=o.g.g.kernal.processors.hadoop.proto.GridHadoopProtocolSubmitJobTask, sesId=e129610bb41-091ebfbd-2993-475f-a506-28280dbbf891, startTime=1424589553332, endTime=9223372036854775807, taskNodeId=091ebfbd-2993-475f-a506-28280dbbf891, [email protected], closed=false, cpSpi=null, failSpi=null, loadSpi=null, usage=1, fullSup=false, subjId=091ebfbd-2993-475f-a506-28280dbbf891], jobId=f129610bb41-091ebfbd-2993-475f-a506-28280dbbf891]] 
java.lang.NoClassDefFoundError: org/apache/hadoop/mapreduce/JobContext 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2585) 
    at java.lang.Class.getConstructor0(Class.java:2885) 
    at java.lang.Class.getConstructor(Class.java:1723) 
    at org.gridgain.grid.hadoop.GridHadoopDefaultJobInfo.createJob(GridHadoopDefaultJobInfo.java:107) 
    at org.gridgain.grid.kernal.processors.hadoop.jobtracker.GridHadoopJobTracker.job(GridHadoopJobTracker.java:959) 
    at org.gridgain.grid.kernal.processors.hadoop.jobtracker.GridHadoopJobTracker.submit(GridHadoopJobTracker.java:222) 
    at org.gridgain.grid.kernal.processors.hadoop.GridHadoopProcessor.submit(GridHadoopProcessor.java:188) 
    at org.gridgain.grid.kernal.processors.hadoop.GridHadoopImpl.submit(GridHadoopImpl.java:73) 
    at org.gridgain.grid.kernal.processors.hadoop.proto.GridHadoopProtocolSubmitJobTask.run(GridHadoopProtocolSubmitJobTask.java:54) 
    at org.gridgain.grid.kernal.processors.hadoop.proto.GridHadoopProtocolSubmitJobTask.run(GridHadoopProtocolSubmitJobTask.java:37) 
    at org.gridgain.grid.kernal.processors.hadoop.proto.GridHadoopProtocolTaskAdapter$Job.execute(GridHadoopProtocolTaskAdapter.java:95) 
    at org.gridgain.grid.kernal.processors.job.GridJobWorker$2.call(GridJobWorker.java:484) 
    at org.gridgain.grid.util.GridUtils.wrapThreadLoader(GridUtils.java:6136) 
    at org.gridgain.grid.kernal.processors.job.GridJobWorker.execute0(GridJobWorker.java:478) 
    at org.gridgain.grid.kernal.processors.job.GridJobWorker.body(GridJobWorker.java:429) 
    at org.gridgain.grid.util.worker.GridWorker.run(GridWorker.java:151) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.ClassNotFoundException: Failed to load class: org.apache.hadoop.mapreduce.JobContext 
    at org.gridgain.grid.kernal.processors.hadoop.GridHadoopClassLoader.loadClass(GridHadoopClassLoader.java:125) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    ... 20 more 
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.mapreduce.JobContext 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at org.gridgain.grid.kernal.processors.hadoop.GridHadoopClassLoader.loadClassExplicitly(GridHadoopClassLoader.java:196) 
    at org.gridgain.grid.kernal.processors.hadoop.GridHadoopClassLoader.loadClass(GridHadoopClassLoader.java:106) 
    ... 21 more 
^[[B 

Помощь здесь ....

Отредактировано Здесь:

[email protected]:~$ hadoop classpath 
/usr/local/hadoop-2.2.0/etc/hadoop:/usr/local/hadoop-2.2.0/share/hadoop/common/lib/*:/usr/local/hadoop-2.2.0/share/hadoop/common/*:/usr/local/hadoop-2.2.0/share/hadoop/hdfs:/usr/local/hadoop-2.2.0/share/hadoop/hdfs/lib/*:/usr/local/hadoop-2.2.0/share/hadoop/hdfs/*:/usr/local/hadoop-2.2.0/share/hadoop/yarn/lib/*:/usr/local/hadoop-2.2.0/share/hadoop/yarn/*:/usr/local/hadoop-2.2.0/share/hadoop/mapreduce/lib/*:/usr/local/hadoop-2.2.0/share/hadoop/mapreduce/*:/usr/local/hadoop-2.2.0/contrib/capacity-scheduler/*.jar 
[email protected]:~$ jps 
3529 GridCommandLineStartup 
3646 Jps 
[email protected]:~$ echo $GRIDGAIN_HOME 
/usr/local/gridgain 
[email protected]:~$ echo $HADOOP_HOME 
/usr/local/hadoop-2.2.0 
[email protected]:~$ hadoop version 
Hadoop 2.2.0 
Subversion https://svn.apache.org/repos/asf/hadoop/common -r 1529768 
Compiled by hortonmu on 2013-10-07T06:28Z 
Compiled with protoc 2.5.0 
From source with checksum 79e53ce7994d1628b240f09af91e1af4 
This command was run using /usr/local/hadoop-2.2.0/share/hadoop/common/hadoop-common-2.2.0.jar 
[email protected]:~$ cd /usr/local/hadoop-2.2.0/share/hadoop/mapreduce 
[email protected]:/usr/local/hadoop-2.2.0/share/hadoop/mapreduce$ ls 
hadoop-mapreduce-client-app-2.2.0.jar  hadoop-mapreduce-client-hs-2.2.0.jar   hadoop-mapreduce-client-jobclient-2.2.0-tests.jar lib 
hadoop-mapreduce-client-common-2.2.0.jar hadoop-mapreduce-client-hs-plugins-2.2.0.jar hadoop-mapreduce-client-shuffle-2.2.0.jar   lib-examples 
hadoop-mapreduce-client-core-2.2.0.jar hadoop-mapreduce-client-jobclient-2.2.0.jar hadoop-mapreduce-examples-2.2.0.jar    sources 
[email protected]:/usr/local/hadoop-2.2.0/share/hadoop/mapreduce$ 
+0

Вопрос редактируется ... –

+0

шагов отредактировали .. –

+0

Edited Отдается Дорожки .. –

ответ

1

Я настроил точно версии вы упомянули (gridgain-hadoop-os-6.6.2.zip + Hadoop-2.2.0) - в "WordCount" образцы работ хорошо.


[UPD после анализа журнала автор Вопрос в:]

Раджу, спасибо за подробные журналы. Причиной проблемы неправильно установлены переменные Env

export HADOOP_MAPRED_HOME=${HADOOP_HOME} 
export HADOOP_COMMON_HOME=${HADOOP_HOME} 
export HADOOP_HDFS_HOME=${HADOOP_HOME} 

Вы явно установить все эти переменные $ {значение} HADOOP_HOME, что неправильно. Это приводит к GG сочинить неправильный Hadoop путь к классам, как видно из ниже журнала узла GG:

+++ HADOOP_PREFIX=/usr/local/hadoop-2.2.0 
+++ [[ -z /usr/local/hadoop-2.2.0 ]] 
+++ '[' -z /usr/local/hadoop-2.2.0 ']' 
+++ HADOOP_COMMON_HOME=/usr/local/hadoop-2.2.0 
+++ HADOOP_HDFS_HOME=/usr/local/hadoop-2.2.0 
+++ HADOOP_MAPRED_HOME=/usr/local/hadoop-2.2.0 
+++ GRIDGAIN_HADOOP_CLASSPATH='/usr/local/hadoop-2.2.0/lib/*:/usr/local/hadoop-2.2.0/lib/*:/usr/local/hadoop-2.2.0/lib/*' 

Таким образом, чтобы решить проблему, пожалуйста, сделать не набор ненужной переменной Env. JAVA_HOME и HADOOP_HOME вполне достаточно, больше ничего не нужно.

+0

привет Иван Веселовский, спасибо за ответ. Я редактировал вопрос. Я думал, что это может быть из-за моей машины, но я попробовал ее в других трех машинах, она тоже не работает ... –

+0

Jar file hasoop-mapreduce-client-core-2.2.0.jar, есть в пути /share/hadoop/mapreduce/... –

+0

Raju, может помочь разобраться: cd gridgain-hadoop-os-6.6.2/bin/ редактировать следующие файлы и добавлять «-x» после «/ bin/bash ": ./ggstart.sh:1:#!/bin/bash -x ./include/setenv.sh:1:#!/bin/bash -x ./include/hadoop-classpath.sh : 1: #!/Bin/bash -x после этого запустите узел GG и просмотрите журнал: должно быть ясно, как скрипт составляет путь к классам GG, и если добавлен клиент-core-XXX.jar. –

0

много thnaks для Ivan, спасибо за вашу помощь и поддержку, решение, которое вы дали, было хорошим, чтобы избавить меня от проблемы.

Проблема заключалась не в том, чтобы устанавливать другие переменные среды, связанные с судами. этого достаточно установить.

JAVA_HOME , HADOOP_HOME and GRIDGAIN_HOME