Hive概述

架构于Hadoop之上,可以将结构化的HDFS文件映射成一张表,并提供了类似于SQL语法的HQL查询功能。

核心本质:将HQL语句转换成MapReduce任务。

Hive的优缺点

优点

避免了开发人员去实现Map和Reduce的接口,大大降低了学习成本。

HQL语法类似于SQL语法,简单、容易上手。

缺点

执行效率比较低 Hive生成的MapReduce任务,不够智能化,容易造成数据倾斜。

Hive架构图

每个模块负责的内容:

Meta Store: 元数据,一般存储在mysql

Client: 客户端

Driver:驱动器

HQL Parse: 解析器,HQL解析和语法分析

Physical Plan: 编译生成逻辑执行计划

Query Optimizer: 对逻辑执行计划进行优化

Execution: 把逻辑执行计划转换成物理执行计划

Hadoop

Map Reduce: 执行计算

HDFS: 文件存储

MapReduce 执行原理

MapReduce是一种分布式计算模型,由Map和Reduce组成。 Map()负责把一个大的block块进行切片并计算。 Reduce() 负责把Map()切片的数据进行汇总、计算。

执行的核心思想: 相同key的键值对为一组调用一次Reduce方法,方法内迭代这组数据进行计算。

【Map Reduce 详细步骤图】

ODPS与Hive的关系

ODPS是阿里基于Hive的核心思想构建的,不同的是Hive的文件存储在hdfs上,ODPS则存在阿里的盘古里,而且ODPS针对Hive做了一些优化。

两者的区别

ODPS架构图

存储

MaxCompute Tables:表是MaxCompute的数据存储单元。不同类型作业的操作对象(输入、输出)都是表。

Compression Strategy:MaxCompute采用列压缩存储格式,通常情况下具备5倍压缩能力。

AliORC:MaxCompute数据存储格式全面升级为AliORC,具备更高存储性能。

计算引擎

MaxCompute本身具备计算引擎能力。在处理Spark作业时,MaxCompute运行在阿里云自研的CUPID平台之上,可以原生支持开源社区Yarn所支持的计算框架。

计算模型数据通道

MaxCompute支持多种数据通道满足多场景需求:SQL、PyODPS、MapReduce、Graph、Mars、PAI、Java/Python UDF等。

用户接口

MaxCompute提供如下用户接口:Java SDK、Python SDK、JDBC、Restful API

统一元数据及安全体系

MaxCompute提供项目元数据及使用历史数据,用户可以对作业的运行情况进行分析,用于优化作业或规划资源容量。

MaxCompute还提供了完善的安全管理体系,例如访问控制、数据加密、动态脱敏等为数据安全性提供保障。

ODPS针对Hive的优化

Query Optimizer 优化器的优化

RBO: 基于规则的优化器 (Oracle 6-9i, Hive)

• 一种过时的优化器框架,它只认规则,对数据不敏感。优化是 局部贪婪,容易陷入局部优但是全局差的场景,容易受应用规 则的顺序而生产迥异的执行计划,往往结果是不是最优的。

CBO:基于代价的优化器 (Oracle 8开始,Oracle 10g完 全取代RBO; MaxCompute)

• Volcano模型,展开各种可能等价的执行计划,然后依赖数据的统计信息,计算这些等价执行计划的“代价”,最后从中选 用cost最低的执行计划。

最典型的优化点:

distinct 的性能优化到和 group by 一致

reduce 分配更加平滑

