hive是基于Hadoop的一個資料倉庫工具,可以将結構化的資料檔案映射為一張資料庫表,并提供簡單的sql查詢功能,可以将sql語句轉換為MapReduce任務進行運作。 其優點是學習成本低,可以通過類SQL語句快速實作簡單的MapReduce統計,不必開發專門的MapReduce應用,十分适合資料倉庫的統計分析。
1.安裝前提
hive必須在已經安裝了hadoop、jdk才能安裝,由于hive作為hadoop的一個用戶端,運作方式并不分為單機模式、僞分布模式、完全分布模式,是以不管hadoop的方式是單機模式還是完全分布模式,安裝hive的方式隻有一種。
安裝hive的步驟分為以下兩步:
(1).安裝中繼資料庫(已經安裝了mysql資料庫)
hive的中繼資料和資料是分開存放的,資料存放在hdfs上,而中繼資料預設是存在hive自帶的Derby資料庫,但是由于Derby隻支援同時一個使用者通路hive,
是以不推薦使用,我們将使用mysql做為hive的中繼資料庫
(2).修改hive配置檔案
2.安裝hive
tar zxvf hive-1.1.0-cdh5.9.0.tar.gz
mv hive-1.1.0-cdh5.9.0 /usr/local/
3.設定環境變量
vim /etc/profile
export HIVE_HOME=/usr/local/hive-1.1.0-cdh5.9.0
export PATH=$PATH:$HIVE_HOME/bin
使得環境變量生效
source /etc/profile
4.修改hive-site.xml檔案
cd /usr/local/hive-1.1.0-cdh5.9.0/conf
vim 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://10.2.10.200: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>user</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>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
</configuration>
5.修改hive-env.sh檔案
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_65
export HADOOP_HOME=/usr/hadoop
6.在hdfs上建立目錄
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -chmod g+w /user/hive/warehouse
7.在mysql中建立資料庫
CREATE DATABASE hive;
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
ALTER DATABASE hive CHARACTER SET latin1;
8.手動上傳mysql的jdbc庫到hive/lib
9.啟動hive
cd /usr/local/hive-1.1.0-cdh5.9.0
hive