hdp3.1 hive 3.0的使用記錄


近來在做項目中的技術調研,使用最新版的hdp3.1,其中使用spark2.3和hive 3.1.

遇到 一些問題,記錄如下:

一,使用spark-sql client driver去訪問hive創建的數據庫,發現找不到,使用presto訪問hive,只能讀寫外部表。

經過查詢資料了解到,hive3.1默認對內部表支持事務和ACID特性,spark等外部工具無法直接讀取ACID的表數據,

spark新版本正在跟進,但spark-sql本身也在和hive分離,走自己的路,已經和hive共用一個元數據庫,但是使用不同的

catalog,存不同的元數據。

如果想使用spark-sql來處理hive的表數據,則需要做如下調整:

1.在advanced spark2-hive-site-override中配置metastore.catalog.default=hive之后重啟spark2 服務,
這樣就可以看到hive創建的數據庫和表,但是只能訪問外部表,無法訪問內部表,原因上面已說明。

2.如果想使用presto,spark-sql來訪問hive3.1的表,則需要做如下調整,放棄acid和事務特性。

 hive.strict.managed.tables=false
hive.create.as.insert.only=false
metastore.create.as.acid=false
這三個屬性設置之后,重啟hive server2,這樣hive 放棄了事務,acid的特性,生成的表數據,spark-sql,presto
就可以讀取了。
二,使用kylin生成cube報錯,無法修改hive運行時屬性xxxxx

* hive.security.authorization.sqlstd.confwhitelist
Kylin在執行作業的時候,需要做一些mapreduce的優化,set xxx=xxx,但報錯,顯示不能在運行時修改,
經查可以配置這個屬性,符合這個java正則的屬性可以被修改。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM