`
dajuezhao
  • 浏览: 59699 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hadoop应用设计的思考

阅读更多

 

最近的事确实很多,但大部分精力都放在了项目的设计方面,最近几天才完成了一些初步的编码的工作。在这个阶段,我发现,需要对数据的录入和Job执行的管理做细致的规划,否则在后期的扩展性上将有很大的局限。我设计的框架大体如下:
1


在这个结构里面,可以明显的看到我采用了2种Client,一个是数据录入层,一个是Job管理层。这里我说明一下为什么需要这2种Client。

1、数据录入主要接收数据,数据有多种形式传输,有流模式也有文件模式,为了不影响TaskTracker的性能,我采用Client单独的录入数据。

2、对于Job管理,因为Job任务有先后的顺序管理,而且对于失败的Job需要做重新的尝试,同时还要做到对Job的监控以及执行Job的增删。所以我单独采用一个Client对Job进行管理。实现Job执行的流程控制、状态反馈处理以及Job的热拔插。后面会详细说明。

到这里,可以看到,集群的应用我分成了3个部分。数据录入端、集群以及Job管理端。接下来我说下数据录入和Job管理的内容。

一、数据录入端

在这个部分主要就是对数据进行接收,然后将数据进行简单的时间区分,然后根据指定的时间和条件录入到集群中指定的目录下。例如,时间目录、数据来源目录以及地域目录等等。在这个部分实际上没有什么特别的描述,主要就是接收数据的形式方面,采用了流模式,提升传输的速度。对于一些延迟或是传输失败的数据采用文件搬运的模式。数据接收到本地之后采用Hadoop的API将数据录入到集群中。

二、Job管理端

对于这个部分,主要有以下功能点:

1、Job顺序控制。由于一个业务不可能是一个Job完成,可能需要多个Job来执行,先后存在一些依赖关系,所以通过对Job顺序的控制来完成一组业务。这个通过读取JobList的配置文件来确定先后顺序。

2、Job任务监控。同样,在这个部分主要是采用JobClient来实现。这里就不做细致的代码说明,查看Hadoop的API有详细的说明。如果确实需要代码可以发邮件给我。

3、实现Job的热拔插。由于业务分析的多变,所以需要对Job随时进行一些增删。例如一些Job可能需要新增加,而又有一些Job需要删除不执行。所以这个时候通过配置JobList清单就可以控制Job执行的顺序以及哪些Job执行哪些Job不执行。这样的操作不需要重启任何程序。

4、调度模式。每个业务可能需要多个Job,但是业务之间基本不存在依赖的关系,所以,这个时候,一个业务内的Job就需要实现FIFO模式,也就是顺序执行。但是对于业务之间,我们则需要考虑并发模式,也就是公平调度(公平调度模式需要配置,Hadoop默认是FIFO模式)。在集群支持公平调度模式的情况下,在Job管理端可以实现不同业务下Job的并发执行。

如上图:

1、所有的Business是可以并发的。但是同一个Business下的Job必须是顺序执行,因为存在依赖关系。

2、Job A、Job B、Job C是必须FIFO模式执行。而不同业务下的Job又是可以并发执行。

三、总结

1、分离出来的2种client有利于提升性能,同时具有良好的维护性。

2、Job的管理更加灵活。数据录入相对稳定。集群的计算影响减小。

3、当然,这里还没有提到如何将数据录入到RDBMS中,实际上,一个业务执行完成之后就会将结果数据录入到对应的RDBMS表中。

4、一些代码的编写基本上采用了Java,主要是考虑能更好的调用Hadoop的API。当然中间有些流程也采用了Shell脚本。

5、大体上设计内容如上,如果大家有疑问或是觉得我写的不对的地方欢迎大家发邮件交流。dajuezhao@gmail.com

分享到:
评论

相关推荐

    Hadoop实战中文版

    8.6 删减DataNode 8.7 增加DataNode 8.8 管理NameNode 和SNN 8.9 恢复失效的NameNode 8.10 感知网络布局和机架的设计 8.11 多用户作业的调度 8.11.1 多个JobTracker 8.11.2 公平调度器 8.12 小结第三部分 ...

    Hadoop实战中文版.PDF

    ”大体来说,hadoop应用对系统的要求侧重计算、存储与网络性能的均衡,这一点则正好与英特尔X86平台不谋而合。英特尔至强7400/7500系列处理器已然为百度Hadoop集群奠定了坚实的硬件平台,今年英特尔发布的至强E5平台...

    Hadoop实战

    22412.2 挖掘中国移动的数据 22512.3 在StumbleUpon推荐最佳网站 22912.3.1 分布式StumbleUpon的开端 23012.3.2 HBase和StumbleUpon 23012.3.3 StumbleUpon上的更多Hadoop应用 23612.4 搭建面向企业查询的分析系统...

    Hadoop实战(陆嘉恒)译

    管理Hadoop8.1 为实际应用设置特定参数值8.2 系统体检8.3 权限设置8.4 配额管理8.5 启用回收站8.6 删减DataNode8.7 增加DataNode8.8 管理NameNode 和SNN8.9 恢复失效的NameNode8.10 感知网络布局和机架的设计8.11 多...

    分布式数据库和Hadoop都不够好,于是我们设计了分布式SQL计算系统

    Hadoop实际应用经验的基础上,对比两者的优点和不足,加上自己的一些提炼和思考,设计了一套综合两者的系统,利用两者的优点, 补充两者的不足。具体的说,使用数据库水平分割的思想实现数据存储,使用MapReduce的...

    人工智能项目资料-基于Hadoop的图像处理示例。.zip

    不仅如此,它还可以作为毕设项目、课程设计、作业、甚至项目初期的立项演示。 【人工智能的深度探索】 人工智能——模拟人类智能的技术和理论,使其在计算机上展现出类似人类的思考、判断、决策、学习和交流能力。...

    云计算系统架构文档 下

    云应用集成的N种成功模式(Richard).pdf 人人网开放平台验证与授权方面实践.pdf 使用Chef和Cucumber进行行为(测试)驱动基础设施开发(Sai).pdf 利用同步数据复制最大化数据库的使用效率(Schooner).pdf 又拍网...

    四合一分布式计算框架源代码

    淘宝Fourinone(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想...

    异步并行批处理框架设计的一些思考

    当然,处理分析这些海量数据目前可以借鉴的方案有很多:首先,在分布式计算方面有Hadoop里面的MapReduce并行计算框架,它主要针对的是离线的数据挖掘分析。此外还有针对实时在线流式数据处理方面的,同样也是分布式...

    2018第十届中国系统架构师大会(SACC2018)幻灯片-10月17日

    │ ├─主线2:大数据平台架构设计与应用 │ │ 14:20 - 15:10 钱津津_苏宁智慧零售之电商大数据实践.pdf │ │ 16:20 - 17:10 王晓鹏_品友大数据分析平台演进.pdf │ │ 17:10 - 18:00 李亚坤_Hadoop YARN在...

    2013中国数据库大会ppt(1)

    主流开源NoSQL及分布式存储的应用与思考.pdf 腾讯在线交易平台统一数据层高一致性解决方案.pdf NoSQL一致性实践:我对CAP的一点认识.pdf MongoDB at Qihoo 360.pdf MySQL Cluster实战初探 .pdf SAP HANA深度剖析.pdf...

    2013中国数据大会ppt(2)

    主流开源NoSQL及分布式存储的应用与思考.pdf 腾讯在线交易平台统一数据层高一致性解决方案.pdf NoSQL一致性实践:我对CAP的一点认识.pdf MongoDB at Qihoo 360.pdf MySQL Cluster实战初探 .pdf SAP HANA深度剖析.pdf...

    2013中国数据库大会ppt(3)

    主流开源NoSQL及分布式存储的应用与思考.pdf 腾讯在线交易平台统一数据层高一致性解决方案.pdf NoSQL一致性实践:我对CAP的一点认识.pdf MongoDB at Qihoo 360.pdf MySQL Cluster实战初探 .pdf SAP HANA深度剖析.pdf...

    发挥医疗大数据的价值.pdf

    在平台的设计和实施中要考虑到 与其他应用系统的整合,开发出多个类型的接口,能够 灵活接入其他系统、拓展服务类型。 医院大数据分析平台的总体框架 平台应适应于大数据处理要求,能支持PB级数据 大数提存储 数据...

Global site tag (gtag.js) - Google Analytics