準備工作
- 1.搭建好的Hadoop分佈式系統
- 2.apache-hive-1.2.1-bin.tar.gz和mysql-connerctor-java-5.1.43-bin.jar
在mysql數據庫上創建hive數據庫用於保存hive元數據
#mysql -u root -p
>輸入密碼
mysql>create database hive;
安裝
解壓apache-hive-1.2.1-bin.tar.gz
#tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /usr/local/hadoop/
#cd /usr/local/hadoop
#mv apache-hive-1.2.1-bin hive-1.2.1
注:/usr/local/hadoop是我的hive安裝路徑
配置
1.由於hive需要訪問mysql數據庫上的元數據,所以需要導入mysql-connerctor-java-5.1.43-bin.jar到hive-1.2.1/lib目錄下。
2.編輯配置文件
#cd /usr/local/hadoop/hive-1.2.1/conf
#vim hive-site.xml
添加如下記錄
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://123.207.101.174:3306/hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>用戶名</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>密碼</value>
</property>
</configuration>
- 3.將hive導入環境變量
#vim /etc/profile
添加如下記錄
HIVE_HOME=/usr/local/hadoop/hive-1.2.1
export PATH=$HIVE_HOME/bin:$PATH
使配置文件生效
#source /etc/profile
配置簡單查詢的Fetch Task功能
簡單查詢:沒有排序,沒有函數的查詢稱爲簡單查詢。
Fetch Task功能:使用該功能執行簡單查詢,查詢語句將不會被轉化爲MapReduce任務,而是直接在HDFS文件中查詢數據,提高了簡單查詢的效率。
配置Fetch Task功能的方式:
- hive>set hive.fetch.task.conversion=more;
或
- #hive –hiveconf hive.fetch.task.conversion=more
或
- 修改配置文件hive-site.xml 添加如下記錄:
<property>
<name>hive.fetch.task.conversion</name>
<value>more</value>
</property>
驗證
在linux下輸入hive進入命令行模式
# hive
之前,我們在mysql數據庫上創建了一個用於保存hive元數據的hive數據庫,此時,當看到如上顯示的時候,我們就可以去檢查一下hive數據庫中的元數據表是否創建成功,如果創建成功則會有如下顯示:
可以看到,之前創建的hive數據庫中初始化了一些保存元數據的元數據表。