更新时间:2024-12-06 GMT+08:00

Hive应用开发简介

Hive介绍

Hive是一个开源的,建立在Hadoop上的数据仓库框架,提供类似SQL的HQL语言操作结构化数据,其基本原理是将HQL语言自动转换成MapReduce任务或Spark任务,从而完成对Hadoop集群中存储的海量数据进行查询和分析。

Hive主要特点如下:

  • 通过HQL语言非常容易的完成数据提取、转换和加载(ETL)。
  • 通过HQL完成海量结构化数据分析。
  • 灵活的数据存储格式,支持JSON、CSV、TEXTFILE、RCFILE、ORCFILE、SEQUENCEFILE等存储格式,并支持自定义扩展。
  • 多种客户端连接方式,支持JDBC接口。

Hive主要应用于海量数据的离线分析(如日志分析,集群状态分析)、大规模的数据挖掘(用户行为分析,兴趣分区,区域展示)等场景下。

为保证Hive服务的高可用性、用户数据的安全及访问服务的可控制,在开源社区的Hive-3.1.0版本基础上,Hive新增如下特性:

  • 数据文件加密机制。

开源社区的Hive特性,请参见https://cwiki.apache.org/confluence/display/hive/designdocs

常用概念

  • 客户端

    客户端直接面向用户,可通过Java API、Thrift API访问服务端进行Hive的相关操作。

  • HQL语言

    Hive Query Language,类SQL语句。

  • HCatalog

    HCatalog是建立在Hive元数据之上的一个表信息管理层,吸收了Hive的DDL命令。为MapReduce提供读写接口,提供Hive命令行接口来进行数据定义和元数据查询。基于MRS的HCatalog功能,Hive、MapReduce开发人员能够共享元数据信息,避免中间转换和调整,能够提升数据处理的效率。

  • WebHCat

    WebHCat运行用户通过Rest API来执行Hive DDL,提交MapReduce任务,查询MapReduce任务执行结果等操作。