HIVE精煉筆記總結——[啓示篇]

1.什麼是hive


hive基本思想

Hive是基於Hadoop的一個數據倉庫工具(離線),可以將結構化的數據文件映射爲一張數據庫表,並提供類SQL查詢功能。


Ø  直接使用hadoop所面臨的問題

人員學習成本太高

項目週期要求太短

MapReduce實現複雜查詢邏輯開發難度太大

 

Ø  爲什麼要使用Hive

操作接口採用類SQL語法,提供快速開發的能力。

避免了去寫MapReduce,減少開發人員的學習成本。

功能擴展很方便。


HIVE特點

Ø  可擴展

Hive可以自由的擴展集羣的規模,一般情況下不需要重啓服務。

 

Ø  延展性

Hive支持用戶自定義函數,用戶可以根據自己的需求來實現自己的函數。

 

Ø  容錯

良好的容錯性,節點出現問題SQL仍可完成執行。

 

2.  hive的基本架構


 

3.  hive安裝

3.1. 最簡安裝:用內嵌derby作爲元數據庫

準備工作:安裝hive的機器上應該有HADOOP環境(安裝目錄,HADOOP_HOME環境變量)

安裝:直接解壓一個hive安裝包即可

此時,安裝的這個hive實例使用其內嵌的derby數據庫作爲記錄元數據的數據庫

此模式不便於讓團隊成員之間共享協作


3.2. 標準安裝:將mysql作爲元數據庫

3.2.1.  mysql安裝

① 上傳mysql安裝包

② 解壓:

[root@mylove ~]#tar -xvf MySQL-5.6.26-1.linux_glibc2.5.x86_64.rpm-bundle.tar

 

③ 安裝mysql的server包

[root@mylove ~]#rpm -ivh MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm

依賴報錯:

缺perl

yum install perl

安裝完perl後 ,繼續重新安裝mysql-server

(可以配置一個本地yum源進行安裝:

1、先在vmware中給這臺虛擬機連接一個光盤鏡像

2、掛在光驅到一個指定目錄:mount-t iso9660 -o loop /dev/cdrom /mnt/cdrom

3、將yum的配置文件中baseURL指向/mnt/cdrom

 

[root@mylove ~]#rpm -ivh MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm

又出錯:包衝突conflict with

移除老版本的衝突包:mysql-libs-5.1.73-3.el6_5.x86_64

[root@mylove ~]#rpm -e mysql-libs-5.1.73-3.el6_5.x86_64 --nodeps

 

繼續重新安裝mysql-server

[root@mylove ~]#rpm -ivh MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm

 

成功後,注意提示:裏面有初始密碼及如何改密碼的信息

初始密碼:/root/.mysql_secret 

改密碼腳本:/usr/bin/mysql_secure_installation

 

④ 安裝mysql的客戶端包:

[root@mylove ~]#rpm -ivh MySQL-client-5.6.26-1.linux_glibc2.5.x86_64.rpm

 

⑤ 啓動mysql的服務端:

[root@mylove ~]#service mysql start

Starting MySQL.SUCCESS!

 

 

⑥ 修改root的初始密碼:

[root@mylove ~]#/usr/bin/mysql_secure_installation  按提示

 

⑦ 測試:

用mysql命令行客戶端登陸mysql服務器看能否成功

[root@mylove ~]#mysql -uroot -proot

mysql> showdatabases;

 

⑧ root用戶授予從任何機器上登陸mysql服務器的權限:

mysql> grant all privileges on *.* to 'root'@'%'identified by '你的密碼' with grantoption;

Query OK, 0 rows affected (0.00 sec)

 

mysql> flush privileges;

Query OK, 0 rowsaffected (0.00 sec)

注意點:要讓mysql可以遠程登錄訪問

最直接測試方法:從windows上用Navicat去連接,能連,則可以,不能連,則要去mysql的機器上用命令行客戶端進行授權:

在mysql的機器上,啓動命令行客戶端:

mysql -uroot -proot

mysql>grantall privileges on *.* to 'root'@'%' identified by 'root的密碼' withgrant option;
mysql>flush privileges;

 

 

3.2.2.  hive的元數據庫配置

vi conf/hive-site.xml

<configuration>

<property>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>

<description>JDBC connect string for a JDBC metastore</description>

</property>

 

<property>

<name>javax.jdo.option.ConnectionDriverName</name>

<value>com.mysql.jdbc.Driver</value>

<description>Driver class name for a JDBC metastore</description>

</property>

 

<property>

<name>javax.jdo.option.ConnectionUserName</name>

<value>root</value>

<description>username to use against metastore database</description>

</property>

 

<property>

<name>javax.jdo.option.ConnectionPassword</name>

<value>root</value>

<description>password to use against metastore database</description>

</property>

</configuration>

 

2、上傳一個mysql的驅動jar包到hive的安裝目錄的lib中

 

3、配置HADOOP_HOME 和HIVE_HOME到系統環境變量中:/etc/profile

4、source/etc/profile

5、hive啓動測試

然後用命令啓動hive交互界面:  

[root@hdp20-04 ~]# hive

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章