windoes运行spark程序,报错:Error while instantiating 'org.apache.spark.sql.hive.HiveExternalCatalog'(转载)

本文将介绍spark在windows下本地模式的搭建html

Spark的运行模式基本能够分为两种:java

本地模式

即Driver程序只在本机运行git

集群模式

即Dirver程序会在集群中运行,具体到集群模式,又能够分为spark集群、MESOS、YARN等。github

做为初学者入坑,天然是本地模式调通最方便。Spark在Mac、Linux下的安装步骤没必要说,基本没有额外的问题,但windows下的安装仍是要注意一下的。sql

基本步骤:shell

1.到spark官网 https://spark.apache.org/downloads.html 下载with hadoop版本的apache

这里要注意的是,下载with hadoop版本的,即本地不须要再进行hadoop集群的安装部署。windows

 
image.png

下载后解压,到bin目录下执行spark-shell.cmd,此时会报oop

java.lang.IllegalArgumentException: Error while instantiating 'org.apache.spark.sql.hive.HiveSessionState': ........spa

Caused by: java.lang.reflect.InvocationTargetException: java.lang.IllegalArgumentException: Error while instantiating 'org.apache.spark.sql.hive.HiveExternalCatalog':.................

错误缘由是由于没有下载Hadoop windows可执行文件。

2.下载对应版本的hadoop binary文件

下载连接 https://github.com/steveloughran/winutils

下载后将对应版本的HADOOP_HOME添加到环境变量,bin也加到path里

3.这时会报一个The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rw-rw-rw- (on Windows)

这个是/tmp/hive的权限错误,这时到步骤2中下载的hadoop/bin下面,执行 winutils.exe chmod 777 E:\tmp\hive

这里的前缀E:\表示个人spark程序解压在E盘了。\tmp\hive这个是固定的文件夹,即已经建立好了。

这个文件夹比较明显就是spark的临时文件目录了。

至此,LOCAL模式搭建完毕。spark-shell.cmd运行没有错误后,IDE用代码的方式运行spark程序,也不会报错了。

Spark的成功运行标志:

 

原文做者:达微原文连接:https://www.jianshu.com/p/4dd9d550eeb0

相关文章
相关标签/搜索