loading

spark 运行wc-demo报错归总(saveAsTextFile方法)

 

  1. 核心报错日志
org.apache.hadoop.io.nativeio.NativeIO$Windows.createFileWithMode0(Ljava/lang/String;JJJI)Ljava/io/FileDescriptor
  1. 错误原因
在linux上运行成功的demo,代码放到win上就运行失败,则可以确定是系统的不兼容问题
根据查找的各种资料可以总结出是由于 win系统缺少了hadoop持久化数据的时候的hadoop.dll和winutil.exe文件
  1. 解决步骤
    1. 这是一个官方的bug,因此为了统一解决此问题,官方提供了GitHub链接https://github.com/steveloughran/winutils 下载即可,50多m的大小

    2. 配置hadoop环境变量,也就是实现在cmd中能正确的有hadoop -version。默认使用spark运行wc-demo了学习阶段下,基本都知道如何配置HADOOP_HOME.不再多说

    3. 找到下载文件中的和本机Hadoop大版本符合的文件下的bin,复制覆盖掉本地的hadoop中的bin,有的是让只复制hadoop.dll和winutil.exe。但是既然官方都直接给了bin,那就直接覆盖掉

    4. 打开bin,复制hadoop.dll和winutil.exe,粘贴到C:\Windows\System32文件夹下。

    5. 我是在idea中运行的wc-demo,因此rebuild了一下,再run。rdd.saveAsTextFile("targetPath") 运行成功。

  1. 结语

    本人实力一般,时间也有限,因此没有去深究很多为什么这样做的原因。只有一个大概的思路,知道要这么做是为了什么。

posted @ 2020-09-17 21:02  EaApple  阅读(364)  评论(0)    收藏  举报