for my honey!
1、前言
安裝hive前提是要先安裝hadoop集群,并且hive只需要再hadoop的namenode節(jié)點集群里安裝即可,可以不在datanode節(jié)點的機器上安裝。另外還需要說明的是,雖然修改配置文件并不需要你已經把hadoop跑起來,但是本文中用到了hadoop命令,在執(zhí)行這些命令前你必須確保hadoop是在正常跑著的,而且啟動hive的前提也是需要hadoop在正常運行,所以建議先將其他基礎環(huán)境安裝好,hive安裝的環(huán)境基礎包括:
Hadoop-2.7.3
JDK-1.8.0_92
Spark-2.1.1-bin-hadoop2.7
2、下載hive
下載地址:http://hive.apache.org/downloads.html
點擊圖中的Download a release now!

按照步驟找到作一鏡像,使用wget命令下載
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.1.1/apache-hive-2.1.1-bin.tar.gz
3、安裝HIVE
#假設hive安裝文件放在/data/soft目錄下
#本集群將hive安裝到/data/spark目錄下
#進入安裝目錄
cd /data/spark
#解壓hive
tar -zxvf /data/soft/apache-hive-2.1.1-bin.tar.gz
#切換至root賬戶配置hive環(huán)境變量
vim /etc/profile
export HIVE_HOME=/data/soft/apache-hive-2.1.1
export HIVE_CONF_DIR=$HIVE_HOME/conf
export PATH=$PATH:$HIVE_HOME/bin
#root賬戶下使配置文件的修改生效
source /etc/profile
4、配置hive文件
4.1、修改HIVE配置文件
#進入hive配置文件存放目錄
cd /data/soft/apache-hive-2.1.1-bin/conf
#把初始化的文件 復制一份出來 并且改名
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
4.2、修改hive-env.sh
#打開hive-env.sh文件
vim hive-env.sh
#hadoop_home路徑
HADOOP_HOME=/data/spark/hadoop-2.7.3
#hive配置文件存放路徑
export HIVE_CONF_DIR=/data/spark/apache-hive-2.1.1-bin/conf
#hive相關jar存放路徑
export HIVE_AUX_JARS_PATH=/data/spark/apache-hive-2.1.1-bin/lib
4.3、在hdfs中創(chuàng)建文件并授權
#hive中存儲的數(shù)據(jù)和產生的臨時文件需要存儲在hdfs中,因此需要再hdfs中創(chuàng)建相應文件
#存放hive中具體數(shù)據(jù)目錄
hadoop fs -mkdir /data/hive/warehouse
#存放hive運行產生的臨時文件
hadoop fs -mkdir /data/hive/tmp
#存放hive日志文件
hadoop fs -mkdir /data/hive/log
#修改文件權限
hadoop fs -chmod -R 777 /data/hive/warehouse
hadoop fs -chmod -R 777 /data/hive/tmp
hadoop fs -chmod -R 777 /data/hive/log
4.4、修改hive-site.xml文件
#設置hive數(shù)據(jù)存儲目錄、臨時目錄、日志存放目錄
<property>
??<name>hive.exec.scratchdir</name>
??<value>hdfs://master:9000/data/hive/temp</value>
</property>
<property>
?? <name>hive.metastore.warehouse.dir</name>
??<value>hdfs://master:9000/data/hive/warehouse</value>
</property>
<property>
??<name>hive.querylog.location</name>
??<value>hdfs://master:9000/data/hive/log</value>
</property>
<!—該配置是關閉hive元數(shù)據(jù)版本認證,否則會在啟動spark程序時報錯-->
<property>
??<name>hive.metastore.schema.verification</name>
??<value>false</value>
</property>
注:1、在配置hdfs文件路徑時必須填寫完整的hdfs絕對路徑,如hdfs://master:9000/data/hive/temp
master:9000為集群namenode所在節(jié)點的IP和端口號
2、以上配置需要再hive-site.xml文件中找到需要配置的參數(shù),
并修改其默認值。如果只是復制以上配置到hive-site.xml
文件會在運行時被默認值覆蓋而無法運行
4.5、 修改hive-site.xml文件中mysql連接庫配置
#由于本集群采用mysql存儲hive元數(shù)據(jù)信息,因此需要配置mysql連接信息
<!—配置mysql IP 端口以及放元數(shù)據(jù)的庫名稱-->
<property>
??<name>javax.jdo.option.ConnectionURL</name>
??<value>jdbc:mysql://000.000.000.000:3036/hive?createDatabaseIfNotExist=true</value>
</property>
<!—配置mysql啟動器名稱 -->
<property>
??<name>javax.jdo.option.ConnectionDriverName</name>
?? <value>com.mysql.jdbc.Driver</value>
</property>
<!—配置連接mysql用戶名 -->
<property>
??<name>javax.jdo.option.ConnectionUserName</name>
??<value>******</value>
</property>
<!—配置連接mysql用戶名登錄密碼-->
<property>
??<name>javax.jdo.option.ConnectionPassword</name>
??<value>********</value>
</property>
注:1、同樣以上配置信息需要找到hive-site.xml文件中相應的配置屬性,并修改為相應的值
2、連接mysql的用戶名必須擁有很高的操作mysql的權限否則初始化時會提示權限不足
4.6、修改hive-site.xml臨時文件目錄
1、在本地創(chuàng)建一文件
??mkdir $HIVE_HOME/temp
2、在配置文件 hive-site.xml 里面
??把{system:java.io.tmpdir}改成$HIVE_HOME/tmp/
??把{system:user.name}改成{user.name}
4.7、配置JDBC驅動包
1、下載jdbc驅動包
?地址https://dev.mysql.com/downloads/connector/j/5.1.html
2、 解壓后將jdbc-connector-java.jar文件拷貝到 $HIVE_HOME/lib文件夾下
5、HIVE運行
1、 初始化hive元數(shù)據(jù)
??$HIVE_HOME/bin/schematool -dbType mysql –initSchema
2、 后臺運行hiveserver2服務
??$HIVE_HOME/bin/hive --service hiveserver2&
3、 啟動beeline
??beeline
4、 連接hive
??!connect jdbc:hive2://master:10000/default