我在本地模式下运行 spark 并试图让它与 alluxio 对话。我收到错误:java.lang.ClassNotFoundException: Class alluxio.hadoop.FileSystem 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 依赖项被打包为应用程序的一部分。
谢谢