Hive在大數據中佔有很重要的地位,他作爲HDFS中的數據引擎,把sql語句轉化爲MapReduce程序,提交到hadoop中執行。對於沒有接觸過大數據的開發人員來說,只要會普通的sql語句就可以很方便的來操作HDFS。在使用HUE的web操作工作臺中,可以很容易的開發出複雜的Hive語句,實現一系列的功能。
準備
tar -zxvf apache-hive-2.3.0-bin.tar.gz -C ~/training
設置環境變量
HIVE_HOME=/root/training/apache-hive-2.3.0-bin
export HIVE_HOME
PATH=$HIVE_HOME/bin:$PATH
export PATH
核心配置文件:conf/hive-site.xml 。
Hive在官網中有兩種安裝模式,嵌入模式和本地模式(Local/Embeddeb / Remote Metastore database)
https://cwiki.apache.org/confluence/display/Hive/AdminManual+Metastore+Administration
1、嵌入模式
(*)不需要MySQL的支持,使用Hive的自帶的數據庫Derby
(*)侷限:只支持一個連接
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=metastore_db;create=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.apache.derby.jdbc.EmbeddedDriver</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>file:///root/training/apache-hive-2.3.0-bin/warehouse</value>
</property>
</configuration>
初始化Derby數據庫
schematool -dbType derby -initSchema
日誌
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
2、本地模式、遠程模式:需要MySQL
(*)重新創建hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hiveowner</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>Welcome_1</value>
</property>
</configuration>
(*)將mysql的jar包放到lib目錄下
注意一定要使用高版本的MySQL驅動(5.1.43以上的版本)
(*)初始化MySQL
(*)老版本:當第一次啓動HIve的時候 自動進行初始化
(*)新版本:schematool -dbType mysql -initSchema
Starting metastore schema initialization to 2.3.0
Initialization script hive-schema-2.3.0.mysql.sql
Initialization script completed
schemaTool completed
Hive啓動