如何创建一个大数据平台

如何创建一个大数据平台,第1张

所谓的大数据平台不是独立存在的,比如百度是依赖搜索引擎获得大数据并开展业务的,阿里是通过电子商务交易获得大数据并开展业务的,腾讯是通过社交获得大数据并开始业务的,所以说大数据平台不是独立存在的,重点是如何搜集和沉淀数据,如何分析数据并挖掘数据的价值。

我可能还不够资格回答这个问题,没有经历过一个公司大数据平台从无到有到复杂的过程。不过说说看法吧,也算是梳理一下想法找找喷。

这是个需求驱动的过程。

曾经听过spotify的分享,印象很深的是,他们分享说,他们的hadoop集群第一次故障是因为,机器放在靠窗的地方,太阳晒了当机了(笑)。从简单的没有机房放在自家窗前的集群到一直到现在复杂的数据平台,这是一个不断演进的过程。

对小公司来说,大概自己找一两台机器架个集群算算,也算是大数据平台了。在初创阶段,数据量会很小,不需要多大的规模。这时候组件选择也很随意,Hadoop一套,任务调度用脚本或者轻量的框架比如luigi之类的,数据分析可能hive还不如导入RMDB快。监控和部署也许都没时间整理,用脚本或者轻量的监控,大约是没有ganglia、nagios,puppet什么的。这个阶段也许算是技术积累,用传统手段还是真大数据平台都是两可的事情,但是为了今后的扩展性,这时候上Hadoop也许是不错的选择。

当进入高速发展期,也许扩容会跟不上计划,不少公司可能会迁移平台到云上,比如AWS阿里云什么的。小规模高速发展的平台,这种方式应该是经济实惠的,省了运维和管理的成本,扩容比较省心。要解决的是选择平台本身提供的服务,计算成本,打通数据出入的通道。整个数据平台本身如果走这条路,可能就已经基本成型了。走这条路的比较有名的应该是netflix。

也有一个阶段,你发现云服务的费用太高,虽然省了你很多事,但是花钱嗖嗖的。几个老板一合计,再玩下去下个月工资发布出来了。然后无奈之下公司开始往私有集群迁移。这时候你大概需要一群靠谱的运维,帮你监管机器,之前两三台机器登录上去看看状态换个磁盘什么的也许就不可能了,你面对的是成百上千台主机,有些关键服务必须保证稳定,有些是数据节点,磁盘三天两头损耗,网络可能被压得不堪重负。你需要一个靠谱的人设计网络布局,设计运维规范,架设监控,值班团队走起724小时随时准备出台。然后上面再有平台组真的大数据平台走起。

然后是选型,如果有技术实力,可以直接用社区的一整套,自己管起来,监控部署什么的自己走起。这个阶段部署监控和用户管理什么的都不可能像两三个节点那样人肉搞了,配置管理,部署管理都需要专门的平台和组件;定期Review用户的作业和使用情况,决定是否扩容,清理数据等等。否则等机器和业务进一步增加,团队可能会死的很惨,疲于奔命,每天事故不断,进入恶性循环。

当然有金钱实力的大户可以找Cloudera,Hortonworks,国内可以找华为星环,会省不少事,适合非互联网土豪。当然互联网公司也有用这些东西的,比如Ebay。

接下去你可能需要一些重量的组件帮你做一些事情。

比如你的数据接入,之前可能找个定时脚本或者爬log发包找个服务器接收写入HDFS,现在可能不行了,这些大概没有高性能,没有异常保障,你需要更强壮的解决方案,比如Flume之类的。

你的业务不断壮大,老板需要看的报表越来越多,需要训练的数据也需要清洗,你就需要任务调度,比如oozie或者azkaban之类的,这些系统帮你管理关键任务的调度和监控。

数据分析人员的数据大概可能渐渐从RDBMS搬迁到集群了,因为传统数据库已经完全hold不住了,但他们不会写代码,所以你上马了Hive。然后很多用户用了Hive觉得太慢,你就又上马交互分析系统,比如Presto,Impala或者SparkSQL。

你的数据科学家需要写ML代码,他们跟你说你需要Mahout或者SparkMLLib,于是你也部署了这些。

至此可能数据平台已经是工程师的日常工作场所了,大多数业务都会迁移过来。这时候你可能面临很多不同的问题。

比如各个业务线数据各种数据表多的一塌糊涂,不管是你还是写数据的人大概都不知道数据从哪儿来,接下去到哪儿去。你就自己搞了一套元数据管理的系统。

你分析性能,发现你们的数据都是上百Column,各种复杂的Query,裸存的Text格式即便压缩了也还是慢的要死,于是你主推用户都使用列存,Parquet,ORC之类的。

又或者你发现你们的ETL很长,中间生成好多临时数据,于是你下狠心把pipeline改写成Spark了。

