• hive介绍


    hive的本质是hadoop客户端,通过写sql转换成MapReduce提交给yarn、hdfs执行

    hive的优点

    1. 操作接口采用类sql语法,提供快速开发能力
    2. 避免了去写MapReduce,减少了开发人员学习成本
    3. hive执行延迟比较高,因此常用于数据分析,用于对实时性要求不高的场合
    4. hive优势在处理大数据,对于小数据没有优势
    5. hive支持用户自定义函数,可以根据自己的需求来实现自己的函数

    hive的缺点

    • hive的hql表达能力有限
    1. 迭代式算法无法表达
    2. 数据挖掘方面不擅长,由于MapReduce数据处理流程限制,效率更高的算法却无法实现
    • hive的效率较低
    1. hive自动生成MapReduce作业,通常情况下不够智能
    2. hive调优困难,粒度较粗

    hive与数据库比较

    由于hive采用类sql查询语言hql(hive query language),因此很容易将hive理解为数据库。其实结构上看,hive和数据库除了拥有类似语言,再无相似之处;数据库可以用在online的应用,但是hive是为数据仓库而设计的

    数据存储位置

    hive是建立在Hadoop上的,所有hive的数据都是存储在hdfs上的;而数据库则可以将数据保存在块设备或者本地文件中

    数据更新

    hive中不建议对数据的改写,所有数据都是在加载的时候确定好的;数据库则可以经常修改

    索引

    hive在加载数据时不会对数据有任何处理,因此没有对数据有索引,hive要访问数据中满足条件的特定值时,需要暴力扫描整个数据。由于MapReduce,hive可以并行访问数据,因此尽管没有索引,对于大数据量的访问,hive仍然可以体现优势

    数据库通常会针对一个或者多个列进行建立索引,因此对于少量的特定条件的数据访问,数据库有很高的效率

    由于数据的访问延迟高,决定了hive不适合在线数据的查询

    执行延迟

    hive查询时无索引,需要扫描整个表,因此延迟较高。此外MapReduce框架本身有较高的延迟,利用MapReduce执行hive查询时,延迟较高。相对数据库执行延迟较低。低也是有条件的,即数据库规模较小,当数据规模大到超过数据库的处理能力的时候,hive的并行计算显然可以体现优势

    可扩展性

    由于hive是在hadoop上的,因此hive的可扩展性与hadoop可扩展性是一致的

    数据规模

    1. 由于hive建立在集群上并可以利用MapReduce进行并行计算,因此可以支持很大规模的数据,数据库的可以支持的数据规模较小

    管理表

    默认创建的表都是管理表,也称为内部表;当删除一个管理表的时候,hive也会删除这个表的数据

    也可以建立外部表,删除外部表时,数据不会被删除,不过描述的元数据信息会被删除(元数据,为描述数据的数据,主要是描绘数据属性(properties)信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能)

  • 相关阅读:
    用函数的递归来解决几道有趣的题
    Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.2 摄像头V4L2出图框架介绍
    Windows10安装Kafka教程
    对话ACE第六期:数据库上云的趋势和挑战
    Spring解决泛型擦除的思路不错,现在它是我的了。
    Python "爬虫"出发前的装备之一正则表达式
    【黑猩猩算法】基于加权反对技术和贪婪搜索进化黑猩猩优化算法求解多模态工程问题附matlab代码
    uniapp接入萤石微信小程序插件
    <Linux>(极简关键、省时省力)《Linux操作系统原理分析之进程管理2》(4)
    typescript+webpack构建一个js库
  • 原文地址:https://blog.csdn.net/qq_56572867/article/details/126827954