Hive -------- 使用mysql儲存hive後設資料,Mysql的安裝以及配置步驟
3.8 虛擬列
虛擬列本身是一個不存在列,在資料查詢的時候,可以通過虛擬列去查詢資料的的路徑,以及資料的偏移量,這兩個內容都是hive中為使用者提供的虛擬列進行的查詢
虛擬列存在兩種:
INPUT__FILE__NAME 代表資料的檔案儲存路徑
範例: 通過查詢虛擬列得到檔案儲存路徑
select ename ,INPUT__FILE__NAME from emp;
SMITH hdfs://ns1/user/hive/warehouse/emp/emp.txt
ALLEN hdfs://ns1/user/hive/warehouse/emp/emp.txt
WARD hdfs://ns1/user/hive/warehouse/emp/emp.txt
JONES hdfs://ns1/user/hive/warehouse/emp/emp.txt
MARTIN hdfs://ns1/user/hive/warehouse/emp/emp.txt
BLAKE hdfs://ns1/user/hive/warehouse/emp/emp.txt
CLARK hdfs://ns1/user/hive/warehouse/emp/emp.txt
SCOTT hdfs://ns1/user/hive/warehouse/emp/emp.txt
KING hdfs://ns1/user/hive/warehouse/emp/emp.txt
TURNER hdfs://ns1/user/hive/warehouse/emp/emp.txt
ADAMS hdfs://ns1/user/hive/warehouse/emp/emp.txt
JAMES hdfs://ns1/user/hive/warehouse/emp/emp.txt
FORD hdfs://ns1/user/hive/warehouse/emp/emp.txt
MILLER hdfs://ns1/user/hive/warehouse/emp/emp.txt
block__offset__inside__file: 得到資料檔案的偏移量資訊
範例: 通過虛擬列查詢資料的偏移量
select ename ,BLOCK__OFFSET__INSIDE__FILE from emp;
ename block__offset__inside__file
SMITH 0
ALLEN 44
WARD 97
JONES 149
MARTIN 194
BLAKE 249
CLARK 294
SCOTT 339
KING 385
TURNER 429
ADAMS 480
JAMES 524
FORD 567
MILLER 612
3.9 使用mysql儲存hive後設資料
由於hive中預設的後設資料儲存在derby中只能單使用者訪問,如果一個在訪問hive,則另一使用者無法訪問, 會出現以下錯誤資訊
Caused by: ERROR XSDB6: Another instance of Derby may have already booted the database /opt/app/apache-hive-1.2.1-bin/metastore_db.
為了解決以上的問題,可以把hive的後設資料儲存在mysql中
3.9.1 Mysql的安裝步驟
1 在linux系統中可能存在mysql的安裝包,所以在第一步先檢查系統中是否安裝過mysql
rpm -qa | grep -i mysql
通過以上命令檢查系統中是否安裝過mysql ,執行該命令發現確實存在mysql的安裝包如下
mysql-libs-5.1.73-7.el6.x86_64
2 解除安裝已有的mysql安裝包
sudo rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64
解除安裝完成之後執行查群命令,檢視是否解除安裝成功
rpm -qa | grep -i mysql
通過以上查詢,發現確實已經解除安裝成功
3 上傳mysql的安裝包分為server端與client端
MySQL-client-5.5.47-1.linux2.6.x86_64.rpm
MySQL-server-5.5.47-1.linux2.6.x86_64.rpm
4 安裝mysql軟體
通過rpm方式 安裝mysql server
sudo rpm -ivh MySQL-server-5.5.47-1.linux2.6.x86_64.rpm
通過rpm方式 安裝mysql client
sudo rpm -ivh MySQL-client-5.5.47-1.linux2.6.x86_64.rpm
5 檢視mysql的執行狀態
sudo service mysql status
6 啟動mysql 服務
sudo service mysql start
7 再次檢視mysql 執行狀態
MySQL running (28554)[ OK ]
顯示以上的結果說明mysql安裝成功
3.9.2 設定密碼,以及遠端授權
Mysql 安裝完成之後,進入到mysql的命令
mysql -uroot
進入到mysql資料庫之後,設定mysql的密碼
update user set password=PASSWORD('root') where User='root';
修改密碼之後,查詢user表內容如下
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| root | hadoop03 | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| root | 127.0.0.1 | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| root | ::1 | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| | localhost | |
| | hadoop03 |
說明在本地已經成功設定好了密碼,通過新設定的密碼登入mysql
mysql -uroot -proot
發現登不了,出錯資訊如下
Access denied for user 'root'@'localhost' (using password: YES)
說明使用者名稱或者密碼不正確
設定遠端連線授權
在user表中存在欄位,host 該欄位表示可以訪問mysql 的路徑地址,從哪個節點可以訪問(遠端或者本地)由這個欄位來決定
所以要授權遠端登入,則需要修改host欄位,增加一條資訊,表示任意節點都可以訪問mysql
用%號來表示任意
update user set host='%' where user='root' and host='127.0.0.1';
完成以上語句之後,需要對修改的user進行重新整理生效語句操作
flush privileges;
完成以上操作之後驗證 mysql 使用者登入,可以正常的登入成功
3.9.3 配置hive後設資料儲存在mysql
需要在hive-site配置檔案中進行配置 ,具體的配置資訊如下:
1 設定hive連線mysql的URL
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop01:3306/metastore?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
Metastore: 預設儲存hive中的後設資料,是一個資料庫的名字
2 設定JDBC的驅動類
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
3 設定mysql的使用者名稱
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>Username to use against metastore database</description>
</property>
4 設定mysql的密碼
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
<description>password to use against metastore database</description>
</property>
完成以上的配置之後,需要在hive/lib 存放jdbc的驅動包
對於上傳的驅動包,最好修改以下許可權
sudo chown -R hadoop:hadoop mysql-connector-java-5.1.31.jar
把驅動拷貝到hive目錄下的lib資料夾下
cp mysql-connector-java-5.1.31.jar /opt/app/apache-hive-1.2.1-bin/lib/
到hive的lib下檢查是否拷貝成功
以上的步驟就步驟配置完成,退出hive重新登入,檢查mysql中是否建立了matesotre資料庫,如果建立成功,則說明配置成功
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| metastore |
| mysql |
| performance_schema |
| test |
+--------------------+
檢視mysql show databases 發現如上metastore 資料庫建立成功
相關文章
- 大資料元件-Hive部署基於MySQL作為後設資料儲存大資料元件HiveMySql
- Hive:資料倉儲構建步驟Hive
- 【Hive一】Hive安裝及配置Hive
- MySQL資料庫安裝步驟-WindowsMySql資料庫Windows
- 掌握Hive資料儲存模型Hive模型
- Hive安裝配置Hive
- mysql安裝教程8.0.26 安裝mysql的步驟和方法MySql
- MySQL的安裝步驟(詳細)MySql
- Suse Linux 10中MySql安裝與配置步驟LinuxMySql
- Linux環境Hive安裝配置及使用LinuxHive
- hive(4)——後設資料概述Hive
- Hive學習之Hive的安裝Hive
- 黑猴子的家:Hive 資料倉儲位置配置Hive
- mysql資料庫安裝及預設儲存路徑修改方法MySql資料庫
- Hive的安裝Hive
- Jaspersoft?Studio新增mysql資料庫配置步驟MySql資料庫
- Hive安裝Hive
- 將資料匯入kudu表(建立臨時hive表,從hive匯入kudu)步驟Hive
- jdk、tomcat、mysql軟體的安裝步驟JDKTomcatMySql
- hive檔案儲存格式Hive
- Sqoop將MySQL資料匯入到hive中OOPMySqlHive
- Centos7安裝配置Hive教程。CentOSHive
- Hadoop之Hive本地與遠端mysql資料庫管理模式安裝手冊HadoopHiveMySql資料庫模式
- zookeeper:spark-project專案的hive和mysql配置SparkProjectHiveMySql
- hive初始化mysql資料庫失敗的原因HiveMySql資料庫
- 爬蟲系列:使用 MySQL 儲存資料爬蟲MySql
- CentOS安裝MySQL5.5的完整步驟DSITCentOSMySql
- Jaspersoft?Studio新增mysql資料庫配置步驟特破MySql資料庫
- 基於Hive進行數倉建設的資源後設資料資訊統計:Hive篇Hive
- MySQL概述以及MySQL的安裝以及啟動MySql
- 【Hive】hive資料遷移Hive
- mysql 8 windows 版本zip方式安裝步驟MySqlWindows
- 數倉小組作業(一)Mac 安裝JDK、Mysql、Hadoop、HiveMacJDKMySqlHadoopHive
- MySQL儲存毫秒資料的方法MySql
- 【HIVE】hive 使用shell指令碼跑歷史資料Hive指令碼
- 重新學習Mysql資料庫3:Mysql儲存引擎與資料儲存原理MySql資料庫儲存引擎
- 好程式設計師大資料學習路線之hive儲存格式程式設計師大資料Hive
- 好程式設計師大資料培訓分享之hive儲存過程程式設計師大資料Hive儲存過程