Hive是基於Hadoop的一個數據倉庫工具,能夠將結構化的數據文件映射爲一張數據庫表,並提供簡單的[SQL]查詢功能,能夠將SQL語句轉換爲MapReduce任務進行運行。其優勢是學習成本低,能夠經過類SQL語句快速實現簡單的MapReduce統計,沒必要開發專門的MapReduce應用,十分適合數據倉庫的統計分析。java
它提供了一系列的工具,能夠用來進行數據提取轉化加載(ETL),這是一種能夠存儲、查詢和分析存儲在 Hadoop 中的大規模數據的機制。Hive 定義了簡單的類 SQL 查詢語言,稱爲 HQL,它容許熟悉 SQL 的用戶查詢數據。同時,這個語言也容許熟悉 MapReduce 開發者的開發自定義的 mapper 和 reducer 來處理內建的 mapper 和 reducer 沒法完成的複雜的分析工做。mysql
Hive 沒有專門的數據格式。 Hive 能夠很好的工做在 Thrift 之上,控制分隔符,也容許用戶指定數據格式。git
Apache Hive起初由[Facebook]開發,目前也有其餘公司使用和開發Apache Hive,例如[Netflix]等。亞馬遜公司也開發了一個定製版本的Apache Hive,亞馬遜網絡服務包中的Amazon Elastic MapReduce包含了該定製版本。github
Hadoop版本 hadoop-2.6.0-cdh5.7.0sql
MySQL版本 數據庫
mysql-connector-java 5.1.37apache
Hive版本 2.3.4vim
官網下載安全
將安裝包移動至: ../hadoop-2.6.0-cdh5.7.0/ 目錄下,此目錄是本地安裝Hadoop的目錄bash
移動至此處後,解壓縮
並將解壓後的文件名改成hive,方便配置。
例如本機Hive的安裝路徑爲
// 或者修改/etc/profile文件
vim ~/.bash_profile
複製代碼
添加內容
export HIVE_HOME=/Volumes/doc/hadoop-2.6.0-cdh5.7.0/hive
export PATH=$PATH:$HIVE_HOME/bin:$HIVE_HOME/conf
複製代碼
退出保存後,在終端輸入,使環境變量當即生效
source ~/.bash_profile
複製代碼
在 ../hive/conf下
添加hive-site.xml
內容
複製hive-env.sh.template爲hive-env.sh
修改hive-env.sh內容
grant all privileges on 庫名.表名 to '用戶名'@'IP地址' identified by '密碼' with grant option;
flush privileges;
複製代碼
庫名:要遠程訪問的數據庫名稱,全部的數據庫使用「」 表名:要遠程訪問的數據庫下的表的名稱,全部的表使用「」 用戶名:要賦給遠程訪問權限的用戶名稱 IP地址:能夠遠程訪問的電腦的IP地址,全部的地址使用「%」 密碼:要賦給遠程訪問權限的用戶對應使用的密碼
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
複製代碼
使改變當即生效:
FLUSH PRIVILEGES;
複製代碼
解壓後,將此文件夾下mysql-connector-java-8.0.15.jar
複製到../hive/lib下
注意:須要給/tmp文件夾設置寫權限,同時確保 hadoop不在安全模式下,能夠執行此命令使hadoop退出安全模式:hadoop dfsadmin -safemode leave
在命令行運行 hive 命令時必須保證HDFS 已經啓動。可使用 start-dfs.sh 腳原本啓動 HDFS。
schematool -dbType mysql -initSchema
複製代碼