作为客户

时间:2017-01-03 16:25:19

标签: apache-spark yarn

我正在尝试使用纱线运行火花作业:

./bin/spark-submit --class "KafkaToMaprfs" --master yarn --deploy-mode client /home/mapr/kafkaToMaprfs/target/scala-2.10/KafkaToMaprfs.jar

但面对这个错误:

  

/opt/mapr/hadoop/hadoop-2.7.0 17/01/03 11:19:26 WARN NativeCodeLoader:   无法为您的平台加载native-hadoop库...使用   适用的内置java类17/01/03 11:19:38错误   SparkContext:初始化SparkContext时出错。   org.apache.spark.SparkException:Yarn应用程序已经结束!   它可能已被杀死或无法启动应用程序主机。           在org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.waitForApplication(YarnClientSchedulerBackend.scala:124)           在org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.start(YarnClientSchedulerBackend.scala:64)           在org.apache.spark.scheduler.TaskSchedulerImpl.start(TaskSchedulerImpl.scala:144)           在org.apache.spark.SparkContext。(SparkContext.scala:530)           在KafkaToMaprfs $ .main(KafkaToMaprfs.scala:61)           在KafkaToMaprfs.main(KafkaToMaprfs.scala)           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)           在org.apache.spark.deploy.SparkSubmit $ .org $ apache $ spark $ deploy $ SparkSubmit $$ runMain(SparkSubmit.scala:752)           在org.apache.spark.deploy.SparkSubmit $ .doRunMain $ 1(SparkSubmit.scala:181)           在org.apache.spark.deploy.SparkSubmit $ .submit(SparkSubmit.scala:206)           在org.apache.spark.deploy.SparkSubmit $ .main(SparkSubmit.scala:121)           在org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)17/01/03 11:19:39 WARN MetricsSystem:停止一个MetricsSystem   没有在线程“main”中运行异常   org.apache.spark.SparkException:Yarn应用程序已经结束!   它可能已被杀死或无法启动应用程序主机。           在org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.waitForApplication(YarnClientSchedulerBackend.scala:124)           在org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.start(YarnClientSchedulerBackend.scala:64)           在org.apache.spark.scheduler.TaskSchedulerImpl.start(TaskSchedulerImpl.scala:144)           在org.apache.spark.SparkContext。(SparkContext.scala:530)           在KafkaToMaprfs $ .main(KafkaToMaprfs.scala:61)           在KafkaToMaprfs.main(KafkaToMaprfs.scala)           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)           在org.apache.spark.deploy.SparkSubmit $ .org $ apache $ spark $ deploy $ SparkSubmit $$ runMain(SparkSubmit.scala:752)           在org.apache.spark.deploy.SparkSubmit $ .doRunMain $ 1(SparkSubmit.scala:181)           在org.apache.spark.deploy.SparkSubmit $ .submit(SparkSubmit.scala:206)           在org.apache.spark.deploy.SparkSubmit $ .main(SparkSubmit.scala:121)           在org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

我有一个多节点集群,我正在从远程节点部署应用程序。 我正在使用spark 1.6.1和hadoop 2.7.x版本。

我没有设置群集,所以我找不到错误所在。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

在我的情况下,我正在使用MapR发行版。我没有配置环境。 所以,当我挖到所有conf文件夹时。我在下面的文件中进行了一些更改,

<强> 1。在Spark-env.sh中,确保这些值设置正确。

export SPARK_LOG_DIR=
export SPARK_PID_DIR=
export HADOOP_HOME=
export HADOOP_CONF_DIR=
export JAVA_HOME=
export SPARK_SUBMIT_OPTIONS=

<强> 2。 yarn-env.sh

确保yarn_conf_dir和java_home设置正确的值。

第3。在spark-defaults.conf

 1.spark.driver.extraClassPath
 2.set value for HADOOP_CONF_DIR

<强> 4。 $ SPARK_HOME / conf / spark-env.sh中的HADOOP_CONF_DIR和JAVA_HOME

1.export HADOOP_CONF_DIR=/opt/mapr/hadoop/hadoop-2.7.0/etc/hadoop
2.export JAVA_HOME =

5.spark assembly jar

  

1.将以下JAR文件从本地文件系统复制到MapR-FS上的世界可读位置:替换您的Spark版本和   命令中的特定JAR文件名。   /opt/mapr/spark/spark-/lib/spark-assembly--hadoop-mapr-.jar

现在我可以使用spark-submit顺利运行我的spark应用程序作为YARN-CLIENT。 这些是使火花与纱线连接的基本要素。 如果我错过任何其他事情,请纠正我。

相关问题