在Spark On Hive使用SparkSQL讀取hive表中的數據,local和client模式下測試都可以通過,但在yarn的cluster模式下測試拋出瞭如下異常:
org.apache.spark.sql.catalyst.analysis.NoSuchDatabaseException: Database ‘test’ not found;
最後找出原因:把spark的任務jar放到yarn集羣上面運行時,執行job的節點可能不是Hive所在的節點。則會找不到Hive的配置文件,造成找不到數據庫錯誤。
所以要用 --files 把hive-site.xml廣播到各個節點
spark-submit --master yarn --deploy-mode cluster --files …/hive-site.xml --…