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

相關文章
相關標籤/搜索