Hive常用配置
配置
hive各组件配置连接数与内存,连接数关系
hs2启动,停止和连接hs2的几种方式
启动停止
启动 HiveServer2:sudo service hive-server2 start
停止 HiveServer2:sudo service hive-server2 stop
beeline连接方式
在终端可以使用beeline的客户端方式去连接hiveserver2如下所示
$ /usr/lib/hive/bin/beeline
beeline> !connect jdbc:hive2://localhost:10000 username password org.apache.hive.jdbc.HiveDriver
0: jdbc:hive2://localhost:10000> SHOW TABLES;
show tables;
+-----------+
| tab_name |
+-----------+
+-----------+
No rows selected (0.238 seconds)
0: jdbc:hive2://localhost:10000>
如果服务里面有TLS/SSL的相关配置,beenline方式如下
jdbc:hive2://#<host>:#<port>/#<dbName>;ssl=true;sslTrustStore=#<ssl_truststore_path>;trustStorePassword=#<truststore_password>;#<otherSessionConfs>?#<hiveConfs>#<hiveVars>
具体示例
$ beeline
beeline> !connect jdbc:hive2://<host>:8443/;ssl=true;transportMode=http;httpPath=gateway/cdp-proxy-api/hive;sslTrustStore=/<path>/bin/certs/gateway-client-trust.jks;trustStorePassword=changeit
使用带有hbase的hive
在hbase中创建表后,我们只能在hbase shell中使用scan查询数据,这对于熟悉SQL的使用者不怎么习惯,不过我们可以在hive中创建外部表来访问hbase表中的数据,例子如下:
这里hbase中的表oss_user_label_action_data已经存在
创建外部表
CREATE EXTERNAL TABLE hive_oss_user_label_action_data(
key string,
monthno string,
usernumber string,
labelno string,
labelvalue string,
provcode string,
areacode string,
cardtype string,
extstring string,
createtime string,
modifytime string
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES
("hbase.columns.mapping" =
":key,info:monthno,info:usernumber,info:labelno,info:labelvalue,info:provcode,info:areacode,info:cardtype,info:extstring,info:createtime,info:modifytime")
TBLPROPERTIES("hbase.table.name" = "oss_user_label_action_data");
通过hive查询数据
根据rowkey查询
select * from hive_oss_user_label_action_data where key='201407|31130101|8613500000001'
根据某个字段查询
select * from hive_oss_user_label_action_data where usernumber='8613500000001'
组合查询
select * from hive_oss_user_label_action_data where usernumber='8613500000001' and labelno='31130101'
说明:
这里我们访问的hive_oss_user_label_action_data
表是虚表,数据是存储在hbase中的,我们可以创建另外一个hive中的表。
将hbase中的数据加载到hive本地
创建另外一个表
CREATE TABLE hive_oss_user_label_action_data_local(
key string,
monthno string,
usernumber string,
labelno string,
labelvalue string,
provcode string,
areacode string,
cardtype string,
extstring string,
createtime string,
modifytime string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;
将hbase中的表数据加载到本地表
INSERT OVERWRITE TABLE hive_oss_user_label_action_data_local SELECT * FROM hive_oss_user_label_action_data;
以上内容对您是否有帮助?