Hive是一個SQL解析引擎,他能夠將sql轉化爲 TEZ、mapreduce、spark 等計算框架而且提交到yarn等資源調度平臺上進行計算。它藉助於MySQL數據庫對hdfs上的文件進行表的映射,從而知道表的文件格式、分區字段、字段類型等等信息。java
切換引擎的方式 set hive.execution.engine=tez set hive.execution.engine=mr
用來作離線數據分析,比直接用mapreduce開發效率更高,由於只須要寫SQL語句,自定翻譯成MapReduce。mysql
一、Hive中有一個引擎,用於解析SQL語句而且翻譯成MapReduce程序。而sql語句能夠來源於:web、cli、jdbc/odbc等。hive的元數據存儲在一個數據庫中(mysql、oracle等)其實就是一些映射關係,好比須要分析的數據在hdfs的哪裏,按什麼分段,有哪些字段等等。真正的分析數據在HDFS上。web
二、使用的必要條件:用戶必須指定:讀取文件的方式(Hive 中默認有三個文件格式 TextFile,SequenceFile 以及 RCFile)、行分隔符、列分隔符。sql
HIVE是一個hdfs的數據倉庫工具,不是分佈式的,直接解壓就可以使用。shell
一、解壓hive數據庫
二、解決一下版本不兼容問題:替換 /root/apps/hadoop/share/hadoop/yarn/lib中的老版本jline 爲hive的lib中的jline-2.12.jar服務器
三、在安裝目錄下的conf中vi hive-site.xml ====>爲了指向mysql數據庫來存儲元數據。oracle
<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>
四、啓動交互式shell模式app
hive/bin/hive 就能夠鏈接上了。
五、若是想做爲一個服務器,給其餘的客戶端鏈接,則須要啓動:框架
bin/hiveserver2 而後再其餘的機器用 hive/bin/beeline 回車 beeline> !connect jdbc:hive2//hadoop1:10000