MaxCompute(ODPS)和Hive的区别的更多相关文章

  1. Hbase总结(一)-hbase命令,hbase安装,与Hive的区别,与传统数据库的区别,Hbase数据模型

    Hbase总结(一)-hbase命令 下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下: 名称 命令表达式 创建表 create '表名称', ...

  2. hive hbase区别

    1.hive是sql语言,通过数据库的方式来操作hdfs文件系统,为了简化编程,底层计算方式为mapreduce. 2.hive是面向行存储的数据库. 3.Hive本身不存储和计算数据,它完全依赖于H ...

  3. 面试:Hbase和Hive的区别

    区别: 1. Hive是一个构建在Hadoop基础设施之上的数据仓库,通过HQL查询存放在HDFS上的数据,不能交互查询.HBase是一种Key/Value系统,它运行在HDFS之上,可以交互查询. ...

  4. MaxCompute - ODPS重装上阵 第六弹 - User Defined Type

    MaxCompute(原ODPS)是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用,支撑了多个BU的核心业务. MaxCompute除了持续优化性能外,也致力于提 ...

  5. Pig与Hive的区别

    Language 在Hive中可以执行  插入/删除 等操作,但是Pig中我没有发现有可以 插入 数据的方法,请允许我暂且认为这是最大的不同点吧. Schemas Hive中至少还有一个“表”的概念, ...

  6. Hadoop学习之HBase和Hive的区别

    Hive是为简化编写MapReduce程序而生的,使用MapReduce做过数据分析的人都知道,很多分析程序除业务逻辑不同外,程序流程基本一样.在这种情况下,就需要Hive这样的用户编程接口.Hive ...

  7. [转]Pig与Hive 概念性区别

    Pig是一种编程语言,它简化了Hadoop常见的工作任务.Pig可加载数据.表达转换数据以及存储最终结果.Pig内置的操作使得半结构化数据变得有意义(如日志文件).同时Pig可扩展使用Java中添加的 ...

  8. 【转载】Impala和Hive的区别

    Impala和Hive的关系  Impala是基于Hive的大数据实时分析查询引擎,直接使用Hive的元数据库Metadata,意味着impala元数据都存储在Hive的metastore中.并且im ...

  9. Hbase的基本原理(与HIVE的区别、数据结构模型、拓扑结构、水平分区原理、场景)

    重点:HBase的基本数据模型.拓扑结构.部署配置方法,并介绍通过命令行和编程方式使用HBase的基本方法. HBase:一种列存储模式与键值对相结合的NoSQL软件,但更多的是使用列存储模式,底层的 ...

  10. maxCompute odps 行转列

    select name ,REGEXP_REPLACE(str,"[\\[\"\\]]",'') from ( select trans_array(, ",& ...

随机推荐

  1. mongose查询

  2. C#设计模式11——享元模式的写法

    1. 什么是享元模式? 享元模式是一种结构型设计模式,目的是通过共享对象来尽量减少内存使用和对象数量.它通过将对象分为可共享的和不可共享的来实现这一目的. 2. 为什么要使用享元模式? 使用享元模式可 ...

  3. Hystrix 实现服务熔断与降级

    本文为博主原创,未经允许不得转载: 目录: 1. 服务雪崩,服务熔断,服务降级概念 2. Hystrix 概念 3. Hystrix 使用及默认配置 4. @HystrixCommond 注解使用 5 ...

  4. 介绍这个库:C# Blazor中显示Markdown文件

    1 讲目的 前几天上线了一个在线Icon转换工具,为了让大家使用放心,改了点代码,在转换下载Icon图标后立即删除临时文件,并在工具下面贴上了工具的开发步骤和代码,大家看这样改是否合适,见Issue ...

  5. 【C/C++】宏参数多对一和宏部分替换

    宏参数多对一:使用分号分隔多参数 宏部分替换:替换需要转换的再与后续宏接续 #include <stdio.h> #define _MESS_FAILED() printf("% ...

  6. Linux-用户组-groupad-groupdel-usermod

  7. linux环境C语言实现:h264与pcm封装成AVI格式

    ​ 前言 拖了很久的AVI音视频封装实例,花了一天时间终于调完了,兼容性不是太好,但作为参考学习使用应该没有问题. RIFF和AVI以及WAV格式,可以参考前面的一些文章.这里详细介绍将一个H264视 ...

  8. [转帖]技术分享| MySQL 的 AWR Report?— MySQL 状态诊断报告

    https://segmentfault.com/a/1190000039959767     作者:秦福朗 爱可生 DBA 团队成员,负责项目日常问题处理及公司平台问题排查.热爱 IT,喜欢在互联网 ...

  9. Docker导出镜像的总结

    Docker导出镜像的总结 安装Docker mkdir -p /etc/docker cat >/etc/docker/daemon.josn <<EOF { "bip& ...

  10. [转帖]TiDB-unsafe recover(三台tikv宕机两台)

    一.背景 名称 数量 tikv 3 副本 3 1.故障: 因为某些原因,两台tikv不可连接,出现region不能访问的故障 2.几条理论: 2.1.多副本原则 存在一半以上的副本则集群访问不受影响( ...