• 大数据之Hive-01.基础入门概念


    📢📢📢📣📣📣
    哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10年DBA工作经验
    一位上进心十足的【大数据领域博主】!😜😜😜
    中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
    擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
    ✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
    ❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

    前言

    hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。

    ⛳️ 1. 什么是Hive

    hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive十分适合对数据仓库进行统计分析。
    官网:https://hive.apache.org/

    在这里插入图片描述

    📣📣📣 hive数据仓库和数据库比较

    由于 Hive 采用了类似 SQL 的查询语言 HQL(Hive Query Language),因此很容易将 Hive 理解为数据库。其实从结构上来看,Hive 和数据库除了拥有类似的查询语言,再无类似之处。 数据库可以用在 Online 的应用中,但是 Hive 是为数据仓库而设计的,清楚这一点,有助于从应用角度理解 Hive 的特性。

    ⛳️ 2. Hive架构

    MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算,概念"Map(映射)“和"Reduce(归约)”
    hive其本质是将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据的存储,说白了hive可以理解为一个将SQL转换为MapReduce的任务的工具,甚至更进一步可以说hive就是一个MapReduce的客户端。
    ● Hive最大的特点是通过类SQL来分析大数据,而避免了写MapReduce程序来分析数据,这样使得分析数据更容易。
    ● 数据是存储在HDFS上的,Hive本身并不提供数据的存储功能,它可以使已经存储的数据结构化。
    ● Hive是将数据映射成数据库和一张张的表,库和表的元数据信息一般存在关系型数据库上(比如MySQL)。
    ● 数据存储方面:它能够存储很大的数据集,可以直接访问存储在Apache HDFS或其他数据存储系统(如Apache HBase)中的文件。
    ● 数据处理方面:因为Hive语句最终会生成MapReduce任务去计算,所以不适用于实时计算的场景,它适用于离线分析。
    ● Hive除了支持MapReduce计算引擎,还支持Spark和Tez这两种分布式计算引擎;
    ● 数据的存储格式有多种,比如数据源是二进制格式,普通文本格式等等;
    ● hive具有sql数据库的外表,但应用场景完全不同,hive只适合用来做批量数据统计分析

    在这里插入图片描述

    ⛳️ 3. Hive优缺点

    起初hive是 Facebook设计的,然后之后Apache采纳了hive,并且接着开发,开源.后来起名叫Apache hive .

    1.优点
    1)操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。
    2)避免了去写MapReduce,减少开发人员的学习成本。
    3)Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合。
    4)Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高。
    5)Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。
    2.缺点
    📣 Hive的HQL表达能力有限
    (1)迭代式算法无法表达(MapReduce本身就不支持)
    (2)数据挖掘方面不擅长
    📣 Hive的效率比较低
    (1)Hive自动生成的MapReduce作业,通常情况下不够智能化
    (2)Hive调优比较困难,粒度较粗

    ⛳️ 4. Hive安装方式

    hive的安装一共有三种方式:内嵌模式、本地模式、远程模式
    元数据服务(metastore)作用是:客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore 服务即可。

    ✨ 4.1 内嵌模式

    内嵌模式使用的是内嵌的Derby数据库来存储元数据,也不需要额外起Metastore服务。数据库和Metastore服务都嵌入在主Hive Server进程中。这个是默认的,配置简单,但是一次只能一个客户端连接,适用于用来实验,不适用于生产环境。解压hive安装包 bin/hive 启动即可使用
    缺点:不同路径启动hive,每一个hive拥有一套自己的元数据,无法共享。

    在这里插入图片描述

    ✨ 4.2 本地模式

    本地模式采用外部数据库来存储元数据,目前支持的数据库有:MySQL、Postgres、Oracle、MS SQL Server。我们一般使用MySQL。本地模式不需要单独起metastore服务,用的是跟hive在同一个进程里的metastore服务。也就是说当你启动一个hive 服务,里面默认会帮我们启动一个metastore服务。hive根据hive.metastore.uris 参数值来判断,如果为空,则为本地模式。
    缺点:每启动一次hive服务,都内置启动了一个metastore。

    在这里插入图片描述

    ✨ 4.2 远程模式

    远程模式下,需要单独起metastore服务,然后每个客户端都在配置文件里配置连接到该metastore服务。远程模式的metastore服务和hive运行在不同的进程里。在生产环境中,建议用远程模式来配置Hive Metastore。在这种情况下,其他依赖hive的软件都可以通过Metastore访问hive。
      远程模式下需要配置hive.metastore.uris 参数来指定metastore服务运行的机器ip和端口,并且需要单独手动启动metastore服务。hiveserver2是Hive启动了一个server,客户端可以使用JDBC协议,通过IP+ Port的方式对其进行访问,达到并发访问的目的。

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    【Java 数据结构】双向链表
    面向对象和面向过程的区别
    Hadoop-2.7.3完全分布式集群搭建(Centos7系统)
    机器人入门路线及参考资料(机器人操作方向)
    【论文精度】Transformer--Attention Is All You Need
    开发客户,哪种方式成本低又有效?
    c++ map/multimap容器
    算法基础:归并排序(超详细)
    51单片机学习笔记2 仿真器的使用及STC89Cxx简介
    大数据-玩转数据-oracel字符串分割转化为多列
  • 原文地址:https://blog.csdn.net/weixin_41645135/article/details/126844893