最近从一个骨灰级大神同事那里了解到kudu系统,火车上刚好适合学习,就了解了一下。发觉这个系统的理念还是很先进的,和我们项目组目前的开发愿景很相似。大概总结一下,后续再持续关注细节。
系统背景
当前基于hadoop的大数据系统大多数是混合架构,通过hbase做实时更新,数据后台定期转储到hdfs以支持快速分析生成报表。混合架构如下图所示:
虽然当前的架构可以满足用户需求,但是过于繁琐,存储和维护的成本还是很大。kudu的愿景就是通过打造一个高效支持scan和random access,同时结合当前内存、cpu、存储介质的高性能以提供一个优雅高速的存储方案来避免hadoop的混合部署问题。
技术目标
对数据扫描(scan)和随机访问(random access)同时具有高性能,简化用户复杂的混合架构;
高CPU效率,最大化先进处理器的效能;
高IO性能,充分利用先进永久存储介质;
支持数据的原地更新,避免额外的数据处理、数据移动
理想很美好。至于怎么实现笔者暂时还没有深入分析。后续会补上具体细节学习。更多Kudu架构细节,请查阅http://getkudu.io/kudu.pdf
Kudu提供了C++、Java API支持点操作与批操作。Kudu的另一个目标是与现有的Hadoop生态系统工具进行集成。目前,Kudu的Beta版本已经与Impala、MapReduce以及Apache Spark实现了整合,并计划将Kudu集成到整个Hadoop生态系统中。
理念很好,后续持续关注。