一、解壓hive到hadoop的source目錄下html
二、配置環境變量java
export HIVE_HOME=/usr/local/hadoop/hive export HIVE_CONF_DIR=$HIVE_HOME/conf export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib export PATH=$PATH:$HIVE_HOME/bin
三、配置教程參考地址:http://www.cnblogs.com/bjtu-leefon/p/3170044.html (不能徹底參考) mysql
1)更改用戶權限。在終端中輸入以下命令:sql
sudo chown -R hadoop:hadoop hive
2)進入hive的conf目錄數據庫
複製hive-default.xml.template文件兩次,將文件名分別更改成,hive-default.xml和hive-site.xml,hive-default.xml爲hive默認配置文件,不須要修改,hive-site.xml爲用戶自定義配置文件,在啓動hive時用戶自定義修改的部分會覆蓋默認配置。服務器
3)在hive的目錄下,新建warehouse、tmp、log文件夾。oracle
此時修改hive-site.xml中的對應路徑。oop
<property> <name>hive.metastore.warehouse.dir</name> <value>修改成warehouse文件夾路徑(例如:/usr/local/hadoop/hive/warehouse) </value> <description>location of default database for the warehouse</description> </property>
<property> <name>hive.querylog.location</name> <value>修改成log文件夾的路徑(例如:/usr/local/hadoop/hive/log)</value> <description> Location of Hive run time structured log file </description> </property>
<property> <name>hive.downloaded.resources.dir</name> <value>修改成tmp文件夾的地址(例如:/usr/local/hadoop/hive/tmp</value> <description>Temporary local directory for added resources in the remote file system.</description> </property>
4)進入hive的conf目錄post
複製hive-env.sh.template更更名字爲hive-env.sh優化
修改hive-env.sh的內容。
將export HADOOP_HEAPSIZE=1024前面的‘#’去掉,固然能夠根據本身的環境對這個默認的1024進行優化;
將export HADOOP_HOME前面的‘#’號去掉,並讓它指向所安裝hadoop的目錄,例如:/usr/local/hadoop
export HIVE_CONF_DIR、export HIVE_AUX_JARS_PATH同理,配置相應路徑。
將export HIVE_CONF_DIR=/usr/local/hadoop/hive/conf,而且把‘#’號去掉;
將export HIVE_AUX_JARS_PATH=/usr/local/hadoop/hive/lib,而且把‘#’號去掉。
四、初始化元數據庫
本例中將初始化元數據爲遠程mysql(同時替換內置derby元數據庫爲mysql)
未初始化數據庫會報以下錯誤:
Exception in thread 「main」 java.lang.RuntimeException: Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType …) to create the schema.
運行./schematool -initSchema -dbType ...命令初始化元數據
-dbType後跟的相關參可選:derby|mysql|postgres|oracle
derby數據庫爲hive的內置數據庫,不須要修改配置文件,若是使用mysql,須要修改配置文件:
參考教程:http://www.cnblogs.com/linjiqin/archive/2013/03/04/2943025.html
1)新建mysql數據庫hivedb,並創建用戶hivedb,設置密碼
2)修改hive-site.xml中本來爲derby的配置項
修改內容以下:
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://遠程mysql服務器IP地址:3306/hivedb</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hivedb(mysql用戶名)</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hivedb(mysql用戶密碼)</value> </property>
3)由於上面配置了com.mysql.jdbc.Driver,因此須要引入mysql-connector-java-5.1.27.jar,將jar包放入hive目錄下的lib文件夾中。
4)在進入hive目錄下的bin目錄,運行命令:./schematool -initSchema -dbType mysql
運行成功,結果以下:
5)而後輸入hive,啓動hive,出現輸入框即啓動成功。
6)進一步驗證:
1)在Hive上創建數據表
hive> CREATE TABLE test(id INT,name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
2)在hive輸入框中輸入 show tables 命令,查看是否顯示錶test。
3)從 MySQL 數據庫上查看元數據信息,從mysql的終端輸入命令
select * from tbls
查看是否顯示錶test的相關信息,顯示,即建表成功。
五、啓動報錯:
Logging initialized using configuration in jar:file:/usr/local/hadoop/hive/lib/hive-common-2.1.0.jar!/hive-log4j2.properties Async: true
Exception in thread "main" java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwxr-xr-x
權限問題,解決方案:
輸入命令:hadoop fs -chmod -R 777 /tmp/hive