【发布时间】:2018-06-21 16:56:05
【问题描述】:
我目前正在运行一个使用 Spark 的 Java 应用程序。
一切正常,除了在 SparkContext 的初始化。 此时,Spark 尝试在我的系统上发现 Hadoop,并抛出错误,因为我没有并且我不想安装 Hadoop:
2018-06-20 10:00:27.496 ERROR 4432 --- [ main] org.apache.hadoop.util.Shell : Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
这是我的 SparkConfig:
SparkConf cfg = new SparkConf();
cfg.setAppName("ScalaPython")
.setMaster("local")
.set("spark.executor.instances", "2");
return cfg;
我的 Spark 依赖项:
<!-- Spark dependencies -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.3.0</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.datasyslab</groupId>
<artifactId>geospark_2.3</artifactId>
<version>1.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.datasyslab</groupId>
<artifactId>geospark-sql_2.3</artifactId>
<version>1.1.0</version>
</dependency>
那么有没有办法以编程方式禁用 Hadoop 发现(即:给 SparkConfig 一个特定的属性),因为这个错误不会阻止 Spark 上下文的创建(我仍然可以使用 Spark 功能)?
注意这是为了测试目的。
感谢您的回答!
【问题讨论】:
-
我想禁用 Hadoop 发现,而不是想办法欺骗 Spark。
标签: java apache-spark hadoop