再接下来也许你会想到花时间去维护一个门户,把这些零散的组件都整合到一起,提供统一的用户体验,比如一键就能把数据从数据库chua一下拉到HDFS导入Hive,也能一键就chua一下再搞回去;点几下就能设定一个定时任务,每天跑了给老板自动推送报表;或者点一下就能起一个Storm的topology;或者界面上写几个Query就能查询Hbase的数据。这时候你的数据平台算是成型了。

当然,磕磕碰碰免不了。每天你都有新的问题和挑战,否则你就要失业了不是?

你发现社区不断在解决你遇到过的问题,于是你们架构师每天分出很多时间去看社区的进展,有了什么新工具,有什么公司发布了什么项目解决了什么问题,兴许你就能用上。

上了这些乱七八糟的东西,你以为就安生了?Hadoop平台的一个大特点就是坑多。尤其是新做的功能新起的项目。对于平台组的人,老板如果知道这是天然坑多的平台,那他也许会很高兴,因为跟进社区,帮忙修bug,一起互动其实是很提升公司影响力的实情。当然如果老板不理解,你就自求多福吧,招几个老司机,出了问题能马上带路才是正道。当然团队的技术积累不能不跟上,因为数据平台还是乱世,三天不跟进你就不知道世界是什么样了。任何一个新技术,都是坑啊坑啊修啊修啊才完善的。如果是关键业务换技术,那需要小心再小心,技术主管也要有足够的积累,能够驾驭,知道收益和风险。

开发数据大平台的 *** 作方法具体如下。
1、 *** 作体系的挑选。 *** 作体系一般使用开源版的RedHat、Centos或许Debian作为底层的构建渠道,要根据大数据渠道所要建立的数据剖析东西能够支撑的体系,正确的挑选 *** 作体系的版本。
2、建立Hadoop集群。Hadoop作为一个开发和运行处理大规模数据的软件渠道,实现了在大量的廉价计算机组成的集群中对海量数据进行分布式计算。Hadoop结构中最核心的规划是HDFS和MapReduce,HDFS是一个高度容错性的体系,合适布置在廉价的机器上,能够供给高吞吐量的数据访问,适用于那些有着超大数据集的应用程序;MapReduce是一套能够从海量的数据中提取数据最终回来成果集的编程模型。在生产实践应用中,Hadoop非常合适应用于大数据存储和大数据的剖析应用,合适服务于几千台到几万台大的服务器的集群运行,支撑PB级别的存储容量。
3、挑选数据接入和预处理东西。面临各种来源的数据,数据接入便是将这些零散的数据整合在一起,归纳起来进行剖析。数据接入首要包括文件日志的接入、数据库日志的接入、关系型数据库的接入和应用程序等的接入,数据接入常用的东西有Flume,Logstash,NDC(网易数据运河体系),sqoop等。
4、数据存储。除了Hadoop中已广泛应用于数据存储的HDFS,常用的还有分布式、面向列的开源数据库Hbase,HBase是一种key、value体系,布置在HDFS上,与Hadoop一样,HBase的目标首要是依靠横向扩展,通过不断的添加廉价的商用服务器,添加计算和存储才能。同时hadoop的资源管理器Yarn,能够为上层应用供给统一的资源管理和调度,为集群在利用率、资源统一等方面带来巨大的优点。
5、挑选数据挖掘东西。Hive能够将结构化的数据映射为一张数据库表,并供给HQL的查询功能,它是建立在Hadoop之上的数据仓库根底架构,是为了削减MapReduce编写工作的批处理体系,它的出现能够让那些通晓SQL技术、可是不熟悉MapReduce、编程才能较弱和不擅长Java的用户能够在HDFS大规模数据集上很好的利用SQL言语查询、汇总、剖析数据。
6、数据的可视化以及输出API。关于处理得到的数据能够对接主流的BI体系,比如国外的Tableau、Qlikview、PowrerBI等,国内的SmallBI和新兴的网易有数(可免费试用)等,将成果进行可视化,用于决策剖析;或许回流到线上,支撑线上业务的开展。

