【问题标题】:Using spark ML models outside of spark [hdfs DistributedFileSystem could not be instantiated]在 spark 之外使用 spark ML 模型 [hdfs DistributedFileSystem 无法实例化]
【发布时间】:2017-08-22 05:15:15
【问题描述】:

我一直在尝试关注博客文章:

https://www.phdata.io/exploring-spark-mllib-part-4-exporting-the-model-for-use-outside-of-spark/

使用内置 Hadoop 2.7 的 spark 2.1 在本地运行我可以保存模型:

trainedModel.save("mymodel.model"))

但是,如果我尝试从常规 scala (sbt) shell 加载模型,hdfs 将无法加载。

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.ml.{PipelineModel, Predictor}

val sc = new SparkContext(new SparkConf().setMaster("local[1]").setAppName("myApp"))

val model = PipelineModel.load("mymodel.model")

我知道这是错误:

java.util.ServiceConfigurationError: org.apache.hadoop.fs.FileSystem: Provider org.apache.hadoop.hdfs.DistributedFileSystem could not be instantiated

实际上是否可以在不调用 spark-submit 或 spark-shell 的情况下使用 spark 模型?我链接到的文章是我见过的唯一一篇提到此类功能的文章。

我的 build.sbt 正在使用以下依赖项:

"org.apache.spark" %% "spark-core" % "2.1.0",
"org.apache.spark" % "spark-sql_2.11" % "2.1.0",
"org.apache.spark" % "spark-hive_2.11" % "2.1.0",
"org.apache.spark" % "spark-mllib_2.11" % "2.1.0",
"org.apache.hadoop" % "hadoop-hdfs" % "2.7.0"

在这两种情况下,我都使用 Scala 2.11.8。

编辑:好的,看起来这是问题的根源

"org.apache.hadoop" % "hadoop-hdfs" % "2.7.0"

我删除了那行,问题就消失了

【问题讨论】:

    标签: scala apache-spark hdfs apache-spark-ml


    【解决方案1】:

    尝试:

    trainedModel.write.overwrite().save("mymodel.model"))
    

    此外,如果您的模型保存在本地,您可以在配置中删除 hdfs。这应该可以防止 spark 尝试实例化 hdfs。

    【讨论】:

    • 如果您的模型保存在本地,您可以在配置中删除 hdfs。
    • 来自 [The API docs] (spark.apache.org/docs/2.1.0/api/scala/…) def save(path: String): Unit "将这个 ML 实例保存到输入路径,是 write.save(path) 的快捷方式,所以看起来不应该做出任何改变。此外,问题似乎出在 PipelineModel.load 上,它想要在读取给出的路径之前实例化 HDFS。
    • 没关系,它现在似乎可以工作了。一旦我从配置中删除了 hdfs,它就会停止尝试加载 hdfs。谢谢!不确定从 save 更改为 write.save 是否有所作为。如果您添加有关删除 hdfs 的评论,我可以接受您的回答。
    猜你喜欢
    • 2016-10-17
    • 2016-12-24
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 2018-07-17
    • 2015-01-20
    • 2019-03-13
    相关资源
    最近更新 更多