hive-0.11.0出來後,得知有將row_number進行封裝,對於我這等不懂java的人士來說,是莫大的幸福啊!毫不猶豫的將0.8.0拋棄了!
下面是具體升級步驟:
1,關閉當前hive正在執行的進程,service hive-server以及相應的用戶端。
2,不管做哪方面的升級,首先肯定是將當前的進行備份
備份 hive-0.8.0
mv hive-0.8.0 hive-0.8.0_bak
備份中繼資料庫(mysql的)
mysqldump -h ip -P port -uusername -ppassword DB >hive-0.8.0.sql
3,將下載好的hive-0.11.0.tar解壓到相應的目錄(/opt這個是我的目錄)
4,修改環境變數$HIVE_HOME
5,進入/opt/hive-0.11.0/scripts/metastore/upgrade/ 可以看到這個版本多了Oracle與postgres的支援,我們果斷選擇自已用到的mysql
6,進入mysql後,可以看到以下幾個檔案
upgrade-0.5.0-to-0.6.0.mysql.sql
upgrade-0.6.0-to-0.7.0.mysql.sql
upgrade-0.7.0-to-0.8.0.mysql.sql
upgrade-0.8.0-to-0.9.0.mysql.sql
upgrade-0.9.0-to-0.10.0.mysql.sql
因為我們已經是0.8.0的版本了,所以只需執行最後兩個檔案就ok
mysql -h ip -P port -uusername -ppassword DB < upgrade-0.8.0-to-0.9.0.mysql.sql
如果有報錯就自己再手動執行一次,如果沒有也建議執行後備份一下。
執行完後再執行upgrade-0.9.0-to-0.10.0.mysql.sql
備忘:因為我執行的時候是沒有報錯,有朋友說如果這裡沒有操作好,很有可能會導致無法操作之前資料,所以謹慎。
具體報錯資訊:
Failed with exception null
FAILED: Execution Error, return code 1 from org.apache.Hadoop.hive.ql.exec.DDLTask
7,將mysql的驅動拷貝到lib目錄下。
8,將之前舊版本配置好的hive-site.xml,hive-env.xml與hive-log4j.properties放回現在版本的conf下。
9,升級完成。可以進行hive操作了。記得將原來停掉的server再重新開啟
Hive 的詳細介紹:請點這裡
Hive 的:請點這裡
基於Hadoop叢集的Hive安裝
Hive內表和外表的區別
Hadoop + Hive + Map +reduce 叢集安裝部署
Hive本地獨立模式安裝
Hive學習之WordCount單詞統計