产品定义:BC—oNest(ObjectNest)是一个以对象形式存储和管理海量非结构化数据的云存储系统。BC—oNest可以为互联网业务和企业用户提供低成本的PB级存储规模,具备高可靠、高安全性和高扩展性的云存储服务。产品实现了跨机架的海量对象存储和备份功能:提供WEB方问(业务使用门户以及RESTAPI)以及SDK:提供批量导入导出工具来支持oNest和Linux本地目录之间的相互拷贝:支持Windows客户端工具,方便用户的使用。产品特点按需分配的存储空间:系统支持TB级到PB级的存储空间管理,存储容量可在线平滑扩容。可靠的数据存储:系统支持对象数据跨机架存储;在每个AZ内多副本存储。系统的健康检查模块保证副本减少的情况下,自动修复副本数量:同时系统内部实现了数据的完整性校验机制,防止数据被非法篡改或损坏。安全的数据访问控制:系统的认证鉴权和ACI一访问控制机制保证数据只被授权用户访问:同时系统支持密钥签名机制,保证用户访问消息在传输通道上的安全性。高性能的数据处理:提供MultiPart的并发上传功能提高大对象上传速度:支持基于Range的多点并发下载功能提高对象下载速度:数据节点内部采用文件聚合的方法提高性能:支持高并发的用户访问和高吞吐的数据流量。高可用的数据服务能力:AZ内多副本存储和副本自动修复能力,提高了系统持续服务能力,在常见的服务器集群节点或局部网络故障情形中,系统具有高可用性。提供多种数据访问接口:系统对外提供WEB访问(业务使用门户及RESTAPI)以及SDK,并提供批量导入导出工具来支持oNest和Linux本地目录之间的相互拷贝。在服产品版本及特性:5X版本:自主研发的以对象形式存储和管理海量非结构化数据的存储系统基于跨机架的大规模数据中心环境设计,具有极强的水平扩展能力提供类AWSS3的RESTAPI和SDK,以及本地批量数据导入导出工具支持用户、容器以及对象的访问权限管理和控制服务可用性999%,数据可靠性99999999999%,无单点故障,支持线性扩展支持至少千亿级对象存储,单个对象最大5TB,千兆网络环境下4KB对象读取响应时间小于100ms支持用户可选的服务器端及客户端数据加密存储,整个过程对用户透明支持系统和存储资源监控及告警功能,易运营可管理提供面向系统、用户和容器三个级别的准实时统计计量能力,支持用户按需付费60版本:基于主流ceph产品,支持纠删码,支持主流s3接口核心功能:1:对象相关功能对象管理:系统支持对象的创建、读取和删除、设置用户自定义元数据等功能。对象访问控制:系统支持设置或获取容器和对象访问权限(ACL)等功能。2:容器相关功能容器管理:系统按容器组织对象,每个用户可拥有零或多个容器,每个用户可包合零或多个对象。系统支持容器的创建、删除,按字典序列出容器内的对象等功能。3:用户相关功能用户认证及权限:对用户的身份进行认证,确认访问用户的身份,完成认证后基于用户状态、配额和权限进行确认。4:系统相关功能计量信息:提供为资源池管理系统提供计费需要的计量信息,包括空间占用、访问流量等。用户控制:提供用户运营管理访问控制包括签约对象存储服务、查看对象存储服务等功能。日志管理:提供对系统日志的记录及浏览功能。统计报表:提供对系统各项指标的统计和分析,包括系统数据日志、用户日志及日志管理、访问统计、统计总空间占用、统计总用户数、统计各个节点上占用空间大小、容器总数量、流量信息统计等。运维管理:提供云存储系统内部管理、维护,包括系统管理用户认证鉴权、系统管理角色管理、设备状态监控、设备维护等功能。产品优势:BC—oNest是基于标准X86服务器集群的对象存储系统。产品优势主要体现在:容量和性能随节点增加而线性增强,且支持无缝的在线扩容和升级维护。基于X86存储服务器的结构具有低成本特点。系统的高可靠设计,单磁盘和单服务器故障不会影响系统服务,保障用户数据的可用性。安全认证和数据加密手段,为用户提供安全的数据存储服务。应用场景:广泛应用于公众云存储服务,为用户和企业提供按需扩展的云存储服务。支持各类互联网应用,如网盘类应用中对、文档和音视频的存储j对象存储通过与主流备份软件结合,可向用户提供更具成本效益、更低TCO的备份方案j对象存储与归档软件、分级存储软件结合,可以将在线系统中的数据无缝归档/分级存储到对象存储系统,减少阵列等在线系统存储资源。应用案例:中国移动公众服务云一:应用背景和面临的问题云存储是laaS核心服务之一,主要支撑海量非结构化数据的存储和处理需求。传统的非结构数据存储系统主要采用磁盘阵列和NAS设备实现,为本地服务器提供块存储空间或文件存储空间,本质上属于数据中心内部的解决方案,主要存在的问题包括:首先,两者的服务接口协议上都不能满足在广域网范围提供服务的能力要求j其次,磁盘阵列和NAS设备的扩展I生也有限,不能满足百亿级文件的存储需求j最后,设备成本较高,基于阵列设备提供的云存储服价格不具备竞争性。二:解决方案公众服务云的对象存储服务使用BC—oNest产品实现。300台存储服务器可以提供PB级的对象存储服务空间支持百亿级的对象存储。三:商业价值中国移动公众服务云采用自主研发的BC—oNest,系统建设上相比使用商用解决方案节约成本数百万元。自主研发产品的应用也使得研发和运营实现紧密互动,对象存储服务的功能可随着市场竞争的要求实现快速迭代开发。基于BC—oNest的对象存储服务是中国移动在公众服务云布局的重要环节之一,将为中国移动拓展行业云应用奠定坚实的基础。欢迎拨打4001100865至中移软件技术有新公司咨询!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12853125.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存