Lamda Architecture
http://radar.oreilly.com/2014/07/questioning-the-lambda-architecture.html
这篇文章出自Linkedin工程师之手,主要讨论了Lambda Architecture的优缺点。最常见的Lambda实现是Hadoop做Batch Layer,Storm做Speed Layer,而HBase做Serving Layer。文章作者认为这需要维护两套处理逻辑相同的代码,因为Hadoop和Storm的编程接口是不一样的。他提出可以用stream processing框架同时做Batch和Speed Layer。
http://www.mapr.com/developercentral/lambda-architecture
http://jameskinley.tumblr.com/post/37398560534/the-lambda-architecture-principles-for-architecting
文章主要是描述了Lambda Architecture的一种典型实现方式。
HBase
http://blog.cloudera.com/blog/2012/06/hbase-write-path/
文章描述了写HBase的大致过程,理解为什么HBase可以在append-only的HDFS之上实现random write
http://blog.sematext.com/2012/07/16/hbase-memstore-what-you-should-know/
文章讨论了memstore的作用以及一些调优配置,memstore是实现random low-latency write的关键环节。
Service Routing/Registry
http://jasonwilder.com/blog/2014/02/04/service-discovery-in-the-cloud/
文章讨论了service discovery的作用以及几个开源实现。
http://aws.amazon.com/route53/
Route 53是AWS提供的一个proxy-based router/load balancer。
http://www.rackspace.com/blog/service-registry-behind-the-scenes-why-we-built-it/
http://www.rackspace.com/blog/keep-track-of-your-services-and-applications-with-the-new-rackspace-service-registry/
Rackspace提供的service registry
Client Failover
http://blog.cloudera.com/blog/2012/03/high-availability-for-the-hadoop-distributed-file-system-hdfs/
其中一节介绍了HDFS的Client Failover。有意思的一点是提供特别的annotation来判断方法的idempotence(幂等性),以决定是否做failover。
http://activemq.apache.org/failover-transport-reference.html
介绍了ActiveMQ的failover机制。
它们的共同特点是在Client端配置多个Server URI,然后由Client library来负责按顺序尝试连接,第一个失败failover到第二个,依次类推。
YARN Resource Manager Resiliency
http://zh.hortonworks.com/blog/rm-yarn-resilience/
http://zh.hortonworks.com/blog/apache-hadoop-yarn-resilience-hadoop-yarn-applications-across-resourcemanager-restart-phase-1/
http://zh.hortonworks.com/blog/resilience-apache-yarn-applications-across-resourcemanager-restart-phase-2/
这3篇系列文章介绍了如何避免RM成为单点故障,即RM即使挂掉,重启后能够恢复之前的app,而不需要client重新提交。到了Phase 1,RM重启后,将之前正在运行的app停掉,然后由RM自动重新提交;到了Phase 2,之前正在运行的app都可以继续运行,不需要重新提交。