美文网首页收藏
大数据组件扫盲

大数据组件扫盲

作者: 将军红 | 来源:发表于2019-12-17 23:08 被阅读0次
  • Presto
    完全基于内存的并⾏计算,分布式SQL交互式查询引擎是它被设计用来专门处理高速,实时的数据分析;
    本身不存储数据,但是可以接入多种数据源,并且支持跨数据源的级联查询

  • Spark
    是一个基于内存的分布式计算框架。

  • Hive
    是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。(Hive是把SQL翻译成MapReduce作业

  • Impala
    Impala定位类似Hive,Impala并没有自己的存储引擎,其负责解析SQL,并连接其底层的存储引擎。在发布之初Impala主要支持HDFS,Kudu发布之后,Impala和Kudu更是做了深度集成
    Impala更关注即席查询SQL的快速解析

1.presto

Presto是一个低延迟高并发的内存计算引擎,相比Hive,执行效率要高很多。
Presto是常驻任务,接受请求立即执行,全内存并行计算;hive需要用yarn做资源调度,接受查询需要先申请资源,启动进程,并且采用mapreduce计算模型,中间结果会经过磁盘。

一个查询分解为多个stage 每个 stage拆分多个task,每个task处理一个or多个split ,一个task被分解为一个或多个Driver

数据规模PB 不是把PB数据放到内存,只是在计算中拿出一部分放在内存、计算、抛出、再拿
不适合多个大表的join操作,因为presto是基于内存的,太多数据内存放不下的
如果一个presto查询查过30分钟,那就kill吧,说明不适合 也违背了presto的实时初衷.
catalog:相当于MySQL的一个实例,
schema:相当于MySQL的database

软件架构 master-slave架构

架构图

coordinator
中心的查询角色 接收查询请求、解析SQL 生成执行计划 任务调度 worker管理
coordinator进行是presto集群的master进程

worker
执行任务的节点

connector
presto以插件形式对数据存储层进行了抽象,它叫做连接器,不仅包含Hadoop相关组件的连接器还包括RDBMS连接器
具体访问哪个数据源是通过catalog 中的XXXX.properties文件中connector.name决定的
提取数据 负责实际执行查询计划

discovery service
将coordinator和worker结合在一起服务;
worker节点启动后向discovery service服务注册
coordinator通过discovery service获取注册的worker节点

优点 presto优缺点
presto执行sql图

低延迟原理

基于内存的并行计算

流水式计算作业

本地化计算

Presto在选择Source任务计算节点的时候,对于每一个Split,按下面的策略选择一些minCandidates
优先选择与Split同一个Host的Worker节点
如果节点不够优先选择与Split同一个Rack的Worker节点
如果节点还不够随机选择其他Rack的节点

动态编译执行计划

GC控制

容错

1、如果某个worker挂了,discovery service 会通知coordinator
2、对于query是没有容错的,一旦worker挂了,query就执行失败了,与其在这里容错不如直接执行
3、coordinator 和discovery service 的单点故障问题还没有解决


2.Hive

产生背景(解决的问题)
产生背景有以下几个方面:
1:MapReduce编程的不便性
2:HDFS上的文件缺少Schema(字段名,字段类型等)

Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。

Hive 没有专门的数据格式。 Hive 可以很好的工作在 Thrift 之上,控制分隔符,也允许用户指定数据格式

Hive直接执行HQL语句有以下三种方式:
1:直接命令行执行SQL语句:hive -e "select from table…
2:执行HQL文件中的语句:hive -f temp.hql
3:打开调试模式:hive --hiveconf

Hive在查询100Gb级别的数据时,消耗时间已经是分钟级了

hive优缺点

3.Spark

是一个基于内存的分布式计算框架。他的执行效率比MapReduce提高了很多!

总结
1:在数据源的级联查询时,用Presto写SQL语句进行查询;
2:在进行简单的数据查询时,可以用HQL进行建表,查询,关联等;
3:当数据量较大时,可用SparkSQL进行建表,查询,关联等;

Impala

KI参考链接

impala是建立在Hadoop生态圈的交互式SQL解析引擎,Impala的SQL语法与Hive高度兼容,并且提供标准的ODBC和JDBC接口。Impala本身不提供数据的存储服务,其底层数据可来自HDFS、Kudu、Hbase甚至亚马逊S3。
Impala定位类似Hive,不过Impala更关注即席查询SQL的快速解析,对于执行时间过长的SQL,仍旧是Hive更合适。对于GroupBy等SQL查询,Impala进行的是内存计算,因而Impala对机器配置要求较高,官方建议内存128G以上,此类问题Hive底层对应的是传统的MapReduce计算框架,虽然执行效率低,但是稳定性好,对机器配置要求也低。
其底层数据可来自HDFS、Kudu、Hbase甚至亚马逊S3

Impala VS Hive:
Impala本身并不是Hive的完全替代品,对于一些大吞吐量长时间执行的请求,Hive仍然是最稳定最佳的选择,哪怕是SparkSQL,其稳定性也无法跟Hive媲美。
稳定性方面Impala不如Hive,但是在执行效率方面,Impala毫无疑问可以秒杀Hive。Impala采用内存计算模型,对于分布式Shuffle,可以尽可能的利用现代计算机的内存和CPU资源。同时,Impala也有预处理和分析技术,表数据插入之后可以用COMPUTE STATS指令来让Impala对行列数据深度分析。

Impala不会对表数据Cache,Impala仅仅会Cache一些表结构等元数据。虽然在实际情况下,同样的query第二次跑可能会更快,但这不是Impala的Cache,这是Linux系统或者底层存储的Cache。

Impala的优势

  • 和Hive高度相似的SQL语法,无需太多学习成本
  • 超大数据规模SQL解析的能力,高效利用内存与CPU利用,快速返回SQL查询结果。
  • 集成多个底层数据源,HDFS、Kudu、Hbase等数据皆可通过Impala共享,并且无需进行数据同步。
  • 与Hue深度集成,提供可视化的SQL操作以及work flow。
  • 提供标准JDBC和ODBC接口,方便下游业务方无缝接入。
  • 提供最多细化到列的权限管理,满足实际生产环境数据安全要求。

相关文章

  • 大数据组件扫盲

    Presto完全基于内存的并⾏计算,分布式SQL交互式查询引擎是它被设计用来专门处理高速,实时的数据分析;本身不存...

  • 2019-01-18 Vue学习

    父组件传数据给子组件(props),子组件传给父组件($emit("触发大的事件”,传的数据)) 插槽(slot)...

  • 【Vue】组件

    Vue的两大核心 数据驱动 - 数据驱动界面显示 模块化 - 复用公共模块,组件实现模块化提供基础 组件基础 组件...

  • 技术相关进程详解

    hadoop3大组件 hdfs:存贮数据 NameNode管理元数据 SencondaryNa...

  • Growth数据扫盲

    七层结构 看底层数据形成的原因,更具体。 看顶层预测未来成像,不细致仅是大概。 1.日志 Linux环境下,Apa...

  • IBM ECM FileNet扫盲篇 (2) - Content

    今天接着给大家扫盲,着重介绍一下FileNet P8中的核心组件Content Platform Engine,今...

  • Vue的特点

    vue两大特点:响应式编程、组件化。 vue的优势:轻量级框架、简单易学、双向数据绑定、组件化、数据和结构的分离、...

  • Vue 组件数据传递

    Vue 组件数据传递 父组件->子组件 父组件到子组件的数据通过 props 传递 在父组件注册子组件,传递数据到...

  • 组件之间数据同步

    数据同步的核心:父组件给子组件传递引用数据类型的数据 父组件: 子组件:

  • 十五、组件间数据传递

    1.父子组件 2.组件间数据传递(通信) 2.1子组件访问父组件的数据 2.2父组件访问子组件的数据 总结:子组件...

网友评论

    本文标题:大数据组件扫盲

    本文链接:https://www.haomeiwen.com/subject/xbsenctx.html