批次樣品火花的問題我想在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
非常感謝你對我的錯誤感到抱歉。實際上,我運行_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啓動時,作業失敗,因爲堆棧跟蹤報告在我的初始帖子 –
我會看看我是否可以在我的機器上運行Cloudera QuickStart虛擬機,我會讓你知道我發現了什麼。 –
我會很感激,非常感謝您的幫助! –