• Hive简介


    背景和概念

    Hive是一个依赖于分布式存储的查询和管理大型数据集的数据仓库。传统的非大数据行业一般都是基于表进行数据存储和管理的,如果由于业务扩张或者其他原因迁移到HDFS平台上,那么需要将传统的SQL查询语句全部翻译成Map-reduce的程序实现,这个工作量是相当庞大的。好在SQL具有严谨和良好的模板式语法结构,因此Hive就应运而生了,它负责将SQL语句模板化成Map-reduce任务。对上层屏蔽了将SQL任务转化为Map-reduce任务的繁杂性。上层开发者仅仅需要像往常使用SQL语句操作传统关系型数据库一样操作HDFS就可以了。所以Hive更准确讲是一个几月HDFS的数据处理框架,隐藏了底层的复杂性。具体的过程如下:

    1-接收来自上层的请求:create table tab_order(id int,name string ,money double) path hdfs://order_log

    2-Hive拿到砂锅面的请求之后创建一个元数据表,并且声称相应的Map-reduce程序---编译---打成jar包---运行

    原理图

     架构图

    Hive和HDFS的关系

    Hive本身也需要存储元数据,这部分数据存放在Hive自带的数据库中()或者我们可以给Hive配置一个数据库。

    Hive只是一个工具而已,不用想Hadoop其他组件那样分布式部署,只需要部署在一个节点上面就可以了。即便部署多个,他们之间也是相互独立的,没有任何关系。

    HDFS不支持随机修改和插入某一行数据,所以Hive也不支持随机插入和修改,只支持数据的查询,也就是说数据必须已经存在HDFS上面,Hive只是提供了HDFS的SQL访问方式。那么如何将HDFS中的数据和Hive中的元数据信息映射起来,有下面两种方式:

    1-建表的时候就和HDFS上面的文件数据绑定;

      2-数据导入;

    竞争产品

      Hive同类的产品也很多,比较有名的有:impala、spark shark、spark sql等

  • 相关阅读:
    浏览器窗口的尺寸和大小
    Oracle
    Maven
    框架使用xm配置文件中文件头信息
    Oracle SQL Developer 安装
    Jquery函数的几种写法
    spring boot拦截器配置
    java之大文件断点续传
    idea打jar包经验总结
    oracle模糊搜索避免使用like,替换为instr()
  • 原文地址:https://www.cnblogs.com/maxigang/p/9809359.html
Copyright © 2020-2023  润新知