用spark-submit执行python文件,进行hive表的操作时,会出现报错:
java.lang.RuntimeException: java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwx------
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:522)
at org.apache.spark.sql.hive.client.HiveClientImpl.<init>(HiveClientImpl.scala:171)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)...
表示对hdfs下/tmp/hive目录的操作权限没有写权限。
解决方法为:
同时删HDFS与本地的目录/tmp/hive:
hadoop fs -rm -r /tmp/hive
rm -rf /tmp/hive
spark查询hive表时可能会出现找不到表或者视图的情况,该情况是由于spark未知hive的配置。
解决方案为:
在hive的配置目录conf下,找到hive的配置文件hive-site.xml
将该文件复制到spark的conf目录下
重新运行spark shell或者通过spark-submit运行文件