hadoop中使用到的设计模式

设计模式(Design pattern)的官方定义是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。解决的是代码可重用、代码更容易被他人理解、保证代码可靠性的问题。
Hadoop作为一个06年开始开源走到现在的框架,已经是一个非常成熟和经典的系统了。这个里面对于设计模式的使用也是非常的经典,本篇主要介绍一下Hadoop中使用到的设计模式,非常值得学习。额外需要提到的是这里的设计模式特指:四人帮23种模式.
关于设计模式的详细介绍可见:http://www.runoob.com/design-pattern/design-pattern-tutorial.html
1.创建型模式
1.1 单例模式 单例模式(Singleton Pattern)
RMPolicyProvider : 双重锁的形式单例实现。
NMPolicyProvider,HDFSPolicyProvider : 饿汉式的单例实现。
一般是要求全局单例的要求。

阅读全文…

Hadoop中的类命名

干程序员这行,一个很常见的工作就是需要给程序中的变量、方法、类命名,那么如何合理的取名字就是一个非常有意思和挑战的事情。通常来说,不好定义变量有以下几种风格。

阅读全文…

学习一个新的开源框架的方法论

1. 明确开源框架的第一原则
例如HBase提供的是大数据量下的高性能随机读写。官方的首页就是如此描述的:Use Apache HBase™ when you need random, realtime read/write access to your Big Data
这个就是学习一个新东西时候的第一原则,把握住第一原则后,你会发现这个开源组件的很多设计思想和解决方案都是围绕这个第一原则来实现的。
再举个例子:Dubbo,这个开源框架主要是为了解决搭建一个SOA的服务治理。不是一个简单的RPC框架,很多人误解了Dubbo是一个RPC框架,这个是错误的。
2.跑下它quick start .
这个主要是为了了解有一个感性的认识,对于一个新东西而言。
不需要很深入,能跑通即可。
 
3.查看架构图及它的配置文件
这个环节主要是让你对整个框架有一个很宏观的认识,这个框架包含了那些模块,每个模块的分工是如何。之间的的核心流程的数据流是如何流转的。这样有一个整体的任务后,再对其中的一些关键模块再做细节的了解。
看配置文件是从另一个角度的理解系统的模块划分,同时配置文件会包含了很多关键有用的细节。
例如hadoop的配置文件分为了
核心的HDFS配置:core-site.xml,主要是命名空间,基本权限等信息
hdfs的相关配置:hdfs-site.xml ,如何做HA,其中namenode和datenode的配置 
调度系统:yarn-site.xml,如何调度,分配资源
调度运行时配置:mapred-site.xml 在具体运行过程中的配置,如何重试,调度端口等。
从几个文件就可以即整体又细节的了解整个系统。
再看spark的配置分为:整体配置,运行时配置,shuffle配置,安全配置,UI配置,压缩和序列化配置,内存管理配置等,从这几个方面基本就可以知道spark的整体了。
 
4.看源码
到了这个环节,基本对于系统是怎么运转有了一个外部的认识,那么具体要深入优化的话,就必须看源码了。查找一些根源的问题。


阅读全文…

spark简介

一 核心术语
----------------------------------------
Application : 运行在spark上的应用,包含了driver和executor
Application jar : 打包的可执行jar
Driver program : 运行main函数的类
Cluster manager :外部的资源调度,例如mesos,yarn
Deploy mode : 部署运行模式,例如local,client,yarn等
Worker node:具体的执行节点,例如yarn中的nodemanager
Executor : 在Worker node上运行的进程,例如yarn中的container
Task:最小可执行的单元
job:具体的某个操作行为,例如spark中的save,collector
Stage :每个作业的执行阶段,类似于mr中的map, reduce
二 整体架构图:
----------------------------------------
spark = 一个driver + 少量的executor + 大量的task组成
driver : 打的可执行spark包
executor : 一个独立的jvm进程,在spark on yarn中,executor = container
task : 独立jvm进程中的线程

阅读全文…

Pages: 1 2 3 4 5 6 7 8 9 10 ... 22 23 24 Next