【问题标题】:Why spark needs hadoop libraries in local or standalone mode?为什么 spark 需要本地或独立模式下的 hadoop 库?
【发布时间】:2018-12-28 05:06:28
【问题描述】:

我下载了 spark-2.4.0-bin-without-hadoop.tgz 包并安装在我的系统中。我想在本地模式下运行简单的 apache spark 代码,但它给了我 NoClassDefFoundError

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.conf.Configuration

谷歌搜索后,我发现 SPARK_DIST_CLASSPATH 需要设置为 hadoop 类路径。我按照说明进行操作,效果很好。

我想知道为什么需要 hadoop 库才能在独立或本地模式下运行 spark。

【问题讨论】:

    标签: java apache-spark hadoop


    【解决方案1】:

    Spark 使用 Hadoop 配置类和文件系统 API 主要是为了更容易与 Hadoop 生态系统中的其他系统集成,并且不需要将所有这些类本地复制到 Spark 代码库中。换句话说,Spark 是一个数据处理框架,而不是 Filesytem 接口或配置管理库。

    当您下载 without-hadoop 版本的 Spark 时,这实际上意味着您已经安装了 Hadoop,并且可以在 PATH 和类路径上使用(通过 hadoop classpath)。此外,Spark 下载页面显示“用户提供”Hadoop 以明确这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-11
      • 2017-12-28
      • 1970-01-01
      • 1970-01-01
      • 2022-11-28
      • 2023-03-26
      • 1970-01-01
      相关资源
      最近更新 更多