以前的文章帶你們一塊兒從hadoop最開始的搭建,到最終寫一個MapReduce結尾,相信你們也基本瞭解什麼是hadoop。固然了現現在的開發,基本少不多有人寫MapReduce,由於寫起來太麻煩了,又是map,又是reduce,還要寫運行的客戶端。程序猿們太喜歡偷懶了,因此hive就出現了java
Hive是一個數據倉庫基礎工具在Hadoop中用來處理結構化數據。它架構在Hadoop之上,總歸爲大數據,並使得查詢和分析方便。並提供簡單的sql查詢功能,能夠將sql語句轉換爲MapReduce任務進行運行.mysql
是的,你沒有看錯,hive就是把sql語句轉換爲咱們MapReduce任務的,因此作hive開發徹底能夠不懂編程,只須要會寫sql語句就能夠了。linux
貼一張hive的結構圖,你們能夠體會如下web
Hive不是爲在線事務處理而設計。它最適合用於傳統的數據倉庫任務sql
接下來就帶你們在CenterOS7
上搭建一下Hive環境數據庫
元熟悉信息被存儲在Hive自帶的Derby數據庫中編程
只容許建立一個鏈接api
多用於Demo安全
元數據信息被存儲在MySQL數據庫中bash
MySQL數據庫與Hive運行在同一臺物理機器上
多用於開發和測試
Hive與Mysql安裝在不一樣的操做系統上
在這裏就給搭建演示本地模式安裝,元數據存在mysql中
tar -zxvf xxxxx
命令解壓,而後經過如下命令建立一個臨時目錄mkdir hive_tmpdir
爲後面配置作準備hive-default.xml.template
爲hive-site.xml
文件cp hive-default.xml.template hive-site.xml
複製代碼
hive-site.xml
文件將全部的${system:java.io.tmpdir}
替換爲第一步建立的臨時目錄hive_tmpdir
若是後面還接的有相似這樣引用的變量${},能夠直接刪除
如:
<property>
<name>hive.exec.local.scratchdir</name>
#<value>${system:java.io.tmpdir}/${system:user.name}</value>
<value>/home/mmcc/hive_tmpdir</value>
</property>
...
複製代碼
而後將hive.metastore.schema.verification
的值設置爲false,取消metastore驗證, 再將datanucleus.schema.autoCreateTables
設置爲true,自動在數據庫裏建表。 其次配置咱們的mysql數據庫,關於mysql的安裝你們能夠自行研究。 依然是在hive-site.xml
中
<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>123456</value> #數據庫密碼
<description>password to use against metastore database</description>
</property>
複製代碼
配置好hive-site.xml
以後保存退出。
到這裏關於準備配置及一些準備工做就已經完成了,接下來就能夠正式進行啓動的流程了。首先關閉hadoop的安全模式,避免出現沒必要要的錯誤,執行命令hdfs dfsadmin -safemode leave
,而後執行如下命令進行啓動。
#啓動hive的metastore服務
[root@master bin]# ./hive --service metastore &
#初始化元數據爲mysql數據庫(只有第一次須要),這一步完成後,在mysql裏其實就會生成hive表
[root@master bin]# ./schematool -dbType mysql -initSchema #
#接下來能夠直接運行hive了
[root@master bin]# ./hive
複製代碼
而後咱們就進入到了hive的命令行模式,就能夠作hive的執行操做了。