Apache spark Spark UI显示0个核心,即使在应用程序中设置核心

Apache spark Spark UI显示0个核心,即使在应用程序中设置核心,apache-spark,pyspark,apache-spark-sql,spark-streaming,spark-dataframe,Apache Spark,Pyspark,Apache Spark Sql,Spark Streaming,Spark Dataframe,在spark master url之外运行应用程序时,我遇到了一个奇怪的问题,在该url下,用户界面会报告“等待”的“状态”,因为无论我如何配置核心计数,0个核心都会显示在运行中的应用程序表下 我为我的应用程序配置了以下设置,其中spark.max.cores=2&spark.default.cores=2&内存设置为3GB。这台机器是一台企业级服务器,拥有超过24个核心 SparkConf conf = new SparkConf() .setAppNa

在spark master url之外运行应用程序时,我遇到了一个奇怪的问题,在该url下,用户界面会报告“等待”的“状态”,因为无论我如何配置核心计数,0个核心都会显示在运行中的应用程序表下

我为我的应用程序配置了以下设置,其中spark.max.cores=2&spark.default.cores=2&内存设置为3GB。这台机器是一台企业级服务器,拥有超过24个核心

        SparkConf conf = new SparkConf()
            .setAppName(Properties.getString("SparkAppName"))
            .setMaster(Properties.getString("SparkMasterUrl"))
            .set("spark.executor.memory", Properties.getString("SparkExecMem"))
            .set("spark.cores.max",Properties.getString("SparkCores"))
            .set("spark.driver.memory",Properties.getString("SparkDriverMem"))
            .set("spark.eventLog.enabled", "true")
            .set("spark.deploy.defaultCores",Properties.getString("SparkDefaultCores"));

    //Set Spark context
    JavaSparkContext sc = new JavaSparkContext(conf);
    JavaStreamingContext jssc = new JavaStreamingContext(sc, new Duration(5000));

Spark WebUI声明使用了零内核,并且不确定等待无任务运行。应用程序在运行时或内核期间也不使用任何内存,启动时立即进入等待状态

Spark-defaults.conf 
spark.yarn.max_executor.failures         3
spark.yarn.applicationMaster.waitTries   10
spark.history.kerberos.keytab    none
spark.yarn.preserve.staging.files        False
spark.yarn.submit.file.replication       3
spark.history.kerberos.principal         none
spark.yarn.historyServer.address         {removed}.{removed}.com:18080
spark.yarn.scheduler.heartbeat.interval-ms       5000
spark.yarn.queue         default
spark.yarn.containerLauncherMaxThreads   25
spark.yarn.driver.memoryOverhead         384
spark.history.ui.port    18080
spark.yarn.services      org.apache.spark.deploy.yarn.history.YarnHistoryService
spark.yarn.max.executor.failures         3
spark.driver.extraJavaOptions     -Dhdp.version=2.2.6.0-2800
spark.history.provider   org.apache.spark.deploy.yarn.history.YarnHistoryProvider
spark.yarn.am.extraJavaOptions    -Dhdp.version=2.2.6.0-2800
spark.yarn.executor.memoryOverhead       384
提交脚本

spark submit--class{removed}.{removed}.{removed}.emotional.MainApp--deploy mode client/path/to/jar

编辑日期:2016年2月3日 使用--master纱线簇运行后,我在纱线日志错误中收到此消息。我还包括了更新的提交配置

spark-submit --class com.removed.removed.sentiment.MainApp 
--master yarn-cluster --supervise 
/data04/dev/removed/spark/twitternpi/npi.sentiment-1.0-SNAPSHOT-shaded.jar 
--jars /usr/hdp/2.2.6.0-2800/spark/lib/datanucleus-core-3.2.10.jar,/usr/hdp/2.2.6.0-2800/spark/lib/datanucleus-api-jdo-3.2.6.jar,/usr/hdp/2.2.6.0-2800/spark/lib/datanucleus-rdbms-3.2.9.jar,/usr/hdp/2.2.6.0-2800/spark/lib/spark-1.2.1.2.2.6.0-2800-yarn-shuffle.jar,/usr/hdp/2.2.6.0-2800/spark/lib/spark-assembly-1.2.1.2.2.6.0-2800-hadoop2.6.0.2.2.6.0-2800.jar
提交配置

