先前在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=