本文前提是Hadoop & Java & mysql 数据库,已经安装配置好,并且 环境变量均已经配置到位
一、Hive 基本介绍
Hive是Hadoop家族中一款数据仓库产品,Hive最大的特点就是提供了类SQL的语法,封装了底层的MapReduce过程,让有SQL基础的业务人员,也可以直接利用Hadoop进行大数据的操作。就是这一个点,解决了原数据分析人员对于大数据分析的瓶
颈。
Hive起源于Facebook,它使得针对Hadoop进行SQL查询成为可能,从而非程序员也可以方便地使用。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务运行。
Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。
优点:Hive 最适合于数据仓库应用,可以维护海量数据,而且可以对数据进行挖掘,然后形成意见和报告等,只要略懂得SQL语法的话就会很容易上手;
缺点:它不是一个完整的数据库,最大的限制就是Hive不支持记录级别的更新,插入或者删除操作;这是 Hadoop 以及 HDFS 的设计本身约束和局限性地限制了Hive所能胜任的工作。但用户可以通过查询生成新表或者将查询结果导入到文件中;Hive 也不支持事务;
Hive 也有图形界面管理的商业产品: Cloudera 提供的 Hue 项目(https://github.com/cloudera/hue)
Hive 的功能模块:
二、Hive 的安装
1)下载Hive 我们用最新的stable【稳定】版本:
wget http://mirror.bit.edu.cn/apache/hive/stable/apache-hive-0.14.0-bin.tar.gz --获取最新版本
tar -zxvf apache-hive-0.14.0-bin.tar.gz --解压缩
cp apache-hive-0.14.0-bin /usr/local/software/ --并复制到安装上目录 /usr/local/software
mv apache-hive-0.14.0-bin hive-0.14.0 --改个名字
2)Hive配置
cd hive-0.14.0/conf
cp hive-default.xml.template hive-site.xml
cp hive-log4j.properties.template hive-log4j.properties
修改配置文件:把Hive的元数据存储到MySQL中
vi hive-siet.xml
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.128.129:3306/hive_metadata?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>911</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
修改hive-log4j.properties
#log4j.appender.EventCounter=org.apache.hadoop.metrics.jvm.EventCounter
log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter
3)设置环境变量
vi /etc/profile
export HIVE_INSTALL=/usr/local/software/hive-0.14.0
export PATH=$PATH:$HIVE_INSTALL/bin
export CLASS_PATH=$CLASS_PATH:HIVE_INSTALL/lib
source /etc/profile 使修改及时生效
4)在hdfs上面,创建目录
$HADOOP_HOME/bin/hadoop fs -ls /
$HADOOP_HOME/bin/hadoop fs -mkdir /user/hive
$HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse
$HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp
$HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse