大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星。我们暂不去讨论大数据到底是否适用于您的公司或组织,至少在互联网上已经被吹嘘成无所不能的超级战舰。好像一夜之间我们就从互联网时代跳跃进了大数据时代!关于到底什么是大数据,说真的,到目前为止就和云计算一样,让我总觉得像是在看电影《云图》——云里雾里的感觉。或许那些正在向你推销大数据产品的公司会对您描绘一幅乌托邦似的美丽画面,但是您至少要保持清醒的头脑,认真仔细的慎问一下自己,我们公司真的需要大数据吗?
做为一家第三方支付公司,数据的确是公司最最重要的核心资产。由于公司成立不久,随着业务的迅速发展,交易数据呈几何级增加,随之而来的是系统的不堪重负。业务部门、领导、甚至是集团老总整天嚷嚷的要报表、要分析、要提升竞争力。而研发部门能做的唯一事情就是执行一条一条复杂到自己都难以想象的SQL语句,紧接着系统开始罢工,内存溢出,宕机........简直就是噩梦。OMG!please release me!!!

其实数据部门的压力可以说是常人难以想象的,为了把所有离散的数据汇总成有价值的报告,可能会需要几个星期的时间或是更长。这显然和业务部门要求的快速响应理念是格格不入的。俗话说,工欲善其事,必先利其器。我们也该鸟枪换炮了......。

网上有一大堆文章描述着大数据的种种好处,也有一大群人不厌其烦的说着自己对大数据的种种体验,不过我想问一句,到底有多少人多少组织真的在做大数据?实际的效果又如何?真的给公司带来价值了?是否可以将价值量化?关于这些问题,好像没看到有多少评论会涉及,可能是大数据太新了(其实底层的概念并非新事物,老酒装新瓶罢了),以至于人们还沉浸在各种美妙的YY中。

做为一名严谨的技术人员,在经过短暂盲目的崇拜之后,应该快速的进入落地应用的研究中,这也是踩着“云彩”的架构师和骑着自行车的架构师的本质区别。说了一些牢骚话,当做发泄也好,博眼球也好,总之,我想表达的其实很简单:不要被新事物所迷惑,也不要盲目的崇拜任何一样新事物,更不要人云亦云,这是我们做研究的人绝对要不得。

说了很多也是时候进入正题了。公司高层决定,正式在集团范围内实施大数据平台(还特地邀请了一些社区的高手,很期待.......),做为第三方支付公司实施大数据平台也无可厚非,因此也积极的参与到这个项目中来。正好之前关于OSGi的企业级框架的研究也告一段落,所以想利用CSDN这个平台将这次大数据平台实施过程记录下来。我想一定能为其它有类似想法的个人或公司提供很好的参考资料!

第一记,大数据平台的整体架构设计

1. 软件架构设计

大数据平台架构设计沿袭了分层设计的思想,将平台所需提供的服务按照功能划分成不同的模块层次,每一模块层次只与上层或下层的模块层次进行交互(通过层次边界的接口),避免跨层的交互,这种设计的好处是:各功能模块的内部是高内聚的,而模块与模块之间是松耦合的。这种架构有利于实现平台的高可靠性,高扩展性以及易维护性。比如,当我们需要扩容Hadoop集群时,只需要在基础设施层添加一台新的Hadoop节点服务器即可,而对其他模块层无需做任何的变动,且对用户也是完全透明的。

整个大数据平台按其职能划分为五个模块层次,从下到上依次为:

运行环境层:

运行环境层为基础设施层提供运行时环境,它由2部分构成,即操作系统和运行时环境。

(1)操作系统我们推荐安装REHL5.0以上版本(64位)。此外为了提高磁盘的IO吞吐量,避免安装RAID驱动,而是将分布式文件系统的数据目录分布在不同的磁盘分区上,以此提高磁盘的IO性能。

(2)运行时环境的具体要求如下表:

名称版本说明

JDK1.6或以上版本Hadoop需要Java运行时环境,必须安装JDK。

gcc/g++3.x或以上版本当使用Hadoop Pipes运行MapReduce任务时,需要gcc编译器,可选。

python2.x或以上版本当使用Hadoop Streaming运行MapReduce任务时,需要python运行时,可选。

基础设施层:

基础设施层由2部分组成:Zookeeper集群和Hadoop集群。它为基础平台层提供基础设施服务,比如命名服务、分布式文件系统、MapReduce等。

(1)ZooKeeper集群用于命名映射,做为Hadoop集群的命名服务器,基础平台层的任务调度控制台可以通过命名服务器访问Hadoop集群中的NameNode,同时具备failover的功能。

