2017-02-11 25 views
0

批次樣品火花的問題我想在Cloudera的Hadoop的5.8(快速啓動)運行春Hadoop的:與CDH 5.8

https://github.com/trisberg/springone-2015/tree/master/batch-spark

。我跟着爲了本指南嘗試建立一切:

http://docs.spring.io/spring-hadoop/docs/current/reference/html/springandhadoop-spark.html

我固定所有相關版本:

  • 火花組件上傳到HDFS是火花assembly_2.10-1.6 .0-cdh5.8.0.jar;
  • 移動的屬性彈簧數據hadoop.version在pom.xml中爲版本2.4.0.RELEASE-CDH5;
  • 移動在pom.xml中的財產spark.version至1.6。

我能夠構建項目,在CDH 5.8 quickstart的虛擬機上上載構建的工件,但在嘗試運行時,批處理失敗。

當檢查對Cloudera的經理,我看到下面的錯誤日誌:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2570) at java.lang.Class.getMethod0(Class.java:2813) at java.lang.Class.getMethod(Class.java:1663) at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486) Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.conf.Configuration 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 java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 6 more

我試圖通過以下命令

  • 須藤-u HDFS火花提交提交星火工作 - class Hashtags - master yarn --deploy-mode cluster app/spark-hashtags_2.10-0.1.0.jar hdfs://quickstart.cloudera:8020/demo/hashtags/input/tweets.dat hdfs:// quickstart。 Cloudera的:8020 /演示/#標籤/輸出*

(模擬HDFS腳本手工編寫輸入和輸出文件夾)

,一切都完美。

我能夠檢查資源管理器的日誌,以便找到由Spring Batch的的微進程所產生的發射命令和火花提交命令有什麼區別,我發現:

  • 火花提交看跌期權以下:

org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher: Command to launch container container_1486926591393_0015_02_000001 : LD_LIBRARY_PATH="/usr/lib/hadoop/lib/native:$LD_LIBRARY_PATH",{{JAVA_HOME}}/bin/java,-server,-Xmx1024m,-Djava.io.tmpdir={{PWD}}/tmp,-Dspark.yarn.app.container.log.dir=,-XX:MaxPermSize=256m,org.apache.spark.deploy.yarn.ApplicationMaster,--class,'Hashtags',--jar,file:/home/cloudera/spring-batch-spark/app/spark-hashtags_2.10-0.1.0.jar,--arg,'/tmp/hashtags/input/tweets.dat',--arg,'/tmp/hashtags/output',--executor-memory,1024m,--executor-cores,1,--properties-file,{{PWD}}/spark_conf/spark_conf.properties,1>,/stdout,2>,/stderr

  • Spring Batch的的微進程生成以下內容:

org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher: Command to launch container container_1486833100526_0006_01_000001 : {{JAVA_HOME}}/bin/java,-server,-Xmx1024m,-Djava.io.tmpdir={{PWD}}/tmp,-Dspark.yarn.app.container.log.dir=,-XX:MaxPermSize=256m,org.apache.spark.deploy.yarn.ApplicationMaster,--class,'Hashtags',--jar,file:/home/cloudera/spring-batch-spark/app/spark-hashtags_2.10-0.1.0.jar,--arg,'hdfs://quickstart.cloudera:8020/demo/hashtags/input/tweets.dat',--arg,'hdfs://quickstart.cloudera:8020/demo/hashtags/output',--executor-memory,1024m,--executor-cores,1,--properties-file,{{PWD}}/spark_conf/spark_conf.properties,1>,/stdout,2>,/stderr

正如你可以看到火花提交補充LD_LIBRARY_PATH而Spring批次的微進程不並且因爲它看來,這是我想這個問題是存在的唯一不同的事情。

由於我的題目的知識貧乏,我無法理解什麼是罩下回事。 您有沒有遇到過這個問題?

感謝大家。 Guido

回答

0

感謝您的詳細比較。我不認爲LD_LIBRARY_PATH會導致這個特定的錯誤,我想知道--arg值的差異是否有任何影響。對於spark-submit示例,您使用/tmphdfs://quickstart.cloudera:8020/demo/作爲spring-hadoop的示例。你可以用hdfs://quickstart.cloudera:8020/demo/前綴嘗試火花提交嗎?

更新:它看起來像Cloudera提供的程序集jar'spark-assembly-1.6.0-cdh5.8.0-hadoop2.6.0-cdh5.8.0.jar'缺少Hadoop配置類,不能與「spring-data-hadoop-spark」特性。您必須在下載中使用由Spark項目提供的完整裝配jar。我使用'spark-assembly-1.6.2-hadoop2.6.0.jar'進行了測試,並且它在Cloudera QuickStart VM 5.8上運行良好。

+0

非常感謝你對我的錯誤感到抱歉。實際上,我運行_spark-submit_命令,就像你所建議的一樣('sudo -u hdfs spark-submit --class Hashtags - master yarn --deploy-mode cluster app/spark-hashtags_2.10-0.1.0.jar hdfs:/ /quickstart.cloudera:8020/demo/hashtags/input/tweets.dat hdfs://quickstart.cloudera:8020/demo/hashtags/output'),它起作用:從Spring Batch的tasklet啓動時,作業失敗,因爲堆棧跟蹤報告在我的初始帖子 –

+0

我會看看我是否可以在我的機器上運行Cloudera QuickStart虛擬機,我會讓你知道我發現了什麼。 –

+0

我會很感激,非常感謝您的幫助! –

相關問題