• 理解Hive 不同组件的功能


    Hive功能
    通过将SQL转换成MR、Spark等任务,来计算HDFS中数据的工具。
    Hive是基于Hadoop之上的数仓工具。通过HDFS存储真实的数据,通过YARN运行计算任务(MR、Spark等可以依赖YARN)。

    那么我们简单分析Hive需要具备的能力:

    • 对SQL编译、抽象
    • 将SQL转换成计算任务并执行
    • 对HDFS中的数据进行格式定义
    • 管理HDFS上数据的读写(哪些能读、哪些能写)

    所以Hive需要能将SQL进行抽象,将其转换成在MR、Spark运行的任务,并执行这些任务。
    在HDFS中存储数据,格式有很多种,但是为了能够支持以 SQL的方式读写,那么需要能够对这些数据进行schema定义。
    HDFS上的数据很多,那么Hive不能随意的读取其中的数据,那么需要定义能够读取数据的位置。

    再进行总结Hive需要包含元数据管理(metastore)和 解析SQL并执行计算(Drive)。

    元数据管理使用服务metastore,其底层可以是关系型数据库,比如MySQL等。
    Hive所有元数据管理都是基于metastore进行操作。
    通过metastore屏蔽了对于数据的直接操作,让元数据管理变的可靠、稳定。

    HCatalog服务是用于管理metastore的对外服务。第三方的接口处理或者管理metastore可以通过它。所以metastore可以理解为对内管理Hive元数据的服务。

    解析SQL并执行计算就需要通过HiveCLI与HiveServer2。
    HiveCLI可以理解为重客户端。他提供本地编译SQL,并向YARN提交任务的功能。它也能直接与metastore进行交互。

    HiveServer2也能提供HiveCLI的功能,但是他还能对外提供服务,服务是以thrift的方式提供的。客户可以通过jdbc、odbc等方式连接HiveServer2,将任务提交给HiveServer2后,他再于metastore、YARN交互执行相关的指令。

    beeline是一个轻客户端,他可以通过jdbc的方式连接HiveServer2,并将任务提交给HiveServer2,它也支持强大的权限管理等功能。

  • 相关阅读:
    C# 多态的实现
    资料整理工具篇
    轻量级ORMPetaPoco及改进
    偶然路过,所以就留点东西吧。
    Sencha Touch 提高篇 组件选择器
    Sencha Touch 数据层篇 Proxy(上)
    Sencha Touch 数据层篇 Model
    Sencha Touch 2.0 威老的自定义组件:CardPanel
    Sencha Touch 2.0 有哪些新特征? Sencha Touch 官方指南系列
    Sencha Touch 数据层篇 Store
  • 原文地址:https://www.cnblogs.com/hnrainll/p/13717118.html
Copyright © 2020-2023  润新知