前言
對于做大資料開發的同學來說,掌握hive是必備的技能之一,hive基于hdfs之上的一款強大的資料分析框架,可以從海量的資料中做出高效的資料分析,而且迎合大多數有著sql使用習慣的各類技術人員
話不多說,我們先基于一個單機版的hdfs環境搭建起hive的使用環境吧
環境準備
- hdfs運行環境,關于搭建可以參考我之前的一篇文章
- mysql,提前安裝好mysql,這里建議使用mysql 5.7版本
- hive安裝包,本例使用3.12版本的安裝版本,可以自行去官網下載
安裝步驟
1、上傳安裝包到服務器指定目錄下

2、移動到指定目錄,并解壓重命名解壓包
tar -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module/
重命名解壓包
mv /opt/module/apache-hive-3.1.2-bin/ /opt/module/hive
3、配置環境變數
vi /etc/profile

然后執行 :source /etc/profile
4、初始化derby資料庫
hive默認情況下,不做任何配置的話,其元資料存盤在內置的一款稱作derby資料庫中,因此需要初始化一下元資料資訊
bin/schematool -dbType derby -initSchema


看到這里,說明初始化成功,然后進入到 bin 目錄下,執行 ./hive 命令即可進入到hive的客戶端視窗

但是當我們執行hive客戶端下面的命令時,將會出現一段例外日志
show databases;
FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.me
原因在于 Hive 默認使用的元資料庫為 derby,開啟 Hive 之后就會占用元資料庫,且不與
其他客戶端共享資料,所以我們需要將 Hive 的元資料地址改為 MySQL
了解了報錯的原因后,我們需要配置下hive的元資料連接資訊存盤在mysql中
5、配置mysql連接
進入hive的conf目錄,新建一個hive-site.xml,拷貝如下的配置內容
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- jdbc 連接的 URL -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://IP: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>root</value>
</property>
<!-- Hive 元資料存盤版本的驗證 -->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!--元資料存盤授權-->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<!-- Hive 默認在 HDFS 的作業目錄 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
</configuration>
配置完成后,最好給該檔案授權,然后在mysql中創建一個名字為 “metastore”的資料庫,用于保存hive的元資料資訊
create database metastore;
6、再次執行元資料的初始化
進入bin目錄,不過這一次是使用mysql了
schematool -initSchema -dbType mysql -verbose
7、再次啟動hive
再次啟動hive之前,確保hdfs服務是啟動的

同時,注意啟動hive時不要使用root賬戶,因為我們之前在配置單機的hdfs的時候也不是使用root賬戶而是自己創建的賬戶,hive操作是需要聯通hdfs的,這里需要重點關注一下

然后就可以基于當前的命令視窗像操作mysql那樣執行hive的客戶端命令了

創建完表之后,就可以在hdfs上面看到表的相關資料檔案啦

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/413853.html
標籤:其他
上一篇:原始碼拿走,機器學習,區別貓狗
