【问题标题】:spark LOCAL and alluxio clientspark LOCAL 和 alluxio 客户端
【发布时间】:2018-04-12 21:07:16
【问题描述】:

我在本地模式下运行 spark 并试图让它与 alluxio 对话。我收到错误: java.lang.ClassNotFoundException:找不到类 alluxio.hadoop.FileSystem

我查看了这里的页面: https://www.alluxio.org/docs/master/en/Debugging-Guide.html#q-why-do-i-see-exceptions-like-javalangruntimeexception-javalangclassnotfoundexception-class-alluxiohadoopfilesystem-not-found

详细说明了在这种情况下要采取的步骤,但我没有找到成功。

根据 Spark 文档,我可以像这样实例化本地 Spark:

SparkSession.builder
  .appName("App")
  .getOrCreate

然后我可以像这样添加alluxio客户端库:

sparkSession.conf.set("spark.driver.extraClassPath", ALLUXIO_SPARK_CLIENT)
sparkSession.conf.set("spark.executor.extraClassPath", ALLUXIO_SPARK_CLIENT)

我已经验证了正确的 jar 文件存在于我的本地机器上的正确位置:

logger.error(sparkSession.conf.get("spark.driver.extraClassPath"))
logger.error(sparkSession.conf.get("spark.executor.extraClassPath"))

但我仍然收到错误消息。我还能做些什么来弄清楚为什么 Spark 没有拿起图书馆?

请注意我没有使用 spark-submit - 我知道将客户端 jar 添加到 spark-submit 作业的方法。我的 Spark 实例在我的应用程序中创建为本地实例,这是我要解决的用例。

作为一个仅供参考,集群中有另一个应用程序正在使用 fs 客户端连接到我的 alluxio,并且一切正常。但是,在这种情况下,fs 客户端通过标准 sbt 依赖项被打包为应用程序的一部分。

谢谢

【问题讨论】:

    标签: apache-spark classpath local alluxio


    【解决方案1】:

    希望这对其他人有所帮助:

    我的问题不是库没有加载或不在类路径上,而是我使用的是客户端的“fs”版本而不是“hdfs”版本。

    我一直在使用通用 1.4 客户端 - 在某些时候,该客户端被拆分为 fs 版本和 hdfs 版本。当我最近更新 1.7 时,我错误地添加了“fs”版本。

    【讨论】:

      猜你喜欢
      • 2019-03-09
      • 1970-01-01
      • 2020-02-14
      • 2016-07-23
      • 2020-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-07
      相关资源
      最近更新 更多