Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类SQL语句快速实现简单的MapReduce统计,并且不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。Hive支持一种与SQL几乎完全相同的语言HiveQL,除了不支持更新、索引和事务。它可以看成是从SQL到Map-Reduce的映射器,提供shell、JDBC/ODBC、thrift、Web等接口。
一.独立模式安装
在这种模式下,Hive支持多用户会话,需要一个独立的元数据库,常用的是使用MySQL作为元数据库。
1.下载hive并解压。我下载的是hive-0.11.0版本,解压到/usr/hive-0.11.0
2.设置环境变量。vi ~/.bash_profile增加如下环境变量:
HIVE_HOME=/usr/hive-0.11.0
HADOOP_HOME=/usr/hadoop-1.1.2
JAVA_HOME=/usr/java/jdk1.6.0_38
PATH=$JAVA_HOME/bin:$HIVE_HOME/bin:$HADOOP_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$HIVE_HOME/lib:$JAVA_HOME/lib/tools.jar
export HADOOP_HOME
export JAVA_HOME
export HIVE_HOME
export PATH
export CLASSPATH3.安装MySql,并添加一个用户(用户名:hive 密码:hive)赋予其权限
mysql> create user 'hive' identified by 'hive';
Query OK, 0 rows affected (0.02 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost' IDENTIFIED BY 'hive' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit4.在Hive安装目录的conf目录下,将hive-default.xml.template复制一份命名为:hive-site.xml。并修改以下内容,配置上mysql数据连接、驱动、用户名和密码
<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/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>123456</value></property>7.把mysql驱动包(mysql-connector-java-5.0.8.jar)复制到/hive-0.11.0/lib下
5.修改/usr/hive-0.11.0/conf/hive-log4j.properties6.在hdfs上创建目录把#log4j.appender.EventCounter=org.apache.hadoop.metrics.jvm.EventCounter修改成如下: log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter
$HADOOP_HOME/bin/hadoop fs -mkidr /tmp $HADOOP_HOME/bin/hadoop fs -mkidr /user/hive/warehouse $HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp $HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse
8.运行hive,如果没报错说明其安装成功
[root@master hive-0.11.0]# bin/hive
Logging initialized using configuration in file:/usr/hive-0.11.0/conf/hive-log4j.properties
Hive history file=/tmp/root/hive_job_log_root_1266@master_201403012006_694124493.txt
hive> show tables;
OK
Time taken: 7.998 seconds
hive>9.安装中遇到的错误:
FAILED: Error in metadata: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask原因;a.没有给mysql用户hive设置权限
b.没有把mysql驱动包复制到/hive-0.11.0/lib中
4.输入hive命令,出现类似下面的内容,说明安装成功。