在 idea 上运行 scala 程序报错ERROR Shell Failed to locate the winutils binary in the hadoop binary path

在IDEA上运行Scala程序遇到'ERROR Shell Failed to locate the winutils binary in the hadoop binary path'错误。解决方法包括下载winutils.exe,创建非中文路径的hadoop/bin文件夹,放置winutils.exe并配置环境变量,最后重启IDEA以成功运行程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 idea 上运行 scala 程序报错 ERROR 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.

本文解决的 error 信息如下:

200922 181933 INFO SparkContext Running Spark version 3.0.0
200922 181933 ERROR Shell Failed to locate the winutils binary in the hadoop binary path
java.io.IOException Could not locate executable nullbinwinutils.exe in the Hadoop binaries.

这是笔者写的 一个 Scala 程序:(本地模式)

package com.xiaoxiao.partition

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
 * @author xiaohu
 * @create 2020-09-22 18:15
 */
object partition01_default {
  def main(args: Array[String]): Unit = {
      
    //1.创建SparkConf并设置App名称
    val conf: SparkConf = new 			 SparkConf().setAppName("SparkCoreTest").setMaster("local[*]")

    //2.创建SparkContext,该对象是提交Spark App的入口
    val sc: SparkContext = new SparkContext(conf)

    val rdd: RDD[Int] = sc.makeRDD(Array(1,2,3,4))

    //3.输出数据
    rdd.saveAsTextFile("D:\\MyselfPractice\\SparkCoreTest\\output")

    //4.关闭连接
    sc.stop()
  }
}

运行程序之后:

会产生一个空的文件夹:output,程序报错信息如下:

200922 181933 INFO SparkContext Running Spark version 3.0.0
200922 181933 ERROR 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.

报错信息提示:找不到 winutils.exe 程序,这是本地运行 Spark 需要的一个程序,但是

本地没有

去官网下载对应 Hadoop版本的 程序:(此处以hadoop-3.1.2为例)https://github.com/cdarlint/winutils/tree/master/hadoop-3.1.2/bin

下载 winutils.exe 程序,然后按照如下操作:

①在磁盘上新建一个非中文路径的问价夹:hadoop/bin;

②将下载的 winutils.exe 放到 hadoop/bin 文件夹下;

③配置环境变量:

在这里插入图片描述

在path路径下面新建:

在这里插入图片描述

④重启 idea,删除掉 output 空文件夹;

⑤再次运行程序,即可获得正确结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值