先前在local模式下,什么都不做修改直接運行./spark-shell 運行什么問題都沒有,然后配置過在HADOOP yarn上運行,之后再在local模式下運行出現以下錯誤:
java.lang.IllegalArgumentException: Error while instantiating 'org.apache.spark.sql.hive.HiveSessionState':
at org.apache.spark.sql.SparkSession$.org$apache$spark$sql$SparkSession$$reflect(SparkSession.scala:981)
at org.apache.spark.sql.SparkSession.sessionState$lzycompute(SparkSession.scala:110)
at org.apache.spark.sql.SparkSession.sessionState(SparkSession.scala:109)
at org.apache.spark.sql.SparkSession$Builder$$anonfun$getOrCreate$5.apply(SparkSession.scala:878)
......
at org.apache.hadoop.ipc.Client$Connection.access$2900(Client.java:375)
at org.apache.hadoop.ipc.Client.getConnection(Client.java:1528)
at org.apache.hadoop.ipc.Client.call(Client.java:1451)
... 105 more
<console>:14: error: not found: value spark
import spark.implicits._
^
<console>:14: error: not found: value spark
import spark.sql
改了之前的設置甚至直接下了一個新的版本運行還是一樣,而且中間很郁悶的發現一直存在hadoop master節點的域名,不知道從哪獲取的。
網上的說法一般是log4j等庫在訪問某個文件時的權限問題,或者某個地方運行模式不對,測試修改都沒用。
本以為是某個臨時路徑沒有建在spark的文件夾中,找了半天系統的臨時目錄。突然想到和hadoop的鏈接方式,通過環境變量!!將 HADOOP_CONF_DIR環境變量設置為空則解決問題
export HADOOP_CONF_DIR=