分享

分布式数据仓库-Tajo

1、Tajo 是什么?
2、Tajo 有什么特点?
3、Tajo的架构设计?

已有(6)人评论

跳转到指定楼层
fanbells 发表于 2014-3-27 00:21:54
Tajo 是一个分布式数据仓库系统,基于 Hadoop 实现,特点是低延迟、高可伸缩,提供专用查询和 ETL 工具.

特点  ​

    ​交互式和批处理查询
    ​            ​存储在HDFS中大型数据集和其他数据源的完全分布式的SQL查询处理
    ​            ​非常低的响应时间(100毫秒?),在合理数据范围内的简单查询
    ​长时间运行的查询支持
    ​            ​容错支持,避免某些任务失败后的查询重启
    ​            ​动态调度,处理和异构集群节点故障、
    ​ETL
    ​    ​        ETL 可实现不同数据格式之间的转换
    ​            ​支持多种文件格式,如 CSV、RCFile 和 RowFile
    ​扩展性
    ​    ​        支持用户自定义函数
    ​            ​提供自定义文件格式的 Scanner/Appender 接口
    ​兼容性
    ​            ​遵循 ANSI/ISO SQL 标准,非标准方面遵循 PostgreSQL 规范
    ​            ​支持 HiveQL 模式
    ​            ​在 HCatalog 和 Hive MetaStore 实现表访问
    ​            ​支持 JDBC 驱动
    ​简单
    ​            ​提供交互式 Shell 来提交 SQL 查询到 Tajo 集群
    ​            ​提供备份和恢复工具
    ​            ​异步/同步 Java API 来提交 SQL 查询到 Tajo 集群

    ​Hadoop之上的SQL引擎已经非常多,大致分两种

(1)将SQL转化为MapReduce。典型代表是Apache Hive,这种系统的特点是扩展性和容错性好,但性能低下。为了弥补SQL on MapReduce的不足,google提出了Tenzinghttp://research.google.com/pubs/pub37200.html),与Hive不同,Tenzing充分借鉴了MapReduce和DataBase的优势,首先,它对传统的MapReduce进行了优化(比如Map 可以不写磁盘,Reduce可不必排序等),使其性能更高,采用MapReduce一大优势是使Tenzing具有了很好的扩展性和容错性.
Google在Dremel论文(http://research.google.com/pubs/pub36632.html)中这样描述Dremel的适用场景:
“Dremel is not intended as a replacement for MR and is often used in conjunction with it to analyze outputs of MR pipelines or rapidly prototype larger computations.”
其次,它借鉴了传统database的优势,嵌有一个cost-based 优化器,以对SQL查询计划进行充分优化。

(2)借鉴分布式数据库思想。典型代表是Google DremelApache DrillCloudera Impala,这类系统的特点是性能高(与Hive等系统比),但扩展性(包括集群规模扩展和SQL类型支持多样性)和容错性较差,Google在Dremel论文(http://research.google.com/pubs/pub36632.html)中这样描述Dremel的适用场景:
“Dremel is not intended as a replacement for MR and is often used in conjunction with it to analyze outputs of MR pipelines or rapidly prototype larger computations.”
也就是说,Dremel并不是用以取代MR的,而是弥补MR不足,通常用于分析MR产生的数据(这些数据量小,处理这些数据时,对SQL表达能力和框架容错性要求低)。

Tajo的设计思想类似于Tenzing,它充分借鉴了MapReduce和DataBase的优势,使其具有Hive的扩展性和容错性好的优点,但同时性能比Hive高不少。

Tajo采用了Master-worker架构,具体如下:

(1) TajoMaster:为客户端提供查询服务和管理各个QueryMaster。
(2) QueryMaster:负责一个query的解析、优化与执行,它与多个task runner worker协同工作,完成一个query的计算。
如下图所示,Tajo采用传统数据库技术开发了SQL解析器,包括SQL解析,生成查询计划、优化查询计划、执行查询技术等,但与传统数据库不同,Tajo最终执行查询计划时借鉴了MapReduce的设计思想,它将查询计划转化为一系列任务,这样,执行查询计划实际上就是执行这些任务,而每个任务是一个计算单位,同Map Task和Reduce Task一样,它可以重复执行、有进度汇报等,这样,Tajo可以直接使用MapReduce中的容错、推测执行等机制。此外,Tajo使用YARN进行资源管理。
apache-tajo-architecture.jpg

apache-tajo-query-engine.jpg


回复

使用道具 举报

songtao 发表于 2014-3-28 09:13:17
Shark类似的?

这种框架太多了哈
回复

使用道具 举报

wkzyehui 发表于 2014-3-28 09:38:15
不明觉厉啊
回复

使用道具 举报

wkzyehui 发表于 2014-3-28 09:38:58
好好学习天天向上
回复

使用道具 举报

471505881qq 发表于 2014-3-31 15:36:08
​交互式和批处理查询
    ​            ​存储在HDFS中大型数据集和其他数据源的完全分布式的SQL查询处理
    ​            ​非常低的响应时间(100毫秒?),在合理数据范围内的简单查询
    ​长时间运行的查询支持
    ​            ​容错支持,避免某些任务失败后的查询重启
    ​            ​动态调度,处理和异构集群节点故障、
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条