Spark 快速入门

本教程快速介绍了Spark的使用。 首先我们介绍了通过Spark 交互式shell调用API( Python或者scala代码),然后演示如何使用Java, Scala或者Python编写独立程序。 你可以查看Spark编程指南了解完整的参考。

开始下面的快速入门之前,首先需要到Spark网站下载一份打包好的spark。 既然本教程中我们不使用HDFS,你可以随便下载一个适配任何Hadoop的版本的Spark。

本教程翻译时的Spark版本为1.1.1

阅读全文

Spring Data for Mongo 介绍

本文将快速介绍Spring Data for Mongo的使用。
Spring Data for MongoDB是Spring Data的一个子模块。 目标是为MongoDB提供一个相近的一致的基于Spring的编程模型。
Spring Data for MongoDB核心功能是映射POJO到Mongo的DBCollection中的文档,并且提供Repository 风格数据访问层。

相似的ORM/持久化框架还有

  • morphia: MongoDB官方支持的ORM框架,可以很好的和Spring, Guice等DI框架集成,使用起来很方便。
  • Hibernate OGM: Hibernate提供了Hibernate风格的NoSql ORM框架。
  • jongo: 提供Mongo shell一样灵活的查询,并且提供ORM by Jackson,和Mongo java driver一样快。

阅读全文

Kafka和Spring集成实践

本文以单机的环境演示如何将Kafka和Spring集成。
单机的环境最容易搭建, 并且只需在自己的PC上运行即可, 不需要很多的硬件环境,便于学习。 况且,本文的目的不是搭建ZooKeeper的集群环境, 而是重点介绍Kafka和Spring的应用。
具体的软件环境如下:

  • OS: CentOS 6.4
  • Zookepper: zookeeper-3.4.6
  • Kafka: kafka_2.9.1-0.8.2-beta
  • Java: JDK 1.7.0_45-b18
  • Spring:4.0.6

本例子在我的这个环境中运行正常, 全部代码可以到 github 下载。

阅读全文

ZooKeeper程序员指南

翻译于最新的ZooKeeper 3.4 文档

前言

本文档是为那些希望利用ZooKeeper的协调服务建立分布式应用程序的开发人员而写的指南。它包含了Zookeeper的概念和实践内容。
指南的前四节介绍了ZooKeeper各种概念的高层次的讨论。 对于理解ZooKeeper如何工作和如何使用它这些概念都是必须了解的。尽管不包含代码,但还是假定你熟悉分布式计算相关的问题。
第一组的章节包括:

  • ZooKeeper数据模型: The ZooKeeper Data Model
  • ZooKeeper的会话: ZooKeeper Sessions
  • ZooKeeper的监视: ZooKeeper Watches
  • 一致性保证:Consistency Guarantees
    (下面的翻译中概念尽量不翻译成中文,因为英文更能直观的反映其概念)

接下来的四个章节提供了编程实践信息,它们是:

  • Building Blocks: A Guide to ZooKeeper Operations
  • Bindings
  • Program Structure, with Simple Example [tbd]
  • Gotchas: Common Problems and Troubleshooting

附录中的链接是其它的有用的,和ZooKeeper相关的信息.
书中的章节都可以独立阅读,然而在开发你的第一个ZooKeeper程序之前, 你最好先阅读一下ZooKeeper数据模型和ZooKeeper基本操作。Simple Programmming Example对于理解ZooKeeper客户端程序的基本结构也很有帮助.

阅读全文

Hadoop生态圈一览

Hadoop是一个大规模的分布式可扩展的批处理大数据框架(PB级别),可以运行于千台服务器的集群。

最近几年Hadoop生态圈持续成长。 涌现了很多的关于工具和框架的术语。 也有很多的组织基于Hadoop进行研究和创新, 使Hadoop变得越来越好,越来越容易。基于作者的几周的潜心研究, 他提供了一个思维脑图, 描绘了Hadoop的生态圈, 可以帮助我们了解Hadoop生态圈的全貌。

阅读全文

Apache Curator Framework

Curator framework提供了高级API, 极大的简化了ZooKeeper的使用。 它在ZooKeeper基础上增加了很多特性,可以管理与ZOoKeeper的连接和重试机制。这些特性包括:

  • 自动连接管理
    ** 有些潜在的错误情况需要让ZooKeeper client重建连接和重试。Curator可以自动地和透明地处理这些情况
  • Cleaner API
    ** 简化原始的ZooKeeper方法,事件等
    ** 提供现代的流式接口
  • 技巧(Recipe)实现
    ** Leader选举
    ** 共享锁
    ** Path缓存和监控
    ** 分布式队列
    ** 分布式优先级队列
    ** ...

阅读全文

Apache Curator Recipes

Curator实现了 ZooKeeper recipes文档中列出的所有技巧(除了两段提交two phase commit)。点击下面的技巧的名字可以查看详细信息。

Elections

  • Leader Latch - 在分布式计算中, leader选举是在几台节点中指派单一的进程作为任务组织者的过程。在任务开始前, 所有的网络节点都不知道哪一个节点会作为任务的leader或coordinator. 一旦leader选举算法被执行, 网络中的每个节点都将知道一个特别的唯一的节点作为任务leader.

  • Leader Election - 初始的leader选举实现.

阅读全文