• 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中的数据的描述信息。

  • 相关阅读:
    Ubuntu linux安装ssh server
    Ubuntu下PHP配置与安全加强
    ubuntu 终端中文显示乱码问题!
    LINUX命令行如何查看memcache运行状态?
    CI system/libraries/Cache/drivers/memcached.php 兼容 memcache,memcached扩展
    php操作memcache的使用测试总结
    收集国内速度快的Debian或者Ubuntu源
    网易163的 Ubuntu 软件源
    Memcache命令及参数用法
    Memcache所有方法及参数详解
  • 原文地址:https://www.cnblogs.com/shine-rainbow/p/11374399.html
Copyright © 2020-2023  润新知