1、背景:
進入spark集群,cd/spark,執(zhí)bin/spark-sql,報錯
2唯袄、解決方法
2.1、是hive元數(shù)據(jù)的問題蜗帜,進入spark/conf/hive-site.xml恋拷,找到mysql的配置信息
2.2、進入mysql,切換到hive所使用的DB
2.3厅缺、 select * from VERSION;
2.4蔬顾、保留第一條記錄,其他記錄全部刪除
delete from VERSION where VER_ID != 1;
3湘捎、問題原因
異常是因為在啟動hive命令時會檢查hive源數(shù)據(jù)中有一張VERSION表诀豁,如果元數(shù)據(jù)版本信息獲取不到(原因可能是元數(shù)據(jù)庫異常||網(wǎng)絡(luò)異常||短期內(nèi)作業(yè)量較多操作都會造成查詢不到版本信息),這種情況下會判斷hive.metastore.schema.verification屬性是true還是false窥妇,為true時直接拋出MetaException舷胜,為false時打出warn警告然后插入一條version數(shù)據(jù)(這種情況下會造成多條version記錄后面的作業(yè)會受影響)
4、徹底解決
4.1活翩、hive安裝好后將hive-site.xml中hive.metastore.schema.verification設(shè)置為true烹骨,version獲取不到時報出異常翻伺,不去插入version信息,這樣本作業(yè)執(zhí)行失敗不會影響下游作業(yè)沮焕;
4.2開啟metastore服務(wù)吨岭,hive統(tǒng)一連接metastore,由守護進程啟動metastore峦树,避免大量hive腳本初始化元數(shù)據(jù)信息時獲取不到版本信息辣辫;
4.3、優(yōu)化hive元數(shù)據(jù)庫魁巩;