Alluxio初探

前言

又到年底了,职场充斥着“裁员”、“优化”味道。前段时间所在公司也经历了一波,反正有那么几天周围的同事都无心工作。这周公司也算是“稳定”了,不过还是有些危机感。有时候,在反思这一年来自己工作的“亮点”。想了想,好像一直在“优化”的路上。这里的优化是和工作相关的,集群,存储,计算的治理占据了2019大半的“江山”。说来惭愧,好像也没实打实地落地成一个产品。

又到周末了,天气貌似不错。没有活动,自己看了看工作wiki,理了理工作内容。过程中,很多细节上的事情没有沉淀(虽然今年也依据工作内容输出了一点点想法),缺少细致的总结。导致现在很多事情让自己说,还是有很多不确定的细节。

再看alluxio

看到年初第一件事,集群拆分。主要工作是为了隔离ETL任务和实时任务(spark streaming或flink作业)。新的实时集群,只有计算资源,没有过多的存储。所以,问题就抽象成:计算资源隔离,存储资源共享(hdfs)问题。当时也做了简单的调研。最终采用了最快最直接的方式实现了。具体细节见:集群优化心酸历程

有大半年没关注alluxio了,看了看官网。稳定版本已经从之前的1.8.1到了2.1.0,可见社区也是很活跃的。然后看到出了一本书《Alluxio:大数据统一存储原理与实践》。
Alluxio:大数据统一存储原理与实践

于是,买了一本拜读拜读。书不厚,大概花了一下午,简单过了下,有些章节泛读(或跳过)。将一些需要进一步探索的章节输出脑图。
脑图

整个书大概可以分3部分,一部分是原理性描述的(也是后续需要重点研究的);另一部分,描述如何集成部署,这块可以放在以后读,和官网的文档对比了下,差不多(可以跳过)。其余部分,就是一些实践案例分享,一些场景分析(可以泛读,看看自己是否面临类似的问题)。

看看官方文档

后续

看了这本书后,对alluxio的一些核心概念产生了兴趣。当然,很多设计理念,世面上大数据框架都有涉及。比如:高可用;master-worker;缓存;时间窗口;缓存策略(LRU等);远程过程调用等等,可见,底层的实现原理都是通的。于是,萌生了一些好奇,一些策略是如何在alluxio中实践的?

早期,在调研的时候没有好好去看实现细节。经过今天的梳理和反思,感觉是需要细致的去了解下。于是fork源码,打算花上几天理理代码思路。


待续…

Alan Zhang wechat
欢迎您扫一扫上面的微信公众号“补愚者说”,订阅我的博客!