spark-submit --class com.removed.removed.sentiment.MainApp 
--master yarn-cluster --supervise 
/data04/dev/removed/spark/twitternpi/npi.sentiment-1.0-SNAPSHOT-shaded.jar 
--jars /usr/hdp/2.2.6.0-2800/spark/lib/datanucleus-core-3.2.10.jar,/usr/hdp/2.2.6.0-2800/spark/lib/datanucleus-api-jdo-3.2.6.jar,/usr/hdp/2.2.6.0-2800/spark/lib/datanucleus-rdbms-3.2.9.jar,/usr/hdp/2.2.6.0-2800/spark/lib/spark-1.2.1.2.2.6.0-2800-yarn-shuffle.jar,/usr/hdp/2.2.6.0-2800/spark/lib/spark-assembly-1.2.1.2.2.6.0-2800-hadoop2.6.0.2.2.6.0-2800.jar
错误消息

   ClassLoaderResolver for class "" gave error on creation : {1}
org.datanucleus.exceptions.NucleusUserException: ClassLoaderResolver for class "" gave error on creation : {1}
    at org.datanucleus.NucleusContext.getClassLoaderResolver(NucleusContext.java:1087)
    at org.datanucleus.PersistenceConfiguration.validatePropertyValue(PersistenceConfiguration.java:797)
    at org.datanucleus.PersistenceConfiguration.setProperty(PersistenceConfiguration.java:714)
    at org.datanucleus.PersistenceConfiguration.setPersistenceProperties(PersistenceConfiguration.java:693)
    at org.datanucleus.NucleusContext.<init>(NucleusContext.java:273)
    at org.datanucleus.NucleusContext.<init>(NucleusContext.java:247)
    at org.datanucleus.NucleusContext.<init>(NucleusContext.java:225)
类“”的ClassLoaderResolver在创建时出错:{1} org.datanucleus.exceptions.NucleusUserException:类“”的ClassLoaderResolver在创建时出错:{1} 位于org.datanucleus.NucleusContext.getClassLoaderResolver(NucleusContext.java:1087) 位于org.datanucleus.PersistenceConfiguration.validatePropertyValue(PersistenceConfiguration.java:797) 位于org.datanucleus.PersistenceConfiguration.setProperty(PersistenceConfiguration.java:714) 位于org.datanucleus.PersistenceConfiguration.setPersistenceProperties(PersistenceConfiguration.java:693) 位于org.datanucleus.NucleusContext(NucleusContext.java:273) 位于org.datanucleus.NucleusContext(NucleusContext.java:247) 位于org.datanucleus.NucleusContext(NucleusContext.java:225)
如果您使用的是纱线,则需要告诉应用程序使用纱线。将主纱线簇添加到spark submit命令

spark-submit --class your_class --master yarn-cluster /path/to/jar
编辑:

spark.cores.max适用于Mesos或单机版。尝试设置此选项:

.set(“spark.executor.cores”、“2”)

并在运行时将其添加到submit

--num executors=2


不过我很好奇,因为它应该默认为每个执行器一个核心。工作节点是否已向Spark的纱线注册?在纱线客户端或纱线群集模式下,您是否在此群集上成功使用了Spark?

当执行器所需的内存大小(由
Spark.executor.memory
Spark defaults.conf
中设置)大于AWS节点上的内存大小时,我遇到了此问题。但是,由于您只将3.0 GB设置为内存,我认为您的情况可能还有其他原因。

请在warn-site.xml中检查为纱线配置中的容器分配的最大芯数。有时跨企业纱线队列设置也会在项目中均匀分配资源

将其作为纱线客户端运行,但仍然存在相同的问题。执行者是否正在运行?他们显然不是。检查日志以了解原因。如果我在AWS EC2上作为独立群集运行,我需要做哪些更改-在我的提交API中-我添加了num executors=2。还是有同样的错误@JoeWidenI在通过Spark Rest API提交PySpark应用程序时遇到了类似的错误——AWS EC2上的独立集群。有什么线索可以解决吗?这里也一样,但是内存和分配的内核之间有什么关系呢?