厦门大学计算机学系研究生课程

厦门大学计算机科学系研究生课程

《》

主讲教师:林子雨

二零一年月

目录

一、 Hive简介1

二、 Hive安装1

三、 Hive配置3

四、 Hive的常用HiveQL操作9

五、 Hive简单编程实践16

附录1:任课教师介绍18

附录2:课程教材介绍18

《》

主讲教师:林子雨

E-mail: ziyulin@ 个人主页:/linziyu

Hive简介

Hive是一个可以提供有效的、合理的且直观的组织和使用数据的模型,即使对于经验丰富的Java开发工程师来说,将这些常见的数据运算对应到底层的MapReduce Java API也是令人敬畏的。Hive可以帮用户做这些工作,用户就可以集中精力关注查询本身了。Hive可以将大多数的查询转换为MapReduce任务。Hive最适合于数据仓库应用程序,使用该应用程序进行相关的静态数据分析,不需要快速响应给出结果,而且数据本身也不会频繁变化。

Hive不是一个完整的数据库。Hadoop以及HDFS的设计本身约束和局限性限制了Hive所能胜任的工作。最大的限制就是Hive不支持记录级别的更新、插入或者删除。用户可以通过查询生成新表或将查询结果导入到文件中去。因为,Hadoop是一个面向批处理的系统,而MapReduce启动任务启动过程需要消耗很长时间,所以Hive延时也比较长。Hive还不支持事务。因此,Hive不支持联机事务处理(OLTP),更接近于一个联机分析技术(OLAP)工具,但是,目前还没有满足“联机”部分。

Hive提供了一系列的工具,可以用来进行数据提取转化加载(ETL),其中,ETL是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。因此,Hive是最适合数据仓库应用程序的,它可以维护海量数据,而且可以对数据进行挖掘,然后形成意见和报告等。

因为大多数的数据仓库应用程序是基于SQL的关系数据库现实的,所以,Hive降低了将这些应用程序移植到Hadoop上的障碍。如果用户懂得SQL,那么学习使用Hive会很容易。因为Hive定义了简单的类SQL 查询语言——HiveQL,这里值得一提的是,与SQLServer、Oracle相比,HiveQL和MySQL提供的SQL语言更接近。同样的,相对于其他的Hadoop语言和工具来说,Hive也使得开发者将基于SQL的应用程序移植到Hadoop变得更加容易。

二、 Hive安装

因为Hive是构建在Hadoop之上的,所以在安装Hive前,我们需要安装Hadoop环境。Hadoop的安装可以参照厦门大学数据库实验室网站上的安装教程(/blog/install-hadoop-simplify/#more-94)的配置过程,稍后我们在安装完Hive后一起进行

下面开始安装Hive。

安装Hive的过程和安装Hadoop很类似,首先我们先下载一个Hive软件压缩包(下载地址:/dyn/closer.cgi/hive/),然后进行解压缩,具体如下:

$cd ~/下载

$sudo tar -zxvf ./apache-hive-1.2.1-bin.tar.gz -C /usr/local

# 解压到/usr/local中

$cd /usr/local/

$sudo mv ./apache-hive-1.2.1-bin/ ./hive # 将文件夹名改为hive

$sudo chown -R hadoop:hadoop ./hive # 修改文件权限

$sudo mkdir -p /usr/local/hive/warehouse # 创建元数据存储文件夹

$sudo chmod a+rwx /usr/local/hive/warehouse # 修改文件权限

为了方便使用,我们把hive命令加入到环境变量中去

$vim ~/.bashrc # 设置环境变量

在文件最前面添加如下几行:

export HIVE_HOME=/usr/local/hive

export PATH=$PATH:$HIVE_HOME/bin

$source ~/.bashrc #使配置立即生效

然后运行hive命令启动Hive

$hive #启动Hive

注意:

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