問題描述:hive on spark 在運行HQL任務的時候,報錯了
看日誌發現有句 shutting down all executors,asking each executor to shut down
說明是spark的driver沒有正常啟動,這個時候應該是executor和driver的內存不夠,在hive/conf目錄下面修改 spark-defaults.conf,將內存從原來的1G適當的調為4G
修改之後,重啟hive和spark
在這裡調整完之後,可能會出現其他的bug,比如org.apache.hadoop.hive.ql.parse.SemanticException:Failed to get a spark session: org.apache.hadoop.hive.ql.metadata.HiveException: Failed to create Spark client due to invalid resource request: Required executor memory (8192 MB), offHeap memory (0) MB, overhead (819 MB),and PySpark memory (0 MB) is above the max threshold (8192 MB)
這個時候是因為超過了yarn分配的資源
解決辦法:修改 /hadoop/etc/hadoop/yarn-site.xml文件
需要保證的是:
1. yarn.scheduler.maximum-allocation-mb要比executor的內存大
2. yarn.nodemanager.resource.memory-mb的內存大概占比服務器內存的70%-80%
3. 修改之後需要分發yarn-site.xml文件,然後再重啟hadoop