转自 http://fengshenwu.com/blog/2014/02/16/build_cdo_yunti_ecosystem/

《大数据时代》一书说:技术终究会过去,分析的模型也将定型,未来的制高点在于是否拥有数据。其实目前的数据技术正在蓬勃发展,也不知道维克托•迈尔•舍恩伯格说的啥时候到来。

云梯系统为阿里已经服务了将近5年了,其上存储着数十PB的数据,每日运行数十万的job,节点数已经逼近10000台了。借助于社区的开源hadoop技术也只是云梯生态圈的一部分。本文将简要讲述云梯生态圈的各个组件。笔者认为构建数据平台的四要素:数据存储、数据传输、数据计算、计算调度。当然还要方便用户使用。

云梯平台生态圈基本可以用以下的图表示:

我大致分了8层,每层都有各层特别的事项及对应的开源软件。虽然虚拟技术室云计算的基础,但对于内部构件海量数据平台并不需要虚拟主机。虚拟主机毕竟有一定的性能损耗。对于目前存在的虚拟hadoop技术的目标是让用户在云端自建hadoop集群。

基础设施层
主要包括主机、网络、机房、供电等基础设施。这些基本是硬件投入,是云计算的基础部分,也可以认为是数据中心。由于国内独特的网络环境,很多企业的服务器都是托管在一些电信机房内,笔者了解所自建机房的企业很少。在国外,微软、IBM、google、facebook等公司都在全球建立了大小的数据中心,其中以google的最为先进,PUC最接近1的公司。越来越多的数据中心也开始用绿色能源。说白了,云计算、云主机等服务都是为用户节约自购硬件的成本。对于hadoop来讲,最关注的是主机,主机一般关注的是网络带宽、CPU的主频及个数、硬盘的转速及个数(有的实时计算干脆直接用了SSD甚至fusionIo)、内存大小。对于超大型的hadoop集群,会考虑master节点,搭配的是ssd的磁盘及高频的cpu。内存价格的便宜繁荣了类似spark的内存框架。

基础软件层
此主要是运行在主机上的软件,路由器及交换机在购置时厂商一般会配置好相关的软件。主机最上直接运行的就是操作系统,hadoop就是用linux,最近微软开发了相当多的patch以支持win。不过还是建议用linux。JDK/JVM是也十分基础。对于如阿里这些都是专门的团队维护的,如:linux内核团队、jvm团队。在一些特别的场景下,如:namenode的超大内存需要特别的hack jvm。在阿里,基础软件层及基础设施层都是已经做好了。

存储层
数据不可丢失是最起码的要求。数据放置3个副本在目前情况下基本是可靠的。阿里的存储层已经在业内分享了许多次了,包括了namenode\datanode\crossnode三个最主要的的组件。crossnode是阿里自己开发的协调多机房副本分配的组件,数据可以看是否需要直接在另一个机房生成相关的副本以实现计算的本地化。

计算层
计算是比较丰富的。目前来讲,有离线计算、准实时计算、实时流式计算、实时计算。计算模型有mr模型、DAG模型等。对应的框架是相当多,就目前发展来看,MR是基本的也是离线计算的代表。准实时计算目前是以spark为代表。impala、stinger目前是支持sql查询较快框架。实时流式计算则以storm为代表的。这些框架可以通过YARN调度框架实现在同一个集群上运行,最大限度地错峰节约资源。目前阿里云梯正在探索中。

数据交换
数据需要交换,如:从应用系统同步日志到hdfs中,从mysql同步数据到hdfs中。其实可以把消息系统也算数据交换的,如:Kafka。有的数据交换系统直接可以嫁接到hadoop的计算层上,如:数据交换,数据分布式从mysql中拖出,再写到hdfs中,这样还节约网络。社区有Chukwa、Flume、Scribe等相关的日志数据库同步工具,不过一般的公司都按照自己的需求重写了。如:阿里的TT就是支持业务日志的同步。datax支持多源之间的不同数据格式的转化同步。

调度层
当用户的job非常多时,每个job之间还有一定的依赖关系。此时不能通过crontab来实现调度需求了。社区有一个Oozie,不过大部分的公司应该是自己编写相关的调度层,很多时候跟内部的一些系统还是有一定关系的。阿里有一个名为天网和宙斯的调度系统。

用户视图层
用户视图,此可大可小可没有。主要看数据平台的成熟度。很多公司直接让用户在网页端编写hive脚本,发布脚本的流程管理、权限申请等。简单地讲,此用户工作平台主要是方便用户使用数据数据平台的。

应用BI
这层就是用户具体应用了,比如:阿里巴巴的数据魔方、淘宝指数等。

