环境: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