hadoop - Apache Kylin 容错

标签 hadoop bigdata analytics olap kylin

Apache Kylin 看起来是一个很棒的工具,可以满足大量数据科学家的需求。这也是一个非常复杂的系统。我们正在开发一个内部解决方案,其目标完全相同,即具有低查询延迟的多维 OLAP 多维数据集。 在众多问题中,我现在最关心的是容错。 交易数据量大,立方体必须增量更新,有些立方体是长时间更新的,比如时间维度值为年尺度的立方体。在这么长的时间里,复杂系统的某些部分肯定会失败,系统如何确保所有原始交易记录只聚合到长方体中一次,不多也不少?即使每一 block 都有自己的容错机制,并不意味着它们会自动一起演奏。 为简单起见,我们可以假设所有输入数据都由另一个进程保存在 HDFS 中,并且可以以您希望从任何中断中恢复的任何方式“回放”,无论是自愿的还是强制的。 Kylin 的容错考虑因素是什么,或者这不是真正的问题?

最佳答案

存在数据故障和系统故障。

数据容错:Kylin 将立方体划分为段,并允许在不影响整个立方体的情况下重建单个段。例如,假设每天建立一个新的每日段,并在周末合并到每周段;每周段合并到每月段等。当一周内出现数据错误(或任何变化)时,您只需要重建一天的段。往后的数据更改将需要重建每周或每月的段。

分段策略是完全可定制的,因此您可以平衡数据容错性和查询性能。更多的段意味着对数据更改的容忍度更高,但也意味着每个查询要执行的扫描更多。 Kylin 提供了 RESTful API,外部调度系统可以调用 API 来触发段构建和合并。

多维数据集仍然在线,并且可以在其某些段正在重建时为查询提供服务。

系统容错:Kylin 依赖于 Hadoop 和 HBase 来实现大部分系统冗余和容错。除此之外,Kylin 中的每个构建步骤都是幂等的。这意味着您可以安全地重试失败的步骤而不会产生任何副作用。这确保了最终的正确性,无论构建过程经历了多少次失败和重试。

(我也是 Apache Kylin 的共同创建者和提交者。:-)

关于hadoop - Apache Kylin 容错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29062904/

相关文章:

java - 快速多次处理大 (GB) 文件 (Java)

python - 排序大文本数据

ios - 让网站知道它们是从 iOS App 内的 WebView 访问的

ios - 选择何时在 iPad 上使用 Flurry 发送数据

hadoop - 删除 pig 目录匹配模式

exception - 格式化 HDFS 时出现 UnknownHostException

python - 如何将键值对减少为键和值列表?

google-analytics - Google Analytics(分析)显示实时目标命中情况,但不在转化报告中

Hadoop on Batch System 作为用户进程

斯卡拉 Spark /鲨鱼 : How to access existing Hive tables in Hortonworks?