樣板網(wǎng)站看b站視頻下載軟件
文章目錄
- 一、上傳壓縮包
- 二、解壓壓縮包
- 三、配置環(huán)境變量
- 四、初始化元數(shù)據(jù)庫
- 4.1 配置MySQL地址
- 4.2 拷貝MySQL驅(qū)動
- 4.3 初始化元數(shù)據(jù)庫
- 4.3.1 創(chuàng)建數(shù)據(jù)庫
- 4.3.2 初始化元數(shù)據(jù)庫
- 五、啟動元數(shù)據(jù)服務(wù)metastore
- 5.1 修改配置文件
- 5.2 啟動/關(guān)閉metastore服務(wù)
- 六、啟動hiveserver2服務(wù)
- 6.1 修改配置文件
- 6.2 啟動/關(guān)閉hiveserver2服務(wù)
- 七、訪問Hive
- 7.1 通過hive客戶端訪問
- 7.2 通過beeline客戶端訪問(JDBC)
- 八、修改元數(shù)據(jù)庫字符集(TODO)
- 8.1 修改hive元數(shù)據(jù)庫中存儲注釋的字段的字符集為utf-8
- (1)字段注釋
- (2)表注釋
- 8.2 修改hive-site.xml配置文件
- 九、整合HDFS(TODO)
- 十、升級為hive集群(TODO)
一、上傳壓縮包
https://hive.apache.org/
二、解壓壓縮包
[hadoop@hadoop102 software]$ tar -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module/
三、配置環(huán)境變量
[hadoop@hadoop102 apache-hive-3.1.2-bin]$ sudo vim /etc/profile.d/my_env.sh
新增內(nèi)容:
#HIVE_HOME
export HIVE_HOME=/opt/module/apache-hive-3.1.2-bin
export PATH=$PATH:$HIVE_HOME/bin
使環(huán)境變量生效:
[hadoop@hadoop102 apache-hive-3.1.2-bin]$ source /etc/profile.d/my_env.sh
四、初始化元數(shù)據(jù)庫
hive元數(shù)據(jù)概述:記錄了hive中表的名稱、列名、數(shù)據(jù)類型、分區(qū)信息、數(shù)據(jù)存儲路徑等。
hive元數(shù)據(jù)存儲:默認(rèn)是元數(shù)據(jù)存儲于hive內(nèi)置的derby數(shù)據(jù)庫,是用Java寫的。一定要切換到MySQL,內(nèi)嵌derby局限性太高!當(dāng)一個(gè)hive客戶端啟動時(shí),就會獨(dú)占derby元數(shù)據(jù)庫且不與其他客戶端共享元數(shù)據(jù),所以無法同時(shí)開啟多個(gè)hive客戶端進(jìn)行操作!
4.1 配置MySQL地址
[hadoop@hadoop102 ~]$ vim $HIVE_HOME/conf/hive-site.xml
新增內(nèi)容:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><!-- jdbc連接的URL --><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://mall:3306/metastore?useSSL=false</value></property><!-- jdbc連接的Driver--><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><!-- jdbc連接的username--><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><!-- jdbc連接的password --><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><!-- Hive默認(rèn)在HDFS的工作目錄;數(shù)據(jù)庫被創(chuàng)建之后默認(rèn)存儲的位置。 eg:/warehouse/xx_dw_dwb.db --><property><name>hive.metastore.warehouse.dir</name><value>/warehouse</value></property><!-- Hive元數(shù)據(jù)存儲的驗(yàn)證 --><property><name>hive.metastore.schema.verification</name><value>false</value></property><!-- 元數(shù)據(jù)存儲授權(quán) --><property><name>hive.metastore.event.db.notification.api.auth</name><value>false</value></property>
</configuration>
4.2 拷貝MySQL驅(qū)動
[hadoop@hadoop102 ~]$ cp /opt/software/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib
4.3 初始化元數(shù)據(jù)庫
4.3.1 創(chuàng)建數(shù)據(jù)庫
[mall@mall ~]$ mysql -uroot -p123456
mysql> create database metastore;
mysql> quit;
4.3.2 初始化元數(shù)據(jù)庫
-verbose參數(shù):顯示初始化過程日志
-dbType:指定數(shù)據(jù)庫類型
[hadoop@hadoop102 ~]$ schematool -initSchema -dbType mysql -verbose
五、啟動元數(shù)據(jù)服務(wù)metastore
metastore服務(wù)用于訪問hive元數(shù)據(jù)。有兩種提供服務(wù)的方式,分別是嵌入式模式和獨(dú)立服務(wù)模式。
生產(chǎn)中使用獨(dú)立服務(wù)模式,因?yàn)樵谇度胧侥J较?#xff0c;每個(gè)Hive CLI都需要直接連接元數(shù)據(jù)庫,當(dāng)Hive CLI較多時(shí),數(shù)據(jù)庫壓力會比較大。
內(nèi)嵌式模式:
獨(dú)立服務(wù)模式:
5.1 修改配置文件
如果配置文件中有此項(xiàng)配置,說明hive在連接元數(shù)據(jù)的時(shí)候需要走第三方服務(wù)thrift,必須啟動獨(dú)立服務(wù)模式metastore服務(wù)!
[hadoop@hadoop102 ~]$ vim $HIVE_HOME/conf/hive-site.xml
新增內(nèi)容:
<!-- hive元數(shù)據(jù)服務(wù)metastore的ip和端口號 --><property><name>hive.metastore.uris</name><value>thrift://hadoop102:9083</value></property>
5.2 啟動/關(guān)閉metastore服務(wù)
# 啟動
[hadoop@hadoop102 ~]$ nohup hive --service metastore &>/dev/null 2>/dev/null &
# 關(guān)閉
[hadoop@hadoop102 ~]$ ps -ef | grep metastore
[hadoop@hadoop102 ~]$ kill 28832
六、啟動hiveserver2服務(wù)
6.1 修改配置文件
[hadoop@hadoop102 ~]$ vim $HIVE_HOME/conf/hive-site.xml
新增內(nèi)容:
<!-- 指定hiveserver2連接的host --><property><name>hive.server2.thrift.bind.host</name><value>hadoop102</value></property><!-- 指定hiveserver2連接的端口號 --><property><name>hive.server2.thrift.port</name><value>10000</value></property>
6.2 啟動/關(guān)閉hiveserver2服務(wù)
# 啟動
[hadoop@hadoop102 apache-hive-3.1.2-bin]$ nohup bin/hive --service hiveserver2 &>/dev/null 2>/dev/null &
# 關(guān)閉
[hadoop@hadoop102 ~]$ ps -ef | grep hiveserver2
[hadoop@hadoop102 ~]$ kill 29204
七、訪問Hive
7.1 通過hive客戶端訪問
[hadoop@hadoop102 ~]$ cd /opt/module/apache-hive-3.1.2-bin/
[hadoop@hadoop102 apache-hive-3.1.2-bin]$ bin/hive
查看數(shù)據(jù)庫:
hive> show databases;
OK
default
Time taken: 0.756 seconds, Fetched: 1 row(s)
7.2 通過beeline客戶端訪問(JDBC)
-u參數(shù):hiveserver2所在ip和端口號
-n參數(shù):賬號
[hadoop@hadoop102 apache-hive-3.1.2-bin]$ bin/beeline -u jdbc:hive2://hadoop102:10000 -n hadoop
八、修改元數(shù)據(jù)庫字符集(TODO)
Hive元數(shù)據(jù)庫字符集默認(rèn)是Latin1,如果建表語句中有中文注釋,會出現(xiàn)亂碼現(xiàn)象。
8.1 修改hive元數(shù)據(jù)庫中存儲注釋的字段的字符集為utf-8
以utf-8編碼向元數(shù)據(jù)庫中寫入數(shù)據(jù)
mysql -uroot -p
(1)字段注釋
use metastore;
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
(2)表注釋
alter table TABLE_PARAMS modify column PARAM_VALUE mediumtext character set utf8;
8.2 修改hive-site.xml配置文件
以utf-8編碼從元數(shù)據(jù)庫中讀取數(shù)據(jù)
[hadoop@hadoop102 ~]$ vim $HIVE_HOME/conf/hive-site.xml
修改內(nèi)容:
<!-- jdbc連接的URL --><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://mall:3306/metastore?useSSL=false&useUnicode=true&characterEncoding=UTF-8</value></property>
九、整合HDFS(TODO)
將HDFS文件包裝成hive中的表