環境:Ubuntu14.04
hadoop-1.2.1
1,下載解壓縮Hive
下載地址:http://mirrors.cnnic.cn/apache/hive/hive-0.12.0/ 版本是hive-0.12.0
解壓:tar -xvzf hive-0.12.0.tar.gz /opt/hive
更改hive文件夾所有者爲hadoop用戶:chown -R hadoop hive
2,配置環境參數
vim /etc/profile
添加以下內容:
HIVE_HOME=/opt/hive
PATH=$HIVE_HOME/bin:$PATH
export HIVE_HOME
export PATH
使更改生效:source /etc/profile
3,更改配置文件
1,更改/opt/hive/conf/hive-env.sh.tmplate中的 HADOOP_HOME=/opt/hadoop
然後複製並改hive-env.sh.template爲hive-env.sh : cp hive-env.sh.template hive-env.sh
並加上可執行權限:chmod +777 hive-env.sh
2,在hdfs中創建/tmp文件夾和/user/hive/warehouse文件夾並給予一定的權限
hadoop fs -mkdir /tmp
hadoop fs -mkdir /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/tmp/warehouse
3,將/opt/hive/conf/hive-default.xml.tmplate複製兩份,一份爲hive-default.xml作爲備份,一份爲hive-site.xml做配置用。上面定義的/tmp和/user/hive/warehouse就在hive-site.xml中的屬性hive.metastore.warehouse.dir和hive.exec.scratchdir屬性指定。如果有修改也要記得修改配置文件。
4,運行hive如果進入
hive>
輸入命令show tables;
如果出現錯誤:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
將hive-site.xml文件中的
<property>
<name>hive.metastore.schema.verification</name>
<value>true</value>
<description>
</description>
</property>
true改爲false之後成功了。
在這種情況下,hive使用的是最簡單的元數據存儲方式,使用derby存儲元數據。但是我們要是使用mysql,所以接下來要配置mysql。
4,安裝mysql
參見http://www.cnblogs.com/linjiqin/archive/2013/03/04/2942497.html
5,配置mysql
1,爲hive創建mysql用戶首先用自己在安裝時設置的root用戶和密碼登陸mysql:
mysql -uroot -p<root-passwd>(root-passwd是你的root用戶的密碼)
mysql> create user 'hive' identified by 'hive-passwd' (hive-passwd自己設置的hive的密碼)
mysql> grant all privileges on *.* to 'hive'@'%' with grant option
mysql> flush privileges;
2,修改mysql的配置文件允許遠程登陸
vim /etc/mysql/my.cnf
將其中的
#bind-address = 127.0.0.1
這一行的註釋去掉
3,修改hive-site.xml
<configuration>
<property>
<name>hive.exec.scratchdir</name>
<value>/tmp/hive-${user.name}</value>
<description>Scratch space for Hive jobs</description>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/tmp/${user.name}</value>
<description>Local scratch space for Hive jobs</description>
</property>
<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.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<!--改成自己本機IP地址>
<value>jdbc:mysql://10.14.39.47/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive-passwd</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<!--解決一些版本問題>
<value>false</value>
</property>
</configuration>
其中javax.jdo.option.ConnectionURL填自己的IP地址
ConnectionUserName和ConnectionPassword填配置的訪問mysql的用戶和密碼
4,拷貝mysql的JDBC驅動包到hive的lib目錄下
cp mysql-connector-java-x.y.z-bin.jar /opt/hive/lib
mysql-connector-java-x.y.z-bin.jar包在官網可以下載http://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-5.1.33.tar.gz