1. 软件架构设计
大数据平台架构设计沿袭了分层设计的思想,将平台所需提供的服务按照功能划分成不同的模块层次,每一模块层次只与上层或下层的模块层次进行交互(通过层次边界的接口),避免跨层的交互,这种设计的好处是:各功能模块的内部是高内聚的,而模块与模块之间是松耦合的。这种架构有利于实现平台的高可靠性,高扩展性以及易维护性。比如,当我们需要扩容Hadoop集群时,只需要在基础设施层添加一台新的Hadoop节点服务器即可,而对其他模块层无需做任何的变动,且对用户也是完全透明的。
整个拉卡拉大数据平台按其职能划分为五个模块层次,从下到上依次为:
运行环境层:
运行环境层为基础设施层提供运行时环境,它由2部分构成,即操作系统和运行时环境。
(1)操作系统我们推荐安装REHL5.0以上版本(64位)。此外为了提高磁盘的IO吞吐量,避免安装RAID驱动,而是将分布式文件系统的数据目录分布在不同的磁盘分区上,以此提高磁盘的IO性能。
(2)运行时环境的具体要求如下表:
名称 | 版本 | 说明 |
JDK |
1.6或以上版本 |
Hadoop需要Java运行时环境,必须安装JDK。 |
gcc/g++ |
3.x或以上版本 |
当使用Hadoop Pipes运行MapReduce任务时,需要gcc编译器,可选。 |
python |
2.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集群的访问安全。
相关推荐
【Hadoop大数据开发基础-PPT课件】是一个涵盖了Hadoop生态系统入门知识的教育资源,适合初学者和希望深入了解大数据处理技术的IT专业人士。本课件主要围绕Hadoop框架展开,包括其设计原理、核心组件以及实际应用。...
【大数据平台实施——整体架构设计】 大数据作为信息技术领域的一个热门话题,已经成为众多企业和组织追求的新方向。尽管对于大数据是否适合每个公司或组织尚存争议,但不可否认的是,大数据已经在互联网上被广泛...
为了应对这些挑战,中科曙光研发了XData-Hadoop大数据软件,旨在为企业提供一个稳定、高效、易于管理的大数据处理平台。 #### 二、Hadoop的核心作用 Hadoop作为一种分布式处理框架,被设计用来解决大规模数据处理...
接下来,本设计提出了一种动态存储系统架构,该系统可以基于Hadoop平台进行搭建。系统由几个关键部分构成: 1. 中央控制集群:负责收集用户需求,处理和调度数据采集任务。中央控制集群是整个系统的大脑,负责监控...
基于Hadoop的石油大数据平台构建的核心理念在于利用Hadoop生态系统提供的分布式存储和计算能力,解决石油行业在数据采集、存储、处理等方面所面临的挑战。Hadoop作为一个开源框架,它允许通过简单的编程模型跨计算机...
为了应对不断增长的数据量和复杂的数据分析需求,Netflix选择了Amazon Web Services (AWS)作为其大数据平台的基础,并构建了一套基于Hadoop的分布式架构。这个架构不仅实现了高效的数据处理,还具有高度的灵活性和可...
【XX大型企业大数据平台整体解决方案】 ...综上所述,这个大型企业大数据平台整体解决方案旨在通过现代化的数据处理技术和架构,帮助企业构建一个全面、高效的数据生态系统,从而实现数据驱动的业务转型和价值创造。
### 基于Hadoop的线缆生产大数据服务平台的关键知识点 #### 一、研究背景与意义 1. **研究背景**: - 随着制造业的快速发展和技术进步,线缆生产行业面临着日益激烈的市场竞争。 - 生产过程中产生的大量数据(如...
### 大数据平台与推荐应用架构 #### 腾讯大数据发展概况 腾讯作为中国领先的互联网巨头之一,在大数据领域有着深厚的积累和技术优势。截至提供的数据时间点,腾讯拥有月活跃用户8.3亿,最高同时在线人数达到2.1亿...
基于Kubernetes平台部署Hadoop实践 本文介绍了如何在Kubernetes平台上部署Hadoop,解决了Hadoop在Kubernetes上的部署问题。Hadoop和Kubernetes是两个不同的技术领域,former是传统的大数据领域,later是新兴的容器...
本系统利用大数据技术,合理的为用户做出推荐,推荐的结果可靠程度很高,这就是我的优势所在,因为它和一般的推荐系统的推荐算法不太一样,我的推荐算法是利用Hadoop技术写的,我们可以利用Hadoop集群的高吞吐量,一...
内容概要:本文介绍了基于Hadoop的大数据技术在气象分析系统中的设计与实现。系统利用Hadoop分布式文件系统(HDFS)存储气象数据,结合Python和Echarts等工具进行数据处理、分析和可视化。同时,系统还集成了MySQL...
【摘要】中提到的基于电力...总结来说,这篇文章主要探讨了基于电力大数据平台的风电数据处理架构的设计和实施,以及这种架构在风电业务中的具体应用,旨在通过大数据技术提升风电产业的智能化水平和数据处理能力。
"金融机构大数据平台架构设计最佳实践" 大数据平台架构设计是金融机构实现数字化转型的关键步骤之一。为了满足业务需求,金融机构需要针对性地设计大数据平台架构,考虑到非功能特性的需求,选择合适的技术组件,并...
高校数字化校园大数据平台设计研究的主要目的是为了解决高校信息化管理中存在的数据孤立问题,通过设计基于 Hadoop 大数据技术的数据处理方案,实现高校各管理系统功能的一体化,提供高校师生的数据分析,从而提升...
本课程“Hadoop大数据开发与性能调优实战培训课程-Hadoop组件详解”旨在深入探讨Hadoop的主要组件及其优化策略,帮助开发者和数据工程师提升在大数据环境中的实践能力。 首先,我们要了解Hadoop的基础架构,它主要...
【基于Hadoop的ETL处理Shell架构】是一种高效的数据处理框架,主要应用于大数据场景。ETL,即Extract-Transform-Load,是数据仓库领域的重要概念,主要包括数据抽取、转换和加载三个步骤。在这个架构中,Hadoop作为...
本文主要探讨了大数据基础组件、Lambda架构与Kappa架构、大数据架构的挑战以及优秀的整体架构设计,同时强调了元数据在大数据体系中的核心地位。 首先,大数据技术栈涵盖了众多模块,如数据采集、数据传输、实时...