Hive是基于Hadoop的数据仓库工具,将SQL语句转换为MapReduce任务。

Hive特点

数据源采集到数据仓库中需要依靠ETL(Extract-Transform-Load),数据抽取转换与加载。

优点

  • 开发周期短,学习成本低。
  • 扩展性能好,容错性高。

缺点

  • HQL语句的表达能力弱,无法做到类似递归等操作。
  • 执行时需要转换为MapReduce任务,效率低延迟高。

Hive架构

用户接口:Client

  • CLI:终端,用于与Hive进行交互。
  • JDBC/ODBC:JavaDatabase Connectivity/Open Database Connectivity,即数据库API接口,连接到Hive Server。
  • Thrift Server:用于可扩展,跨语言开发,使得可以使用其他语言来调用Hive。
  • WebUI:通过浏览器来访问&管理Hive的运行。

元数据储存:Metastore

元数据:保存数据的描述信息,表名、类型、所在位置等属性。元数据默认储存在Derby中,不适合多用户操作。

驱动器:Driver

包括解析器、编译器、优化器、执行器。

Hadoop

Hive的数据储存在HDFS上,底层借助MapReduce进行数据查询与处理,执行程序运行在YARN上。

对比RDBMS