zoukankan      html  css  js  c++  java
  • Hive 教程(二)-认知hive

    在大数据领域,hive 的位置非常重要,排名前三的大数据工具为 spark、hive、kafka

    什么是hive

    在大数据领域有 3 种需求场景:传输、存储、计算;

    hive 是一个处理海量的结构化数据的计算引擎;

    hive 是基于 hadoop 的一个数据仓库工具,他将结构化的数据数据文件映射为一张表,并且提供了类 sql 的查询功能;

    hive 提供的 sql 叫 HQL,本质是把 HQL 转换成 mapreduce;

    认识 hive 需要搞清楚以下几点:

    1. hive 虽然是大数据工具,但是 hive 并非分布式的,它只安装在一台机器上,当然你可以在多台机器上都安装 hive,但彼此之间没有联系;

    2. 我们可以把 hive 看做 hadoop 的客户端,通过使用 hive 来使用 hadoop;

    3. hive 是个计算引擎,他没有存储功能,虽然有一张表,但是我们可以认为那是一张虚拟表,表的数据存储在 hdfs,表的元数据存在 mysql 等数据库,hive 查询时通过元数据找到数据在 hdfs 中的位置,并启动 mapreduce 进行计算;

    hive 的工作逻辑

    1. hive 的数据存储在 hdfs

    2. hive 的计算通过 hadoop 完成

    hive 的架构

    Client:客户端,需要 jdbc 数据库;

    Metastore:元数据,存储在 关系型数据库,如 mysql 等;

    元数据存储了表的相关信息,包括表名,每张表在 hdfs 中的存储路径,表的拥有者,字段 等;

    Driver:这是 hive 的核心,包括 解析器,编译器,优化器,执行器;

    解析器检查 sql 语法是否正确;编译器把 sql 转换成 mr;优化器对 mr 进行优化;执行器执行 mr;

    hive vs database

    hive 和数据库的区别主要体现在 数据量 上,hive 适合海量数据,数据库在超过 千万条 数据后,性能会大大下降;

    数据存储位置

    hive 本身没有存储功能,其数据存储在 hdfs 上,其元数据存储在 关系型数据库;

    而数据库数据存在本地文件中;

    数据更新

    hive 针对数据仓库设计,数据仓库的内容是查多写少,不建议修改其内容,确切的说 hive 没有 改 的功能,只提供 增删查;

    hive 的改相当于先删掉原来的,再 put 新的到 hdfs;

    数据库可增删改查;

    索引

    hive 无索引,由于 mr 是并行的读取 block 的,所以在无索引的情况下,依然高效;【不过我看官网上有 索引,可能是版本问题,有没有试试就知道了】

    数据库有索引;

    可扩展和数据规模

    hive 的背后是 hadoop,所以它具有集群的一些优势,可以处理海量数据,且可以靠增加节点提高效率

    hive 总结

    hive 常用于数据分析;

    hive 基于 hadoop,执行效率比较低,不适合实时性很高的任务;

    hive 的优势是处理大数据,对于处理小数据没有优势;

    优点

    1. 基于 sql ,操作简单,学习成本低

    2. 支持自定义函数

    缺点

    1. hive 的 HQL 表达能力有限

    迭代式算法无法表达:算法分好多步,每一步需要上一步的计算结果,在 mr 中输出必须经过 IO,很慢,而且 sql 无法实现计算之后再计算;

    数据挖掘方面不擅长:也需要多次迭代;

    2. hive 效率比较低,且不好调优

    最后感觉 hive 的教程比较少,附上官网

    https://hive.apache.org/   【apache 所有的 url 格式都是 组件名称 + apache.org】

    说明文档也在这个网站上

  • 相关阅读:
    基础总结深入:数据类型的分类和判断(数据、内存、变量) 对象 函数 回调函数 IIFE 函数中的this 分号
    BOM 定时器 通过修改元素的类来改变css JSON
    事件 事件的冒泡 事件的委派 事件的绑定 事件的传播
    DOM修改 使用DOM操作CSS
    包装类 Date Math 字符串的相关的方法 正则表达式 DOM DOM查询
    数组 call()、apply()、bind()的使用 this arguments
    autocad 二次开发 最小包围圆算法
    win10 objectarx向导在 vs2015中不起作用的解决办法
    AutoCad 二次开发 jig操作之标注跟随线移动
    AutoCad 二次开发 文字镜像
  • 原文地址:https://www.cnblogs.com/yanshw/p/11775345.html
Copyright © 2011-2022 走看看