Hive简介

Hadoop生态系统中的Hive


  Hive不仅提供了一个熟悉SQL的用户所能熟悉的编程模型,还消除了大量的通用代码,甚至是哪些有时是不得不使用Java编写的令人棘手的代码。

  Hive发行版中附带的模块有CLI,一个称为Hive网页界面(HWI)的简单 网页界面,以及可通过JDBC、ODBC和一个Thrift服务器进行编程访问的几个模块。

  所有的命令和查询都会进入到Driver(驱动模块)、通过该模块对输入进行编译,对需求的计算进行优化,然后按照指定的步骤执行(通常是启动多个MapReduce任务(job)来执行)。当需要启动MapReduce任务(job)时,Hive本身是不会生成Java MapReduce算法程序的。相反,Hive通过一个表示“job执行计划”的XML文件驱动执行内置的、原生的Mapper和Reducer模块。换句话说,这些通用的模块函数类似于微型的语言翻译程序,而这个驱动计算的“语言”是以XML形式编写的。

  Hive通过和JobTracker通信来初始化MapReduce任务(job),而不必部署在JobTracker所在的管理节点上执行。在大型集群中,通常会有网关机专门用于部署像Hive这样的工具。在这些网关机上可远程和管理节点上的JobTracker通信来执行任务(job)。通常,要处理的数据文件是存储在HDFS中的,而HDFS是由NameNode进行管理的。

  Metastore(元数据存储)是一个独立的关系型数据库(通常是一个MySQL实例),Hive会在其中保存表模式和其他系统元数据。

  Hive最适合于数据仓库程序,对于数据仓库程序不需要实时响应查询,不需要记录级别的插入、更新和删除。当然,Hive也非常适合于一定SQL知识的用户。


  在$HIVE_HOME/lib目录下可以发现有众多的JAR(Java压缩宝)文件,例如hive-exec*.jar和hive-metastore*.jar。每个JAR文件都实现了Hive功能中某个特定的部分。

  $HIVE_HOME/bin目录下包含可以执行各种各样Hive服务的可执行文件,包括hive命令行界面(也就是CLI)。CLI是我们使用Hive的最常用方式。CLI可用于提供交互式的界面供输入语句或者可以供用户执行含有Hive语句的“脚本”。

  Hive还有一些其他组件。Thrift服务提供了可远程访问其他进程的功能,也提供使用JDBC和ODBC访问Hive的功能。这些都是基于Thrift服务实现的。

  所有的Hive客户端都需要一个metastore(元数据服务),Hive使用这个服务来存储表模式信息和其他元数据信息。通常情况下,会使用一个关系型数据库中的表来存储这些信息。默认情况下,Hive会使用内置的Derby SQL服务器,其可以提供有限的、单进程的存储服务。最后,Hive还提供了一个简单的网页界面,也就是Hive网页界面(HWI),提供了远程访问Hive的服务。

  $HIVE_HOME/conf目录下存放了配置Hive的配置文件。Hive具有非常多的配置属性,这些属性控制的功能包括元数据存储(如数据存放在哪里)、各种各样的优化和“安全控制”,等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值