【吐血经验】在 windows 上安装 spark 遇到的一些坑 | 避坑指南
在 windows 上安装 spark 遇到的一些坑 | 避坑指南
最近有个活:给了我一个阿里云桌面(windows 10
系统),让我在上面用 scala + spark
写一些东西。
总是报错不断,基本的逻辑都运行不了。经历了很久的 debug
,我总结出来:凡是 IDEA 没有在我的脚本里明确指出哪行有问题的错误,都是因为版本不兼容。别犹豫,赶快检查版本。
检查涉及到:
- 基本的
java
环境: 1.8.0_201 - 语言
scala
版本: 2.12.13 hadoop
版本: 2.6.4spark
版本: 2.4.8
第一关:scala小版本不兼容
尽管我们在 spark 官网看到:Spark 2.4.8 配置 Scala 2.12.x 版本就行,但是呵呵,运行时报错如下。
... java.lang.NoSuchMethodError: scala.Predef$.refArrayOps ...
我本身刚开始用 scala
,还以为是自己写的程序哪里出了问题。好家伙这顿找哇,最后感谢『运行spark出现java.lang.NoSuchMethodError: scala.Predef$.refArrayOps』,让我意识到了或许更换 scala
版本可以一试。
上面那篇文章建议在 mvnrepository.com/artifact/org.apache.spark/spark-core 上面看版本兼容,我觉得不靠谱。我这里推荐两个方法,都是我自己摸索的:
方法一: 打开我们的命令行(cmd
或者powershell
都行),输入 spark-shell
,看我们本地安装的 spark
用了啥版本的 scala
。如下图。
方法二: 去 spark 安装路径下面看看里面那 scala 依赖都啥版本。如下图。
于是把 scala 2.12.13
卸载了,去 scala
官网下载了 scala 2.11.12
版本的。
第二关:Hadoop 版本
好家伙,之前的错误不报了,现在是新错误。
错误一:
... java.lang.Exception: java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows. ...错误二:
... 【MapReduce】报错:java.lang.UnsatisfiedLinkError : org.apache.hadoop.io.nativeio ...
参考了两篇文章,没啥直接帮助,但是我意识到了可能是 Hadoop 版本不对:
- java.lang.Exception: java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.
- 【MapReduce】报错:java.lang.UnsatisfiedLinkError : org.apache.hadoop.io.nativeio
毕竟咱的 spark 安装包就叫 spark-2.4.8-bin-hadoop2.7
,怎么说都得安装个 2.7
的 hadoop
。
换了 hadoop 2.7.3 。没啥问题了。
第三关:hadoop.dll
本以为大功告成了。直到我使用了一个方法:
result.coalesce(1).write.mode(SaveMode.Overwrite).csv(outputPath)
我想通过 spark
把数据写到硬盘上,好家伙,报错了。
... java.io.IOException: (null) entry in command string: null chmod 0644 ...
我又以为是自己对 API 理解不深刻造成的问题,于是乱改了半天。
直到我想起:凡是 IDEA 没有在我的脚本里明确指出哪行有问题的错误,都是因为版本不兼容。 我现在虽然版本没问题了,但是可能还有其他地方没配好。至少,很大概率不是自己写的代码有问题。
感谢老哥『Hadoop在window上运行出现:java.io.IOException: (null) entry in command string: null chmod 0644』,我安装老哥的指引在 github.com/4ttty/winutils/blob/master/hadoop-2.7.1/bin 下载了动态链接库 hadoop.dll
,放在了 C:/Windows/System32
下面。
我的版本本来是 2.7.3
,但下载的版本是 2.7.1
(没有 2.7.3
),心里祈祷:小版本兼容吧,小版本兼容吧。终于是好用了。
总结
不知道以后还会遇到什么版本问题。
归根结底,还是自己对于 Spark 极其依赖、生态不熟悉,如果是 Python 报错,我一下就能看出来是自己代码的问题,还是环境有问题。所以还是得系统了解一下 Spark 相关内容。学习系统性知识将让我的工作事半功倍。
还有,能用 linux 尽量用 linux 吧,把 docker 配好,谁要用直接拉镜像,剩多少事啊。但是话说回来,要是直接帮我配好了环境,我就学不到这么多了。
我是小拍,微信 PiperLHJ , 想要建一个 spark/scala/hadoop/大数据技术栈 群 ,想入伙的小伙伴加我微信 PiperLHJ 。
老铁别忘了给个关注、点赞。
【吐血经验】在 windows 上安装 spark 遇到的一些坑 | 避坑指南相关推荐
- windows安装gnu_在Windows上安装GNU Emacs
windows安装gnu GNU Emacs是为各种程序员设计的流行文本编辑器. 因为它是在Unix上开发的,并且在Linux上广泛使用(并且随macOS一起提供),所以人们有时没有意识到它也可用于M ...
- 在Windows上编译Spark源码
原文转自http://my.oschina.net/u/1452001/blog/344067?fromerr=1iS9kYnS 在本机(Windows 8)上安装spark玩一玩,Spark的Qui ...
- 在Windows上build Spark
2019独角兽企业重金招聘Python工程师标准>>> 在本机(Windows 8)上安装spark玩一玩,Spark的Quick Start上没有指明具体步骤,自己Build好了之 ...
- 在 Windows 上安装 TensorFlow(转载)
在 Windows 上安装 TensorFlow windows下配置安装Anaconda+tensorflow Spyder--科学的Python开发环境 Windows7 安装TensorFlow ...
- 安装oracle后在cmd,在WINDOWS上安装ORACLE RAC的注意事项
在WINDOWS上安装ORACLE RAC的注意事项 1.检查防火墙和杀毒软件 如果不关掉防火墙,在安装CRS时,在"Oracle Clusterware Configuration Ass ...
- Windows上安装AD域控制器注意事项及常见问题处理办法
以Windows Server 2008 R2 SP1 x64为例,在ECS Windows上安装域控制器时,要注意的事项和常见问题说明如下: 1. 要点和注意事项: 所有域节点的如下服务必须启动,推 ...
- Git学习系列之Windows上安装Git之后的一些配置(图文详解)
不多说,直接上干货! 前面博客 Git学习系列之Windows上安装Git详细步骤(图文详解) 第一次使用Git时,需要对Git进行一些配置,以方便使用Git. 不过,这种配置工作只需要进行一次便可, ...
- python 调用 tensorflow.dll_解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题...
最近打算开始研究一下机器学习,今天在windows上装tensorflow花了点功夫,其实前面的步骤不难,只要依次装好python3.5,numpy,tensorflow就行了,有一点要注意的是目前只 ...
- windows上安装Anaconda和python的教程详解
一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因 ...
最新文章
- linux 使用buildroot制作文件系统
- 使用s3sec批量化自动扫描S3存储桶泄露数据
- 卡方线性趋势检验_SPSS:趋势卡方检验
- flume-ng命令
- opencv 处理黑夜_基于 opencv图像去噪
- QT生成可执行的EXE程序
- zb_system login.php,zblog后台登录地址怎么修改?
- CSS权威指南阅读笔记
- 2018华为网络技术大赛课程-服务器操作系统基础原理自测题答案
- 新手怎样利用博客推广
- 英语简单句——英语句子的基本结构、句子的成分(谓语、主语)、简单句的考点分析
- unity怪物攻击玩家减血_Unity-塔防游戏之怪物波次简单算法
- Java实现 LeetCode 274 H指数
- 操作系统-复习-考题预测及解析-期中考试
- Java中如何将一个数组分割成多个等长度的数组
- 无极符和鸿蒙符哪个好,无极仙途内丹属性哪个好? 单属性与双属性内丹对比详解...
- dhcp服务器未能分发地址,H3C案例查看:ADCampus网络dhcp服务器未配置策略导致地址分配错误问题...
- 转:人的认识如何自我超越
- python 爬取17k网址的个人书架内容
- 一个简单答题系统的设计与实现(四)