近期,大數據開發環境升級為cloudera 5.3. 配套的hive版本升級為0.13.1.可以使用心儀已久的分析開窗函數了。但在使用的過程中發現一些問題,僅記於此。
1.在使用hive命令的時候,發現自動跳轉至beeline客戶端,並且提示hive cli已經過期,推薦使用beeline.
然后提示你輸入jdbc url.
2.通過hadoop version 找到hive的home,發現有一個hive-old 的文件,通過檢查測試發現這就是原來hive cli的文件。
3.簡單測試beeline的使用,發現cloudera的發行版的beeline在運行load data local inpath的時候總是提示找不到文件的錯誤,
去其官方論壇上發現有人遇到過這個問題,而且尚未解決,但是支持hdfs的全路徑。
我們在項目中使用了類似 hive –e ‘load data local inpath’ 和 hive –f 之類的
因為我們這邊的hadoop使用的是kerbos認證,所以需要在jdbc的url中接入principal。
hive cli 之於hive 就相當於sql plus之於oracle. 需要和server安裝在一起。
而beeline只需要一個jdbc jar包就可以了,可以不需要與hive server 2裝在一台server.
他們認證的方式也不同,hive cli可以直接訪問hdfs和hive meta store,感覺更穩定快捷一些。
而beeline 則需要把請求提交到hive server2,通過安全驗證,然后在隊列中等待。
beeline的並發性和安全性得到了提高。