HIVE 0.9.0,HBASE整合至少需要HBASE 0.92,HIVE的早期版本與HBase 0.89/0.90一起使用。 |
hive1.X將保持與HBase 0.98.x和更低版本兼容。hive2x將與HBASE 1 x兼容。希望使用Hive 1.x與HBase 1.x一起工作的消費者將需要自己編譯Hive 1.x流代碼。 |
這裏沒有編譯依然可以使用,可能存在未知的兼容性問題
先停止zookeeper、hbase和hadoop
zkServer.sh stop
stop-dfs.sh
stop-hbase.sh
node3 ~]#
tar -zxvf apache-hive-1.2.1-bin.tar.gz
mv apache-hive-1.2.1-bin /home/hive-1.2
cd /home/hive-1.2/conf
cp hive-default.xml.template hive-site.xml
配置環境變量 vi ~/.bash_profile source ~/.bash_profile
export HIVE_HOME=/home/hive-1.2
export PATH=$PATH:$HIVE_HOME/bin
從configuration標籤開始刪除到configuration標籤結束,編輯模式
.,$-1d
1、配置元數據+ZK
vi hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node4:3306/hive_db</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>node3,node4,node5</value>
</property>
</configuration>
2、jar包配置,在hive的conf目錄下執行
rm -rf /home/hadoop-2.5.1/share/hadoop/yarn/lib/jline-0.9.94.jar
cp ../lib/jline-2.12.jar /home/hadoop-2.5.1/share/hadoop/yarn/lib/
cp ../lib/hive-hbase-handler-1.2.1.jar /home/hbase-1.1.3/lib/
再把hbase中的所有的jar,cp到hive/lib
# -n 表示對於目標路徑下已經存在的文件,則不復制過去
cp -n /home/hbase-1.1.3/lib/*.jar /home/hive-1.2/lib/
3、在hive中配置MySQL的驅動包
cp mysql-connector-java-5.1.26-bin.jar /home/hive-1.2/lib/
node4節點上創建數據庫
create database hive_db;
4、拷貝配置集羣,切換到home目錄下
scp -r hive-1.2/ root@node4:/home/
scp -r hive-1.2/ root@node5:/home/
scp -r hive-1.2/ root@node6:/home/
node4、5、6三個節點在hive的conf目錄下都執行以下操作
rm -rf /home/hadoop-2.5.1/share/hadoop/yarn/lib/jline-0.9.94.jar
cp ../lib/jline-2.12.jar /home/hadoop-2.5.1/share/hadoop/yarn/lib/
cp ../lib/hive-hbase-handler-1.2.1.jar /home/hbase-1.1.3/lib/
5、按照流程啓動hadoop 和 hbase
切換到hive的bin目錄下,啓動hive
hive
一般來講,HiveServer2是用來提交查詢的,也就是用來訪問數據的。MetaStore纔是用來訪問元數據的。
CliDriver是SQL本地直接編譯,再訪問MetaStore,提交作業,是重客戶端。
BeeLine是把SQL提交給HiveServer2,由HiveServer2編譯,然後訪問MetaStore,提交作業,是輕客戶端
–Beeline 要與HiveServer2配合使用,支持嵌入模式和遠程模式
–啓動HiverServer2 , ./bin/hiveserver2
–啓動Beeline
–beeline> !connect jdbc:hive2://localhost:10000
–默認 用戶名就是登錄賬號 密碼爲空
** Hive基本數據操作
-- 更改表的字段名、類型
Alter table dw_coogle_amazing.t_amazing_send_use_statistics change column today_get_count today_get_count bigint comment '今日領取數'
Alter table dw_coogle_amazing.t_amazing_send_use_statistics change column discount_degree discount_degree decimal(11,2) comment '優惠折扣'
ALTER TABLE dw_coogle_amazing.t_grow_send_engine_rule CHANGE COLUMN avg_discount avg_discount decimal(19,4) comment '平均折扣'
ALTER TABLE dw_coogle_amazing.t_grow_send_engine_rule CHANGE COLUMN rebuy_rate rebuy_rate decimal(19,4) comment '復購率'
Alter table dw_coogle_marketing.t_amazing_olap_v2 change column member_id member_id int
-- 新增字段
alter table dw_coogle_operation.t_shop_olap_domain_v2 add columns(immediate_count int comment '')
-- 刪除hive視圖
drop view kylin_view.t_amazing_olap_another
-- 刪除表
drop table dw_coogle_amazing_order.t_amazing_olap
-- 刪除表數據
truncate table dw_coogle_marketing.t_amazing_olap_v2
-- 刪除分區
alter table dw_coogle_marketing.t_amazing_olap_v2 drop partition (dt>='2019-07-01')
-- 插入數據
insert into dw_coogle_marketing.t_amazing_olap_v2 partition(dt = '2019-09-01') values(...)
insert into dw_coogle_marketing.t_amazing_olap_v2 values(...)
-- 修改表名
ALTER TABLE dw_coogle_operation.t_dispatch_rang_tea RENAME TO dw_coogle_operation.t_coogle_shop_dispatch_rang_tea