- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
微信云原生大数据平台构建及落地实践腾讯-微信技术架构部/涂小刚
主要内容一、大数据上云概述二、大数据上云基础建设统一编排Pod设计及大数据配套能力计算组件云环境适配三、稳定性及效率提升K8S集群稳定性与弹性配额可观测性与智能运维为什么大数据要上云微信大数据平台架构演进
1.为什么大数据要上云一、大数据上云概述
基础设施的变迁物理机-云主机、云盘、云网络存算一体-存算分离单一集群环境-多种集群环境(专用、离在线混部、GPU)
业务对平台个性化需求业务灵活定制计算框架自研或基于tensorflow、mpi等二次开发支持多种计算模式CPU计算GPU计算CPUGPU混合计算
业界大数据资源平台发展演进云时代IDC时代WhyK8S?灵活高效的容器编排、插件扩展能力计算存储分离,互不影响,各自按需弹性扩缩容大数据及AI框架几乎都原生支持,无需侵入式改造,可以灵活适配运维成本低,应用层无需要运维介入
2.微信大数据平台架构演进一、大数据上云概述
早期微信大数据平台架构自研资源调度平台SparkHadoopMRTensorFlow…自研存储/HDFSWeb/API优势:自研调度和存储,自主可控充分利用在线闲时段资源不足:各模块组件高度耦合侵入性对接开源计算框架,开发迭代慢运维成本大资源调度任务调度存储计算组件ShellPythonPyTorchMPI最初是为了在线微服务设计,当时还没有k8s
微信云原生大数据平台架构@since应用平台BI/画像/机器学习/AB实验任务 工作流调度 API 运营管理调度扩展 MR DistC Spark Flink 业务定制 …组件 P SQL SQL原子级 Spark Flink TensorFlo PyTorc MPI Job框架 w hPAAS大数据专用离/在线混部TKE(K8S)算力GPUPulsarHDFS COSIAAS虚拟机云盘云网络高效的任务调度资源管理弹性资源智能运维不再有Hadoop,相关组件使用Spark实现集成丰富的功能组件并支持业务扩展云原生适配开源主流计算框架自研通用Job框架,支持无状态批处理资源编排基于K8S,多种集群环境打通适配多种分布式存储灰色部分为云上设施和能力2020
1.统一编排二、大数据上云基础建设
业界计算框架接入K8S方案不统一SparkSparkonK8SNative:框架自带,版本要求=2.3SparkOperator:开源生态FlinkFlinkonK8SNative:框架自带,版本要求=1.12FlinkOperator:开源生态TensorFlow/PyTorch/MPIKubeFlowTrainingOperators
NativeVSOperatorCRCRDMasterKubernetesAPIControllerNodeKubernetesOperator自定义crd,声明式接口,由controller管理生命周期优点:对提交端更友好,只管提交和同步状态缺点:不能实现动态分配(可以跟native结合使用)MasterKubernetesAPICoremasterPodKubernetesNative框架直接与apiserver交互,控制pod的启停优点:可以根据计算特点实现动态申请资源缺点:提交端要负责任务生命周期管理、权限管理等workerPodworkerPodNode
如何接入?任务提交…CRCRDControllerNodeKubernetes为了简化提交端逻辑,所有框架的应用(作业)通过Operator声明式API接入MasterServiceWorkloadsDeploymentStatefulSetsJobPod…ConfigMap只需要负责提交以及状态跟踪
不同框架casebycase接入任务提交APIServerSparkOperatorFlinkOperatorTensorFlowOperatorMPIOperator…sparkappsparkappflinkappflinkapptfjobtfjobmpijobmpijob………提交端需要分别对接各种框架的接口具有共性的功能需要在各个operator里分别实现一遍
统一接入-AllinOne任务提交APIServerSparkOperatorFlinkOperatorTensorFlowOperatorMPIOperator………BigDataOperator…BigDataObject屏蔽不同框架的差异
文档评论(0)