eclipse 本地local运行Spark程序报错

x_brian 2024-06-23 20:28:39

 

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.rdd.RDD

object HelloWorld {
  def main(args: Array[String]): Unit = {
    
    val conf = new SparkConf().setMaster("local").setAppName("word count")
    val sc = new SparkContext(conf)
  }

报错:

ERROR MetricsConfig:91 - Error loading configuration file metrics.properties
java.lang.NullPointerException
    at org.apache.spark.metrics.MetricsConfig.loadPropertiesFromFile(MetricsConfig.scala:133)
    at org.apache.spark.metrics.MetricsConfig.initialize(MetricsConfig.scala:55)
    at org.apache.spark.metrics.MetricsSystem.<init>(MetricsSystem.scala:95)
    at org.apache.spark.metrics.MetricsSystem$.createMetricsSystem(MetricsSystem.scala:233)
    at org.apache.spark.SparkEnv$.create(SparkEnv.scala:357)
    at org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:175)
    at org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:257)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:424)
    at HelloWorld$.main(HelloWorld.scala:9)
    at HelloWorld.main(HelloWorld.scala)
 INFO  SparkEnv:54 - Registering OutputCommitCoordinator
 INFO  log:192 - Logging initialized @1049ms
 ERROR SparkContext:91 - Error initializing SparkContext.
java.lang.NullPointerException
    at org.apache.spark.ui.JettyUtils$.createStaticHandler(JettyUtils.scala:193)
    at org.apache.spark.ui.WebUI.addStaticHandler(WebUI.scala:121)
    at org.apache.spark.ui.SparkUI.initialize(SparkUI.scala:68)
    at org.apache.spark.ui.SparkUI.<init>(SparkUI.scala:80)
    at org.apache.spark.ui.SparkUI$.create(SparkUI.scala:175)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:444)
    at HelloWorld$.main(HelloWorld.scala:9)
 

...全文
285 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

这个错误通常与Spark找不到metrics.properties文件有关,该文件是用于配置Spark度量系统的。

在一个典型的Spark安装中,metrics.properties文件应该位于conf目录中。如果你在本地运行Spark应用程序并没有明确配置这个文件,Spark可能会因为找不到这个文件而抛出NullPointerException。

解决方法
确保存在metrics.properties文件:

确认你的Spark安装目录下的conf目录中存在metrics.properties文件。如果没有,可以从metrics.properties.template文件复制一份并重命名为metrics.properties。
正确配置Spark环境:

确保你的Spark环境变量和路径正确配置。你可以通过设置SPARK_CONF_DIR环境变量来指定Spark配置目录的路径。
禁用Metrics系统:

如果你不需要使用Spark的Metrics系统,可以禁用它。将以下配置添加到你的Spark应用程序的配置中:


val conf = new SparkConf()
  .setMaster("local")
  .setAppName("word count")
  .set("spark.metrics.conf", "")
val sc = new SparkContext(conf)

这是一个禁用Metrics系统的临时解决方案。如果你确实需要使用Metrics系统,那么还是需要确保metrics.properties文件正确配置。

手动指定metrics.properties文件:
你可以在代码中手动指定metrics.properties文件的位置。确保文件路径正确并且文件可读:

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext

object HelloWorld {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf()
      .setMaster("local")
      .setAppName("word count")
      .set("spark.metrics.conf", "path/to/metrics.properties")
    val sc = new SparkContext(conf)
    
    // 其他代码...
    
    sc.stop()
  }
}

示例项目结构
假设你的项目结构如下:

project-root/
|-- conf/
|   |-- metrics.properties
|-- src/
|   |-- main/
|       |-- scala/
|           |-- HelloWorld.scala
|-- build.sbt


在这种情况下,你可以将metrics.properties文件放在conf目录中,并在代码中引用它。

总结
确保metrics.properties文件存在并配置正确。
如果不需要Metrics系统,可以暂时禁用它。
手动指定metrics.properties文件的位置,确保路径正确。
通过这些方法,你应该能够解决由于找不到metrics.properties文件而导致的NullPointerException问题。

weixin_41554134 2024-06-25
  • 打赏
  • 举报
回复

这种编程报错问题就没有是AI解决不了的,找个模型分分钟

qq_23155697 2024-06-25
  • 打赏
  • 举报
回复

检查Spark版本:确保你使用的Spark版本与你的Scala版本兼容。不兼容的版本可能会导致此类问题。

清理环境:如果你之前运行过Spark任务,并且可能留下了某些状态或文件,尝试清理这些状态或文件,然后重新运行你的程序。

检查依赖和类路径:确保你的项目中包含了所有必要的Spark和Scala库,并且没有版本冲突。

使用本地模式:由于你已经在SparkConf中设置了local模式,这通常意味着你正在本地运行Spark。确保没有其他Spark实例正在运行,这可能会干扰你的程序。

查看Spark日志:更详细的日志可能会提供更多关于错误的线索。你可以尝试增加日志级别来获取更多信息。

更新或修复Spark:如果你怀疑这是Spark的一个bug,尝试更新到最新的稳定版本,或者查找并应用任何相关的修复。

搜索错误消息:在网上搜索错误消息可能会找到其他用户遇到相同问题的案例,并找到解决方案。

1,269

社区成员

发帖
与我相关
我的任务
社区描述
Spark由Scala写成,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于MapReduce算法实现的分布式计算。
社区管理员
  • Spark
  • shiter
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