2.將安裝包傳到集群所有節點上
3.所有節點root使用者下
cd /opt/cloudera/parcels/cdh/lib/hive
mkdir lib121
4.所有節點解壓 apache-hive-1.2.1-bin.tar.gz
5.所有節點將解壓出來hive/lib下所有檔案拷貝到lib121
6.coudera 介面停止hive服務,如果安裝了hue,ozzie,impala先停掉再停掉hive
6.所有節點修改hive_lib變數 hive_lib=$/lib ==> hive_lib=$/lib121
vim /opt/cloudera/parcels/cdh/lib/hive/bin/hive
7.所有節點更新hadoop上jline jar包,並刪除老的jlien jar包
ln -s /opt/cloudera/parcels/cdh/lib/hive/lib121/jline-2.12.jar /opt/cloudera/parcels/cdh/lib/hadoop-yarn/lib/jline-2.12.jar
rm -rf /opt/cloudera/parcels/cdh/lib/hadoop-yarn/lib/jline-0.94.jar
8.元資料節點備份mysql中hive元資料庫
mysqldump -uroot -hhserver -padmin123 hive > hive013.sql
9.元資料節點進入mysql
create database hive013 default charset utf8 collate utf8_general_ci;
grant all privileges on *.* to 'root'@'hserver' identified by 'admin123' with grant option;
flush privileges;
use hive013;
source hive013.sql;
10.元資料節點公升級hive元資料庫
公升級前檢視公升級指令碼,評估影響,特別是生產環境,根據業務需求更改過元資料的,如果是接手別人的,那就比較苦逼了,每個元資料庫表結構都要看一遍。
如果沒有動過就直接公升級就好
cd /home/dp/apache-hive-1.2.1-bin/scripts/metastore/upgrade/mysql
mysql -uroot -hhserver -padmin123
use hive;
source upgrade-0.13.0-to-0.14.0.mysql.sql;
source upgrade-0.14.0-to-1.1.0.mysql.sql;
source upgrade-1.1.0-to-1.2.0.mysql.sql;
exit
11.cloudera 管理介面啟動hive服務
12.任意節點
hive #進入前hive shell介面
show databases;
use testupdate;
show tables;
select * from test1; #檢視是否原來的資料還在
insert into test1 values("aaaa","bbbb","cccc");
select * from test1;
參考了 CDH集群部署hive建表中文亂碼
背景 部署cdh集群的 hive 服務,選用 mysql 作為 hive 元資料的儲存資料庫,通過 hive cli 建表時發現中文注釋均亂碼。現象 hive端建表中文注釋亂碼。定位 已經確認過 mysql 庫的預設編碼是 utf 8,並且 mysql 中建庫建表不存在中文亂碼的情況。於是檢視hiv...
公升級資料庫
第一版只有book表 第二版加上category表 第三版為book表加上category id 列 book表 這是公升級後的原來沒有category id 列 public static final string create book create table book id integer ...
SQLite資料公升級資料遷移
做android應用,不可避免的會與sqlite打交道。隨著應用的不斷公升級,原有的資料庫結構可能已經不再適應新的功能,這時候,就需要對sqlite資料庫的結構進行公升級了。sqlite提供了alter table命令,允許使用者重新命名或新增新的字段到已有表中,但是不能從表中刪除字段。並且只能在表...