版本:hive-0.12.0 Hadoop0.20.2
一、进入hive包所有的目录,解压:sudo tar -xvf hive-0.12.0.tar.gz
二、把文件夹的名字改改,改成hive,并且移动到/usr/local/目录下
三、接下来就是配置Hive了
在hive-config.sh文件末尾加入三行:
配置jdk不用讲了吧,Hive也是Java编写的;
而这里配置HADOOP_HOME需要讲一下:因为Hive是建立在Hadoop之上的,即是Hive依赖于Hadoop,在执行hive命令的时候,它会自动去寻找HADOOP_HOME,如果没找到,则报错!!
四、接下来我们配置hive-site.xml文件:
1、为了方便起来,我们复制hive-default.xml.template重命令为hive-site.xml,并且在这上面修改;
执行以下命令:sudo cp hive-default.xml.template hive-site.xml
2、改变 /usr/local/hive的目录所有者为xxx(这里的xxx,表示用户):
黄色框框的“jimmy:jimmy”请不要照抄!!!
注:chown [-cfhvR] [--help] [--version] user[:group] file...
3、配置hive的log4j,和上面一个,通过复制一个模版
注:如果hive版本是0.8,需要修改如下属性:
修改/usr/loca/hive/conf/hive-log4j.properties
将org.apache.hadoop.metrics.jvm.EventCounter
改为org.apache.hadoop.log.metrics.EventCounter
注意,我刚才在启动的时候,发现报如下的错误:
========= 错误 Begin ========
jimmy@jimmy:/usr/local/hive$ sudo bin/hive
[Fatal Error] hive-site.xml:2000:16: 元素类型 "value" 必须由匹配的结束标记 "</value>" 终止。
13/10/31 05:03:17 FATAL conf.Configuration: error parsing conf file: org.xml.sax.SAXParseException; systemId: file:/usr/local/hive/conf/hive-site.xml; lineNumber: 2000; columnNumber: 16; 元素类型 "value" 必须由匹配的结束标记 "</value>" 终止。
Exception in thread "main" java.lang.RuntimeException: org.xml.sax.SAXParseException; systemId: file:/usr/local/hive/conf/hive-site.xml; lineNumber: 2000; columnNumber: 16; 元素类型 "value" 必须由匹配的结束标记 "</value>" 终止。
... ....
========= 错误 End ========
解决的办法:
现在我们启动Hive:
进入shell表示安装成功!!(hive默认使用的是derby数据库,但是使用derby的话,这种方式是不支持多个用户同时访问的)
ok,内嵌模式已经安装好了!!!
========= 快乐的分隔线 ========
========= 连接本地的Mysql数据库 Begin ========
如何在本地安装MySQL这里就不赘述了,详细请看:Linux下使用PRM包安装MySQL
首先我们把mysql-connector-java-VersionInfo-bin.jar(我把这文件放在桌面)拷贝到/usr/local/lib/目录下
1、我们来看一下,MySQL服务是否已经启动:
输入netstat -nat
如上图所示,说明MySQL服务已经启动!
2、登录MySQL
3、启动Hive
这里报错:
java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
查看/tmp/$USERNAME/hive.log日志文件提示:
解决方法如下:
退出Hive并重新进入:
成功!!
下面贴上我的hive-site.xml文件内容:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql:// localhost:3306/hivedb?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 </value>
</property>
</configuration>
=========连接本地的Mysql数据库 End ========