计算机学研究生课程,厦门大学计算机学系研究生课程.doc
厦门大学计算机学系研究生课程厦门大学计算机科学系研究生课程《》主讲教师:林子雨二零一年月目录一、 Hive简介1二、 Hive安装1三、 Hive配置3四、 Hive的常用HiveQL操作9五、 Hive简单编程实践16附录1:任课教师介绍18附录2:课程教材介绍18《》主讲教师:林子雨E-mail: ziyulin@个人主页:/linziyuHive简介Hive是一个可以提供有效的、合理的且..
厦门大学计算机学系研究生课程
厦门大学计算机科学系研究生课程
《》
主讲教师:林子雨
二零一年月
目录
一、 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
注意:
若
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)