在图中还有很多的竖条的线条:

  • 云梯医生:主要是对云梯上的job进行分析的,这些数据需要经过二次多维度的分析,不能直接在ganglia上看出的。
  • 生命周期:其实简单地讲就是一份数据在系统中的生命状态,产生消亡。
  • 摩萨德:是内部对业务线度量的一个分析系统,当系统异常时可以报警。
  • 冷数据中心:主要是备份云梯冷数据到磁带上。
  • 监控ganglia:直接可以看出一维度的信息,可以长时间保留。目前对于日常的问题查询用得最多的监控系统。
  • 授权系统:当认证完成后,可以对用户提供字段级别的授权功能,支持数据多级别权限的访问。

以上简单地描述了整个云梯生态圈组件。也是自己在1年多时间对数据平台的全貌认识的一个总结。后续,笔者将详细思述各层的具体的技术。

构建海量数据平台-云梯生态系统相关推荐

  1. 大数据平台构建_如何像产品一样构建数据平台

    大数据平台构建 重点 (Top highlight) Over the past few years, many companies have embraced data platforms as a ...

  2. K8S 快速入门(一)虚拟化、容器化构建云计算平台的基本概念及原理解析

    本章主题 1.认识kubernetes (k8s) 在企业中应用场景? ----- 为什么要学习K8s?? 2.云技术(云计算平台) - 虚拟化及虚拟化基本概念及原理 3.云技术(云计算平台) - 容 ...

  3. 微服务、分布式、云架构构建电子商务平台

    大型企业分布式微服务云架构服务组件 实现模块化.微服务化.原子化.灰度发布.持续集成 分布式.微服务.云架构构建电子商务平台 commonservice eureka Netflix事件.消息总线,用 ...

  4. 我发起了一个 用 物理服务器 和 .Net 平台 构建云平台 的 .Net 开源项目

    大家好 , 我发起了一个 用 物理服务器 和 .Net 平台 构建云平台 的 .Net 开源项目 . 对 , 用 物理服务器 和 .Net 平台 构建 云平台 . 通过 .Net 构建 分布式 计算集 ...

  5. “互联网+”谋定文物市场-国情讲坛·宗佩山:构建共享平台

    "互联网+"谋定文物市场-国情讲坛·宗佩山:构建共享平台 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 经信研究 国研智库 万赢信采编:"推进文物信息资源开放共享. ...

  6. 构建LAMP平台及应用系统

    LANP架构指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境.LAMP是一个缩写词,具体包括linux操作系统.apache网站服务器.mysql数据库服务器.PHP( ...

  7. c语言构建栈_选择技术栈构建通用平台

    c语言构建栈 Java社区中有许多关于Spring vs Java EE的话题. 一群人会争辩说您应该使用一个而不是其他.等等.当我看到这一点时,我不禁要想为什么我们不能同时使用它们呢? 实际上,我认 ...

  8. 选择技术栈构建通用平台

    Java社区中有很多关于Spring vs Java EE的话题. 一群人会争辩说您应该使用一个而不是其他.等等.当我看到这一点时,我不禁要想为什么我们不能同时使用它们呢? 实际上,我认为有效地使用它 ...

  9. 软骨鱼是WordPress构建SaaS平台的最优解决方案

    在了解如何使用软骨鱼(https://www.ruanguyu.com/)构建 WordPress 的 SaaS 平台之前,你首先需要知道 SaaS 平台是干嘛用的,SaaS 是 Software-a ...

最新文章

  1. 命令行编译运行CSharp文件
  2. 网站核心关键词一定要控制在五个之内更方便集中优化
  3. 如何产生高斯带限白噪声数据_车间噪声对我们的身体产生巨大影响,我们该如何解决?...
  4. python logistics regression_Python——sklearn 中 Logistics Regression 的 coef_ 和 intercept_ 的具体意义...
  5. maven junit测试_使用Maven Failsafe和JUnit @Category将集成测试与单元测试分开
  6. jquery兄弟标签_js jquery获取当前元素的兄弟级 上一个 下一个元素
  7. 语法糖 python_Python___语法糖
  8. 不属于ipo模型的 python_python ipo模型是指什么?_后端开发
  9. 关于win10的path系统变量
  10. C#网络编程----使用UdpClient实现网络会议讨论(详解)
  11. 这可能是有史以来最详细的JNI入门教程
  12. Android studio创建Java测试类
  13. Itext对pdf模板进行电子签名
  14. 变色龙配置文件功能介绍
  15. Go语言安装配置运行
  16. Excel 自动计算房贷、月供 (附模板)
  17. 政府采购和招标投标常见问题:评标的依据是什么?
  18. 让QQ的文字漂亮起来
  19. PC微信低版本限制登录怎么办?
  20. HADOOP KMS使用介绍及性能测试

热门文章

  1. iOS app的测试发布平台
  2. android 轻量级缓存框架ASimpleCache
  3. 怎么人像抠图?这几种抠图方法一看就会
  4. Geek爱旅行 - 向日葵的花语 呼呼呼~~
  5. 妄想山海脚本(采矿仓石)
  6. java设置打印机默认纸张A4
  7. 优波尔:QQ几个跳转的API接口
  8. 布局管理--grid
  9. C语言实现小游戏:走迷宫
  10. blender建模基础操作