使用本章節前已參考配置存算分離集群(委托方式)或配置存算分離集群(AKSK方式)完成存算(suan)分離集群(qun)配置。
建表時指定Location為OBS路徑
1.使用(yong)安(an)裝客(ke)戶端(duan)(duan)用(yong)戶登錄客(ke)戶端(duan)(duan)安(an)裝節(jie)點。
2.執行如下命(ming)令初始化環境(jing)變量。
source ${client_home}/bigdata_env
3.如果是安(an)全集(ji)群,執行(xing)(xing)以下命令進行(xing)(xing)用(yong)戶(hu)(hu)認證(zheng)(該用(yong)戶(hu)(hu)需(xu)要具(ju)有Hive操(cao)作(zuo)的權限),如果當前集(ji)群未啟用(yong)Kerberos認證(zheng),則無需(xu)執行(xing)(xing)此命令。
kinit Hive組件(jian)操作用戶(hu)
4.登錄FusionInsight Manager,選擇“集群 > 服(fu)務 > Hive > 配置 > 全部配置”。
在(zai)左側(ce)的(de)導航(hang)列表中(zhong)選(xuan)擇“Hive>自定義”。在(zai)自定義配置(zhi)項(xiang)中(zhong),給(gei)參數“hdfs.site.customized.configs”添加配置(zhi)項(xiang)“dfs.namenode.acls.enabled”,設(she)置(zhi)值為“false”。


5.單擊(ji)“保存”,保存配置。單擊(ji)“概覽”,選(xuan)擇“更多(duo) > 重(zhong)啟服(fu)(fu)務”,輸入(ru)當前用(yong)戶密碼,單擊(ji)“確定”,并勾選(xuan)“同時重(zhong)啟上層服(fu)(fu)務。”,單擊(ji)“確定”,重(zhong)啟Hive服(fu)(fu)務。
6.進入beeline客戶端,在(zai)創建表時指定(ding)Location為OBS文件系統(tong)路徑。
beeline
例(li)如(ru),創(chuang)建(jian)一(yi)個表“test”,該表的(de)Location為“obs://OBS并行文(wen)件系統名稱/user/hive/warehouse/數據庫(ku)名/表名”:
create table test(name string) location "obs:// OBS 并(bing)行(xing)文件系(xi)統名(ming)稱/user/hive/warehouse/ 數據庫名(ming)/ 表(biao)名(ming) ";

說明需要添加組件操作用戶到Ranger策略(lve)中的(de)(de)URL策略(lve),URL填寫對(dui)象在obs上的(de)(de)完整路徑。權限選擇(ze)Read, Write 權限,其他權限不涉及URL策略(lve)。
指定創建的Hive表默認Location為OBS路徑
1.登錄FusionInsight Manager,選擇(ze)“集群 > 服務(wu) > Hive > 配置 > 全部配置”。
2.在左(zuo)側的(de)導航列表中選擇(ze)“MetaStore > 自(zi)定(ding)義(yi)”。在自(zi)定(ding)義(yi)配(pei)置項(xiang)中,給參數“hive.metastore.customized.configs”添加配(pei)置項(xiang)“hive.metastore.warehouse.dir”,設置值(zhi)為OBS路徑。
詳見下圖:hive.metastore.warehouse.dir配置(zhi)


3.在(zai)左側的導航(hang)列表(biao)中選擇“HiveServer > 自(zi)定(ding)義(yi)”。在(zai)自(zi)定(ding)義(yi)配(pei)置(zhi)(zhi)項(xiang)中,給參數“hive.metastore.customized.configs”和“hive.server.customized.configs”添加配(pei)置(zhi)(zhi)項(xiang)“hive.metastore.warehouse.dir”,設置(zhi)(zhi)值為OBS路(lu)徑。
詳見(jian)下圖:hive.metastore.warehouse.dir配置


4.保存并(bing)重啟Hive服務。
5.更新客戶(hu)端配置文件。
a.執行以下(xia)命令修(xiu)改客戶端Hive配置(zhi)文件目(mu)錄下(xia)的(de)“hivemetastore-site.xml”。
vim /opt/Bigdata/client/Hive/config/hivemetastore-site.xml
b.將“hive.metastore.warehouse.dir”的值修(xiu)改為對(dui)應的OBS路徑。


6.進入beeline客(ke)戶端,創建表并確認Location為OBS路徑。
beeline
create table test(name string);
desc formatted test;

說明如(ru)果當(dang)前數據庫Location已指(zhi)向(xiang)HDFS,那么在當(dang)前數據庫下建表(biao)(不指(zhi)定Location)默認也指(zhi)向(xiang)當(dang)前HDFS。如(ru)需修改默認建表(biao)策略(lve)可以修改數據庫的Location重新指(zhi)向(xiang)OBS。操作如(ru)下:
a.執(zhi)行以下(xia)命(ming)令(ling)查看數據庫Location。
show create database obs_test ;


b.執行以(yi)下(xia)命令修改(gai)數據(ju)庫Location。
alter database obs_test set location obs:// OBS 并(bing)行文件(jian)系(xi)統名稱/user/hive/warehouse/ 數據(ju)庫名'
執行命令 show create database obs_test ,查看(kan)數(shu)據庫Location已經指向OBS。


c.執(zhi)行以下命令修改表的Location。
alter table user_info set location ' obs:// OBS 并行文(wen)件(jian)系統名(ming)稱/user/hive/warehouse/ 數據庫(ku)名(ming)/ 表(biao)名(ming)'
如(ru)果表(biao)已有業務(wu)數據,需要同步遷移(yi)原數據文件至修改(gai)后的Location地址。