1. 程式人生 > >大資料利用hive on spark程式操作hive

大資料利用hive on spark程式操作hive

                                                      hive on spark

作者:小濤

Hive是資料倉庫,他是處理有結構化的資料,當資料沒有結構化時hive就無法匯入資料,而它也是遠行在mr程式之上的基於磁碟計算,然而我們今天來讓hive遠行在spark上,基於記憶體計算,在基於記憶體來讓hive遠行在記憶體上這樣就比以前的快個幾十倍,現在讓我們一起來看看hive on spark吧!
首先要說說hive他的一些元資料資訊是儲存在mysql裡面的,所以我們首先要安裝mysql服務,而真實的資料是儲存在hdfs中的,本文作者的大資料叢集hadoop 2.8.7 spark 2.3.0
Scala 2.11 jdk 1.8.45 hive 1.2.2

安裝:mysql通過yum -y install mysql mysql-server
在這裡插入圖片描述
啟動:mysql服務service mysqld start,當啟動好以後可以在命令列直接登入mysql了,輸入mysql,但是這樣是不安全的我們需要給mysql初始化密碼跟設定密碼
在這裡插入圖片描述

在命令列輸入/usr/mysql_secure_installation,通過這個來設定密碼

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述
本文作者通過以上操作就把mysql的密碼初始化了,密碼是root123
通過mysql -u root -proot123就可以登入成功了
在這裡插入圖片描述
然後我們通過navicat來連線mysql的服務,這個時間可能連線不上服務,我們需要給相應的用授權
GRANT ALL PRIVILEGES ON .

TO ‘root’@’%’ IDENTIFIED BY ‘root123’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
如下圖就連線成功了mysql
在這裡插入圖片描述

現在我們解決hive的jar包,通過tar -zxvf hive-1.2.2-bin.tgz -C /apps/hive/
然後進入hive的目錄中找到hive的配置檔案,通過vim 來新建hive的元資料資訊庫的配置檔案,vim hive-site.xml
在這裡插入圖片描述
在這裡插入圖片描述

vim hive-site.xml的具體配置資訊如下
在這裡插入圖片描述

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://hadoop04: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>root123</value>
    <description>password to use against metastore database</description>
</property>

因為hive在啟動跟用的時間會連線mysql服務,所有我們需要將mysql的驅動jar包拷貝到hive的lib目錄下cp /etc/java/mysqljar/ mysql-connector-java-5.1.39.jar /apps/hive/lib/
在這裡插入圖片描述
這個時間我們就可以啟動hive了,進入bin目錄下,通過nohup ./hiveserver2 &在後臺啟動hive的服務端我們就可以任意通過各種客戶端去連線操作hive了
在這裡插入圖片描述
我們可以在hdfs行hive 的具體儲存資料的路徑跟具體資料
在這裡插入圖片描述

我們在我們的開發工具idea中新建一個專案叫hive on spark ,這個時間我們通過spark程式去操作hive了,需要把剛剛的hive配置檔案拷貝到配置檔案下如下圖所示
在這裡插入圖片描述

我們通過spark程式來新建一個表這個時間會報錯,說使用者的許可權不足,這個時間我們需要偽裝自己本機的使用者為root使用者去操作hive,報錯如下
在這裡插入圖片描述
我們通過hadoop中的一些引數來偽裝自己的身份,如圖
在這裡插入圖片描述
這個時間可以可以建立成功了這個表,如圖程式碼中有t_p02表的建立,程式碼遠行成功,我們看看是否遠行成功了,去hdfs的儲存目錄就知道了,如下

在這裡插入圖片描述
成功了我們的hive on spark程式
在這裡插入圖片描述

上面上建立表成功,我們來匯入資料吧,比如
在這裡插入圖片描述
192.168.159.11,2018-09-28,50000
192.168.159.123,2018-09-28,10000
192.168.159.11,2018-09-25,50000
192.168.159.123,2018-09-26,10000
192.168.159.11,2018-09-24,50000
192.168.159.123,2018-09-28,10000
192.168.159.16,2018-09-23,50000
192.168.159.133,2018-09-28,10000
192.168.159.11,2018-09-28,50000
192.168.159.193,2018-09-20,20000
192.168.159.11,2018-09-22,90000
192.168.159.83,2018-09-21,40000

通過spark程式把原始資料處理了,就寫入hive如下圖程式碼
在這裡插入圖片描述
Hive on spark 的遠行圖
在這裡插入圖片描述
我們在在讀取剛剛的資料,就這樣我們的hive on spark程式就圓滿成功了
在這裡插入圖片描述

其實hive我們完全可以不用hive的服務來支援,我們可以完全脫離hive來利用spark操作hive,敬請期待,下篇部落格文章的出現,如果喜歡樓主了,記得為我點贊,謝謝,有什麼問題請留言,謝謝!!!