zoukankan      html  css  js  c++  java
  • 理解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,它也支持强大的权限管理等功能。

  • 相关阅读:
    【leetcode】236. 二叉树的最近公共祖先
    【leetcode】230. 二叉搜索树中第K小的元素
    【leetcode】309. 最佳买卖股票时机含冷冻期
    【leetcode】306. 累加数
    【leetcode】304. 二维区域和检索
    spring-framework源码编译及导入
    Java8-函数式接口理解及测试
    Mac编译RocketMQ 4.1.0
    首记
    JS表单验证
  • 原文地址:https://www.cnblogs.com/hnrainll/p/13717118.html
Copyright © 2011-2022 走看看