(2)Hadoop集群是大数据平台的核心,是基础平台层的基础设施。它提供了HDFS、MapReduce、JobTracker和TaskTracker等服务。目前我们采用双主节点模式,以此避免Hadoop集群的单点故障问题。

基础平台层:

基础平台层由3个部分组成:任务调度控制台、HBase和Hive。它为用户网关层提供基础服务调用接口。

(1)任务调度控制台是MapReduce任务的调度中心,分配各种任务执行的顺序和优先级。用户通过调度控制台提交作业任务,并通过用户网关层的Hadoop客户端返回其任务执行的结果。其具体执行步骤如下:

任务调度控制台接收到用户提交的作业后,匹配其调度算法;
请求ZooKeeper返回可用的Hadoop集群的JobTracker节点地址;
提交MapReduce作业任务;
轮询作业任务是否完成;
如果作业完成发送消息并调用回调函数;
继续执行下一个作业任务。

作为一个完善的Hadoop集群实现,任务调度控制台尽量自己开发实现,这样灵活性和控制力会更加的强。

(2)HBase是基于Hadoop的列数据库,为用户提供基于表的数据访问服务。

(3)Hive是在Hadoop上的一个查询服务,用户通过用户网关层的Hive客户端提交类SQL的查询请求,并通过客户端的UI查看返回的查询结果,该接口可提供数据部门准即时的数据查询统计服务。

用户网关层:

用户网关层用于为终端客户提供个性化的调用接口以及用户的身份认证,是用户唯一可见的大数据平台操作入口。终端用户只有通过用户网关层提供的接口才可以与大数据平台进行交互。目前网关层提供了3个个性化调用接口:

(1)Hadoop客户端是用户提交MapReduce作业的入口,并可从其UI界面查看返回的处理结果。

(2)Hive客户端是用户提交HQL查询服务的入口,并可从其UI界面查看查询结果。

(3)Sqoop是关系型数据库与HBase或Hive交互数据的接口。可以将关系型数据库中的数据按照要求导入到HBase或Hive中,以提供用户可通过HQL进行查询。同时HBase或Hive或HDFS也可以将数据导回到关系型数据库中,以便其他的分析系统进行进一步的数据分析。

用户网关层可以根据实际的需求无限的扩展,以满足不同用户的需求。

客户应用层:

客户应用层是各种不同的终端应用程序,可以包括:各种关系型数据库,报表,交易行为分析,对账单,清结算等。

目前我能想到的可以落地到大数据平台的应用有:

1.行为分析:将交易数据从关系型数据库导入到Hadoop集群中,然后根据数据挖掘算法编写MapReduce作业任务并提交到JobTracker中进行分布式计算,然后将其计算结果放入Hive中。终端用户通过Hive客户端提交HQL查询统计分析的结果。

2.对账单:将交易数据从关系型数据库导入到Hadoop集群,然后根据业务规则编写MapReduce作业任务并提交到JobTracker中进行分布式计算,终端用户通过Hadoop客户端提取对账单结果文件(Hadoop本身也是一个分布式文件系统,具备通常的文件存取能力)。

3.清结算:将银联文件导入HDFS中,然后将之前从关系型数据库中导入的POSP交易数据进行MapReduce计算(即对账操作),然后将计算结果连接到另外一个MapReduce作业中进行费率及分润的计算(即结算操作),最后将计算结果导回到关系型数据库中由用户触发商户划款(即划款操作)。

部署架构设计

关键点说明:

1.目前整个Hadoop集群均放置在银联机房中。

2.Hadoop集群中有2个Master节点和5个Slave节点,2个Master节点互为备份通过ZooKeeper可实现failover功能。每个Master节点共享所有的Slave节点,保证分布式文件系统的备份存在于所有的DataNode节点之中。Hadoop集群中的所有主机必须使用同一网段并放置在同一机架上,以此保证集群的IO性能。

3.ZooKeeper集群至少配置2台主机,以避免命名服务的单节点故障。通过ZooKeeper我们可以不再需要F5做负载均衡,直接由任务调度控制台通过ZK实现Hadoop名称节点的负载均衡访问。

4.所有服务器之间必须配置为无密钥SSH访问。

5.外部或内部用户均需要通过网关才能访问Hadoop集群,网关在经过一些身份认证之后才能提供服务,以此保证Hadoop集群的访问安全。

推荐阅读文章

大数据工程师在阿里面试流程是什么?

学习大数据需要具备怎么样基础?

年薪30K的大数据开发工程师的工作经验总结?

