• Hive分布式的数据仓库


    1.hive介绍

      hive是一个数据仓库的解决方案,它的数据存储依赖于HDFS,数据结算依赖于MR,也就是说,hive就是一个在数据仓库的服务,它只需要安装到一台普通的PC上即可,仅仅对外提供SQL服务(和hadoop、hbase、spark、storm不同,应为这些都是分布式服务),对客户端的SQL最终转换成对HDFS的操作和MR的操作。

      hive有两种作用,第一就是是一个数据仓库,他对数据的组织,比如说表、分区等目录结构,第二就是他的SQL实现是基于Mapreduce。

      所以,现在hive组织数据是目前无人可比,而它的SQL计算则可以使用MPP、mapreduce、spark迭代式计算、流计算等计算引擎,所以你看见impala、shark、的安装都是基于hive的,就是重用hive的数据仓库功能,即在hive里面组织数据。

    2.hive就是服务,不需要分布式安装

      hive的表,分区,桶本质就是在HDFS上面建立一些目录,同时借助RDBMS存储自己的元数据(用户的DDL,DML作为元数据,存储在RDMS里面,Hive引擎就会解析这些数据        生成MR的job运行,同时将HIve里面的表存储转换成hdfs的目录)。

    3.hive的DDL操作

      建立表

        1.在rdms里面存储表的列,名称

        2.在hdfs里面以表的名称,建立了一个目录

      插入数据、查询数据 

        1 将hql经过解析,形成执行计划,最后生成mr的job运行,而hql里面的表转换成hdfs里面的目录作为mr的输入和输出

      聚合函数、窗口函数以及OLAP的CUBE等聚合函数

        1 avg、sum、count、rank、cube等度量值的聚合方式。

    ==================================================================================================

    hive的调优:

    1、减少shuffle的数据传输、而这块主要就是join连接的优化

    2、task任务的个数

    3、jvm堆内存、栈内存空间的设置

    4、队列的设置、hadoop的调度策略以及资源分配配置

  • 相关阅读:
    bootstrap 导航栏、输入框按钮组、栅格系统
    Python排序算法冒泡排序选择排序插入排序
    Python 解螺旋数组
    初到博客园,请多指教
    gcd, map for ocaml
    qsort for ocaml
    子序列和最大的问题
    将一个整数划分为非负整数的部分
    filter in Ocaml
    scheme中表只能操作头部带来的一个问题
  • 原文地址:https://www.cnblogs.com/gstsyyb/p/5118977.html
Copyright © 2020-2023  润新知