主机环境:
Ubuntu 13.10
Hadoop 1.2.1
Hive 0.12.0
下载解压和转移:
wget http://mirrors.hust.edu.cn/apache/hive/hive-0.12.0/hive-0.12.0.tar.gz
tar -xzvf hive-0.12.0.tar.gz
mv hive-0.12.0 /opt/
配置系统环境变量:
sudo vim /etc/profile
source /etc/profile
修改hive配置文档
用户自定义的配置文件:hive-site.xml
默认配置文件:hive-default.xml
用户自定义配置文件会覆盖默认配置文件,Hive也会读入Hadoop的配置,因为Hive是作为Hadoop客户端启动的。
cd conf
cp hive-default.xml.template hive-site.xml
Hive的主要配置项:
hive.metastore.warehouse.dir 指定Hive的存储目录
hive.exec.scratchdir 指定hive的数据临时文件目录
连接数据库的配置:
Hive需要将元数据存储在RDBMS中,配置mysql存储Hive元数据
<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>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>111111</value>
<description>password to use against metastore database</description>
</property>
将JDBC的驱动拷贝到$HIVE_HOME/lib下
cp /home/dat/mysql-connector-java-5.1.24-bin.jar /opt/hive-0.12.0/lib/
安装Mysql和启动mysql略过。。
检查mysql的启动状态:
sudo service mysql.server status
启动Hive
/opt/hive-0.12.0/bin$ hive
报错:
Cannot find hadoop installation: $HADOOP_HOME or $HADOOP_PREFIX must be set or hadoop must be in the path
原因hadoop没有启用,简单处理:source /opt/hadoop-1.2.1/conf/hadoop-env.sh
继续启动,继续报错:
Caused by: org.xml.sax.SAXParseException; systemId: file:/opt/hive-0.12.0/conf/hive-site.xml; lineNumber: 2000; columnNumber: 16; 元素类型 “value” 必须由匹配的结束标记 “</value>” 终止。
原因:xml文件有问题,2000行<value><auth>配对了,修改为vaule
继续重启,OK!
dat@dat-HP:/opt/hive-0.12.0/bin$ hive
Logging initialized using configuration in jar:file:/opt/hive-0.12.0/lib/hive-common-0.12.0.jar!/hive-log4j.properties
hive>
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2013-11/92525p2.htm
Hive 的详细介绍:请点这里
Hive 的下载地址:请点这里
相关阅读:
基于Hadoop集群的Hive安装 http://www.linuxidc.com/Linux/2013-07/87952.htm
Hive内表和外表的区别 http://www.linuxidc.com/Linux/2013-07/87313.htm
Hadoop + Hive + Map +reduce 集群安装部署 http://www.linuxidc.com/Linux/2013-07/86959.htm
Hive本地独立模式安装 http://www.linuxidc.com/Linux/2013-06/86104.htm
Hive学习之WordCount单词统计 http://www.linuxidc.com/Linux/2013-04/82874.htm
Windows 7下硬盘安装Ubuntu 13.10图文教程 见 http://www.linuxidc.com/Linux/2013-10/91565.htm
Ubuntu 13.10 下载、安装、配置 整理汇总 页面 http://www.linuxidc.com/Linux/2013-10/91564.htm
Hive其他配置:
Hive可以像Mysql一样进行运行时配置,如:
set mapred.job.tracker=myhost.mycompany.com:50030
set mapred.reduce.tasks=100;
set -v
通过set -v可以查看当前所有设定信息。set的作用是session级的,只对本次操作有效。
hive设置本地模式:。。。。P221
Hive的错误日志
hive采用log4j记录日志,默认情况下的记录等级使WARN级别的。存储在/tmp/{user.na-ame}/hive.log文件夹。用户也可以改变日志级别。
hive -hiveconf hive.root.logger=DEBUG,console
测试:
$HIVE_HOME/bin/hive
show databases;
报错:
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
解决办法:
如上,修改日志权限,打印出日志查找
MetaException(message:Version information not found in metastore.
修改属性:
<name>hive.metastore.schema.verification</name>
<value>false</value>
修改后继续实验,依然报错
13/11/07 14:45:16 ERROR hive.log: Got exception: java.net.ConnectException Call to localhost/127.0.0.1:9000 failed on connection exception: java.net.ConnectException: 拒绝连接
原因很简单:hadoop没有启动,启动之后重新实验,OK!!
dat@dat-HP:/opt/hive-0.12.0/bin$ hive
Logging initialized using configuration in jar:file:/opt/hive-0.12.0/lib/hive-common-0.12.0.jar!/hive-log4j.properties
hive> show databases;
OK
default
Time taken: 2.448 seconds, Fetched: 1 row(s)
hive> show tables;
OK
Time taken: 2.466 seconds
hive>
更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2