我的Hadoop版本是1.2.0,mysql版本是5.6.12.
先介紹一下嵌入式derby模式:
1.下載/解壓
在hive官網上選擇要下載的版本,我選擇的版本是hive-0.10.0.
下載好解壓到:/usr/local/hadoop,因為我的hadoop安裝在了這個文件下
leefon@ubuntu:~/Download$ sudo tar xzf hive-0.10.0.tar.gz -C /usr/local/hadoop leefon@ubuntu:~/Download$ cd /usr/local/hadoop
之后便可以在/usr/local/hadoop目錄下看到hive-0.10.0文件夾,將其更名為hive,並將用戶權限更改為hadoop
leefon@ubuntu:/usr/local/hadoop$ sudo mv hive-0.10.0 hive leefon@ubuntu:/usr/local/hadoop$ sudo chown -R hadoop:hadoop hive
2.為hive添加環境變量
在/etc/profile中修改
leefon@ubuntu:/usr/local/hadoop$ sudo vim /etc/profile
添加:HIVE_HOME,下面是我在/etc/profile設置的環境變量:
修改之后,保存,退出,然后執行
leefon@ubuntu:/usr/local/hadoop$ source /etc/profile
使其立即生效。
3.修改hive的配置文件
hive的配置文件放在HIVE_HOME/conf目錄下,我們需要修改hive-env.sh和hive-site.xml這兩個文件。ls之后發現並沒有這兩個文件,但是有hive-env.sh.template,hive-default.xml.template,我們須復制這兩個文件,並分別命名為hive-env.sh,hive-site.xml。一般還有一個hive-default.xml文件,同樣由hive-default.xml.template復制而來。hive-default.xml是默認配置,hive-site.xml是個性化配置,將會覆蓋hive-default.xml配置。切換到hadoop用戶下,並復制兩個文件:
leefon@ubuntu:/usr/local/hadoop/hive/conf$su hadoop
輸入hadoop用戶的密碼:
hadoop@ubuntu:/usr/local/hadoop/hive/conf$cp hive-default.xml.template hive-default.xml
hadoop@ubuntu:/usr/local/hadoop/hive/conf$cp hive-default.xml.template hive-site.xml
hadoop@ubuntu:/usr/local/hadoop/hive/conf$cp hive-env.sh.template hive-env.sh
- 配置hive-env.sh
用vim打開
將export HADOOP_HEAPSIZE=1024前面的‘#’去掉,當然可以根據自己的環境對這個默認的1024進行優化;
將export HADOOP_HOME前面的‘#’號去掉,並讓它指向您所安裝hadoop的目錄,我的/usr/local/hadoop;
將export HIVE_CONF_DIR=/usr/local/hadoop/hive/conf,並且把‘#’號去掉;
將export HIVE_AUX_JARS_PATH=/usr/local/hadoop/hive/lib,並且把‘#’號去掉。
esc(鍵) :wq
source ./hive-env.sh(生效文件)
- 配置hive-site.xml
首先創建相應的目錄,以便與配置文件的路徑相對應:
hadoop@ubuntu:/usr/local/hadoop/hive$ mkdir /usr/local/hadoop/hive/warehouse hadoop@ubuntu:/usr/local/hadoop/hive$ mkdir /usr/local/hadoop/hive/log
vim hive-site.xml,需要修改三處:
<property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> <description>location of default database for the warehouse</description> </property> #臨時文件目錄,這個沒有可以添加進去 <property> <name>hive.exec.scratdir</name> <value>/usr/local/hadoop/hive/tmp</value> </property> #存放hive相關日志的目錄 <property> <name>hive.querylog.location</name> <value>/usr/local/hadoop/hive/log</value> <description> Location of Hive run time structured log file </description> </property>
其余的使用默認的就行。
還有一個重要的修改,否則啟動會報警告
hadoop@ubuntu:/usr/local/hadoop/hive$ bin/hive
WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated. Please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.
解決的辦法就是在 hive-log4j.properties 中將 log4j.appender.EventCounter 的值修改為
org.apache.hadoop.log.metrics.EventCounter,這樣就不會報。該文件同樣在目錄HIVE_HOME/conf下面。
4.啟動hive
hadoop@ubuntu:/usr/local/hadoop/hive$ bin/hive
hadoop@ubuntu:/usr/local/hadoop/hive$ hive> show tables;
下面是配置mysql模式下的Hive
1.為mysql專門為hive添加用戶
mysql> CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost' WITH GRANT OPTION;
2.修改配置文件hive-site.xml
<property> <name>hive.metastore.local</name> <value>true</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost: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>hive</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hive</value> <description>password to use against metastore database</description> </property>
3.添加jdbc的jar包
在mysql的官網上下載jdbc,我使用的版本是5.1.25。解壓,拷貝到HIVE _HOME/lib目錄下
leefon@ubuntu:~/Download$ tar -xvzf mysql-connector-java-5.1.25.tar.gz leefon@ubuntu:~/Download$ cp mysql-connector-java-5.1.25/*.jar /usr/local/hadoop/hive/lib
4.啟動hive
hadoop@ubuntu:/usr/local/hadoop/hive$ bin/hive
hadoop@ubuntu:/usr/local/hadoop/hive$ hive> show tables;
參考: http://www.cnblogs.com/inuyasha1027/archive/2013/02/14/2911182.html
http://www.cnblogs.com/linjiqin/archive/2013/03/04/2942402.html
http://www.fuzhijie.me/?p=377
http://visionsky.blog.51cto.com/733317/898497
http://running.iteye.com/blog/908038