Archive for Distributed System

Spark性能优化——和shuffle搏斗

Spark性能优化——和shuffle搏斗

Spark的性能分析和调优很有意思,今天再写一篇。主要话题是shuffle,当然也牵涉一些其他代码上的小把戏。

以前写过一篇文章,比较了几种不同场景的性能优化,包括portal的性能优化,web service的性能优化,还有Spark job的性能优化。Spark的性能优化有一些特殊的地方,比如实时性一般不在考虑范围之内,通常我们用Spark来处理的数据,都是要求异步得到结果的数据;再比如数据

[......]阅读全文

分享到:

Notes: Spark metrics

Below are some notes taken for future reference based on the brainstorm meeting last week, with company confidential information removed.

Background

The team use a home made workflow to manage the com

[......]阅读全文

分享到:

Spark的性能调优

Spark的性能调优

下面这些关于Spark的性能调优项,有的是来自官方的,有的是来自别的的工程师,有的则是我自己总结的。

基本概念和原则

首先,要搞清楚Spark的几个基本概念和原则,否则系统的性能调优无从谈起:

  • 每一台host上面可以并行N个worker,每一个worker下面可以并行M个executor,task们会被分配到executor上面去执行。Stage指的是一组并行运行的task,stage内部是不

[......]阅读全文

分享到:

Hadoop的Map-side join和Reduce-side join

Hadoop的Map side join和Reduce side join

Hadoop中连接(join)操作很常见,Hadoop“连接”的概念本身,和SQL的“连接”是一致的。SQL的连接,在维基百科中已经说得非常清楚。比如dataset A是关于用户个人信息的,key是用户id,value是用户姓名等等个人信息;dataset B是关于用户交易记录的,key是用户id,value是用户的交易历史等信息。我们当然可以对这两者以共同键用户id为基准来连接两边的数据。

[......]阅读全文

分享到:

Hadoop的Secondary Sorting

Hadoop的Secondary Sorting 这几天项目中使用Hadoop遇到一个问题,对于这样key-value的数据集合:id-biz object,对id进行partition(比如根据某特定的hash算法P),分为a份;使用数量为b的reducer,在reducer里面要使用第三方组件进行批量上传;上传成文件,文件数量为c,但是有两个要求:

  • 上述a、b、c都相等,从而使得每个partition的数据最终都通过同一个reducer上

[......]阅读全文

分享到:

Dynamo的实现技术和去中心化

Dynamo的实现技术和去中心化

Amazon Dynamo是分布式的key-value系统,最近阅读了Dynamo最初的论文《Dynamo: Amazon's Highly Available Key-value Store》,本文想聊一聊它的去中心化(decentralization)。既有阅读相关材料后对其实现的理解,也有自己的思考,其中如有不正确言论欢迎指出。

中心节点

通常,我们见到的分布式存储结构都是具

[......]阅读全文

分享到:

Hadoop无法解决的问题

因为项目的需要,学习使用了Hadoop,和所有过热的技术一样,“大数据”、“海量”这类词语在互联网上满天乱飞。Hadoop是一个非常优秀的分布式编程框架,设计精巧而且目前没有同级别同重量的替代品。另外也接触到一个内部使用的框架,对于Hadoop做了封装和定制,使得更满足业务需求。我最近也想写一些Hadoop的学习和使用心得,但是看到网上那么泛滥的文章,我觉得再写点笔记一样的东西实在是没有价值。倒不

[......]阅读全文

分享到:

Notes: Hadoop-based open source projects

Notes: Hadoop based open source projectsHere's my notes about introduction and some hints for Hadoop-based open source projects. Hope it's useful to you.

Management Tool

Ambari: A web-based tool for provisioning, managing, and mon

[......]阅读全文

分享到:

关于“无状态”,从Amazon的工作流框架中获得的思考

这个话题是从我对Amazon云平台的工作流框架AWS Flow Framework的使用研究中想到的,对于一个工作流引擎来说,一个完整工作流的某个阶段完成后,当前阶段的状态必须要被存储下来。

 

关于“无状态”,从Amazon的工作流框架中获得的思考

 

Workflow(Decider)来决定任务的执行流程,Activity来执行实际的任务,二者都封装在相应的Worker中执行,但不直接交互,而是通过SWF管理起来。不过

[......]阅读全文

分享到:

关于“异步”,从Amazon的工作流框架中获得的思考

云平台的工作流框架AWS Flow Framework给我带来的另一个有所感触的话题是“异步”:

关于“异步”,从Amazon的工作流框架中获得的思考

这个框架把异步的行为划分为Workflow端执行的部分和Activity端执行的部分,Workflow控制工作流程,Activity执行具体的工作流task,二者都以poll的模式不断从中心SWF去获取任务。对于开发者来说,用类似这样简单的代码,就完成了整个工作流任务的部

[......]阅读全文

分享到:

Preview on Feedage: