• Hive学习之路(一)Hive初识


    Hive简介

    什么是Hive

    1. Hive由Facebook实现并开源
    2. 是基于Hadoop的一个数据仓库工具
    3. 可以将结构化的数据映射为一张数据库表
    4. 提供HQL(Hive SQL)查询功能
    5. 底层数据是存储在HDFS上
    6. Hive的本质是将SQL语句转换为MapReduce任务运行
    7. 使不熟悉MapReduce的用户很方便地利用HQL处理和计算HDFS上的结构化数据,适用于离线的批量数据计算

    为什么使用Hive

    ​ 直接使用MapReduce所面临的问题:

    1. 人员学习成本太高
    2. 项目周期要求太短
    3. MapReduce实现复杂查询逻辑开发难度太大

    为什么要使用Hive:

    1. 更友好的接口:操作接口采用类SQL的语句,提供快速开发的能力
    2. 更低的学习成本:避免了写MapReduce,减少开发人员的学习成本
    3. 更好的扩展性:可自由扩展集群规模而无需重启服务,还支持用户自定义函数

    Hive的特点

    ​ 优点:

    1. 可扩展性、横向扩展:Hive可以自由的扩展集群的规模,一般情况下不需要重启服务。

      • 横向扩展:通过分担压力的方式扩展集群的规模
      • 纵向扩展:一台服务器cpu i7
    2. 延展性:

    3. 良好的容错性

      缺点:

    4. Hive不支持记录级别的增删改查

    5. Hive的查询延迟很严重

    6. Hive不支持事务

    Hive和RDBMS的对比

    对比项 Hive RDBMS
    查询语言 HQL SQL
    数据存储 HDFS Raw Device or Local FS
    执行器 MapReduce Executor
    数据插入 支持批量导入/单条插入 支持批量导入/单条插入
    处理数据规模
    执行延迟
    分区 支持 支持
    索引 0.8版本之后加入简单索引 支持复杂的索引
    扩展性 高(好) 有限(查)
    数据加载模式 读时模式(快) 写时模式(慢)
    应用场景 海量数据查询 实时查询

    总结:

    ​ Hive具有SQL数据库的外表,但应用场景完全不同,Hive只适合用来做海量离线数据统计分析,也就是数据仓库。

    Hive架构

    image-20190818224859270

    1. 用户接口:shell/CLI,jdbc/odbc.webui Command Line Interface

    CLI,Shell终端命令行(Command Line Interface),采用交互形式使用hive命令与Hive进行交互,最常用(学习,调试,生产)

    2.跨语言服务:thrift server 提供了一种能力,让用户可以使用多种不同的语言来操作Hive

    3.底层的Driver:驱动器Driver,编辑器Compiler,优化器Optimizer,执行器Executor

    4.元数据存储系统:RDBMS MySQL

    元数据:通俗的讲,就是存储在Hive中的数据的描述信息。

  • 相关阅读:
    tomcat部署项目时 报错Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules
    异常:Caused by: java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext
    java安全管理器SecurityManager介绍
    Mybatis框架基础支持层——反射工具箱之Reflector&ReflectorFactory(3)
    Mybatis框架基础支持层——解析器模块(2)
    Mybatis框架可视化(1)
    JDK动态代理简单使用(2)
    代理(1)
    动态代理源码分析(3)
    springboot(十七)-使用Docker部署springboot项目
  • 原文地址:https://www.cnblogs.com/shine-rainbow/p/11374399.html
Copyright © 2020-2023  润新知