基于Hadoop的大数据平台实施——整体架构设计相关推荐

  1. 基于Hadoop的大数据平台的整体架构介绍

    原文地址:点击打开链接 Hadoop是开源的分布式存储+分布式计算平台的框架 大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星.我们暂不去讨论大数据到底是否适用于您的组织,至少在互 ...

  2. 基于Hadoop的大数据平台实施记——整体架构设计[转]

    http://blog.csdn.net/jacktan/article/details/9200979 大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星.我们暂不去讨论大数据到底 ...

  3. 基于Hadoop的大数据平台实施架构的规划

    大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星.我们暂不去讨论大数据到底是否适用于您的公司或组织,至少在互联网上已经被吹嘘成无所不能的超级战舰.好像一夜之间我们就从互联网时代跳跃 ...

  4. 基于Hadoop的大数据平台实施

    大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星.我们暂不去讨论大数据到底是否适用于您的公司或组织,至少在互联网上已经被吹嘘成无所不能的超级战舰.好像一夜之间我们就从互联网时代跳跃 ...

  5. 【赵强老师】大数据平台的整体架构

    先看视频. [赵强老师]大数据平台的整体架构 大数据平台中的主要组件,如下: HDFS(Hadoop分布式文件系统) 源自于Google的GFS论文,发表于2003年10月,HDFS是GFS的山寨版. ...

  6. 大数据平台的整体架构由哪些组成

    大数据平台将互联网使用和大数据产品整合起来,将实时数据和离线数据打通,使数据能够实现更大规模的相关核算,挖掘出数据更大的价值,然后实现数据驱动事务.那么,大数据平台的整体架构由哪些组成呢? 一.事务使 ...

  7. 从零到一,臻于至善|网易邮箱基于StarRocks 开发大数据平台的实践

    作者:网易邮箱 黄贤康.现任职网易邮件事业部资深数据开发工程师,作为主要开发人员参与网易邮箱大数据平台的建立.优化.重构等工作,并取得相当的成效.他长期从事服务端应用及大数据领域的架构研发工作,对相关 ...

  8. 不断迭代,严苛细节,最终性能如何满足? 基于ELK的大数据平台实践分享

    摘要: 在2018年Elastic Meetup 南京交流会中,来自云利来科技的涂海波为现场的听众带来了题为<南京云利来基于ELK的大数据平台>的精彩分享.在本次分享中,他首先进行了公司简 ...

  9. 物联网大数据平台软件开发架构案例解析

    物联网大数据平台软件开发架构案例解析 有人说物联网是引领信息技术的第三次浪潮. 第一次浪潮是个人电脑的出现,开创了信息时代的第一次革命,此次浪潮成就了微软.IBM等巨头. 第二次浪潮是以信息传输为特征 ...

最新文章

  1. 多尺度目标检测 Multiscale Object Detection
  2. HTML中checked1001无标题,是否可以一键切换两个CSS`:checked`伪类?
  3. PHP实现文章的删除,php如何实现删除文章
  4. ASP.NET Core 2.0 支付宝当面付之扫码支付
  5. 评价微型计算机总线的性能指标,计算机组成原理学习笔记(3):总线
  6. 配置多台计算机之间ssh无密码登录的一种简便方法
  7. Android Studio 快速实现上传项目到Github(详细步骤)
  8. mysql常用的存储过程_MySQL存储过程的基本函数
  9. display:table-cell 在页面中的应用
  10. 计算机教学能力大赛实施报告模板,“现代信息技术在课堂教学中的运用”实施情况总结...
  11. 外贸业务员常用询盘报价邮件模板
  12. 详解YUV420数据格式
  13. pandownload复活版下载 | 百度网盘下载速度慢的终极解决方案
  14. 天地图2.0和google卫星非偏移数据叠加
  15. 2021online普及组【吃豆人】O(4N)
  16. 电脑风扇转,屏幕、键盘和鼠标都不亮
  17. 四元数与旋转——学习笔记(一)
  18. 五大常用算法——回溯算法详解及经典例题
  19. IBM造海水电池,“搅局”锂电池产业?
  20. php 微信服务号登录授权

热门文章

  1. js循环nodelist_JS循环Nodelist Dom列表的4种方式
  2. 【JZOJ4222】恐怖的奴隶主
  3. DBlink 初级使用文档
  4. 打印机服务print spooler 无法启动 错误代码1068
  5. Cookie和Session的区别(面试必备)
  6. linux ksh 用户名,linux ksh
  7. python增强现实(一)
  8. Dart sdk 安装
  9. Vue动态添加、删除对象属性
  10. xv6 pagetable labs