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】

    说明文档也在这个网站上

  • 相关阅读:
    opencv检测运动物体的基础_特征提取
    混合高斯建模
    计算机视觉领域的一些牛人博客,超有实力的研究机构等的网站链接
    opencv视频读取问题
    混合高斯模型背景显示
    图像显著区域检测代码及其效果图 saliency region detection
    opencv宏
    目标检测与转自背景减除
    混合高斯模型不显示背景
    error C3872: “0x3000”: 此字符不允许在标识符中使用错误 的解决办法
  • 原文地址:https://www.cnblogs.com/yanshw/p/11775345.html
Copyright © 2011-2022 走看看