大规模离线计算产品的调研

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/oscarun/article/details/96173812

Background

资源调度

  1. 国内市面上的专用的大数据离线计算产品,一般都是采用 Hadoop 集群托管的方式,此类型的产品,大部分都是基于 YARN 来资源调度的。
  2. 国外已经有云厂商(AWS, Azure, GCP)提供基于 Kubernetes 的容器化计算产品。

产品形态

image_1dfsc5a3tr2r162o1qgcibv13nl2c.png-60.3kB

  1. Level0: Kubernetes 集群
  2. Level1: 定制化的平台,日志收集/分析,用户画像,推荐等产品

image_1dfscf6vvmpa1g8d1o8nvbb1aik3p.png-191.2kB


1 传统计算集群

1.1 腾讯云-弹性 MapReduce

https://cloud.tencent.com/document/product/589

弹性 MapReduce(EMR)结合云技术和 Hadoop、Hive、Spark、Storm 等社区开源技术,提供安全、低成本、高可靠、可弹性伸缩的云端托管 Hadoop 服务。您可以在数分钟内创建安全可靠的专属 Hadoop 集群,以分析位于集群内数据节点或 COS 上的 PB 级海量数据。

runzhliu: 关于 Spark 或者类似的离线/流计算,面向的是 Spark 开发者,自由度非常高,但是不适合分析师等用户,具体可以看相关的文档Spark 分析 COS 上的数据


1.2 腾讯云-云数据仓库套件 Sparkling

https://cloud.tencent.com/product/sparkling

云数据仓库套件 Sparkling(Tencent Sparkling Data Warehouse Suite)为您提供一套全托管、简单易用的、高性能的PB级云端数据仓库解决方案。Sparkling 基于业界领先的 Apache Spark 框架,您可以在数分钟内创建数千节点的企业级云端分布式数据仓库,并高效的按需快速弹性扩缩容。通过一站式大数据开发和科学平台 DataStudio 进行集群管控、数据集成、元数据管理、工作流开发、数据加工处理、结果可视化等操作,深度集成商业智能分析 BI,构建应用数据集市,提供海量数据的离线加工、数据建模、即席查询分析、数据挖掘和可视化探查能力。

提供强大的弹性扩缩容能力。计算存储分离,集群工作节点包括核心节点和弹性计算节点。用户通过 Data Studio 控制台或云API,实现手动/自动的大规模节点的快速线性横向的扩容,以及纵向计算和存储能力的变配。弹性计算节点同时支持自动化弹性缩容,以适配业务的发展。


1.3 阿里云-大数据计算服务 MaxCompute

https://www.aliyun.com/product/odps?spm=5176.10695662.dataTechnology.1.c266406bpxf3tz

MaxCompute Spark是MaxCompute提供的兼容开源的Spark计算服务。它在统一的计算资源和数据集权限体系之上,提供Spark计算框架,支持用户以熟悉的开发使用方式提交运行Spark作业,以满足更丰富的数据处理分析场景。

image_1ddci77f8ee416bpnig144o4dg9.png-117.4kB


1.4 阿里云-E-MapReduce

https://www.aliyun.com/product/emapreduce?spm=a2c4g.11186623.dataTechnology.2.66a97af2xkoLkZ

提供半托管的 Hadoop、Hive、Spark 离线大规模分布式数据存储和计算,SparkStreaming、Flink、Storm 流式数据计算,Presto、Impala 交互式查询,Oozie、Pig 等 Hadoop 生态圈的组件,具体的组件信息可以在选择界面的列表中查看。

关于 E-MapReduce 的架构,可以参考下图。

image_1ddd1otrg1uihubq0oiqrntt13.png-227.1kB


2 容器化的计算产品

2.1 Azure Kubernetes Service - AKS

https://docs.microsoft.com/en-us/azure/aks/spark-job

Apache Spark is a fast engine for large-scale data processing. As of the Spark 2.3.0 release, Apache Spark supports native integration with Kubernetes clusters. Azure Kubernetes Service (AKS) is a managed Kubernetes environment running in Azure. This document details preparing and running Apache Spark jobs on an Azure Kubernetes Service (AKS) cluster.

image_1df5o6h5h1lbooah8714un1aedm.png-181.2kB

image_1df5pntk61t5s1pco1g8h876evi1g.png-291.8kB

https://hub.helm.sh/charts/microsoft/spark


2.2 Amazon Elastic Kubernetes Service - EKS

https://aws.amazon.com/cn/eks/

Amazon EKS is a managed service that makes it easy for you to use Kubernetes on AWS without needing to install and operate your own Kubernetes control plane.

image_1df5o5imkqr81uiu1b2t2a528i9.png-244.3kB


2.3 Google Kubernetes Engine - GKE

  1. Apache Spark is a unified analytics engine for large-scale data processing.
  2. Spark Operator aims to make specifying and running Spark applications as easy and idiomatic as running other workloads on Kubernetes. It uses a CustomResourceDefinition (CRD) of SparkApplication objects for specifying, running, and surfacing status of Spark applications.

已经创建集群的情况下部署SparkOperator.png-167kB


3 Summary

离线计算的云产品还是比较丰富的,但是不管底层是用 YARN 还是 K8S,user-friendly 是首先要考虑的问题,所以说有个靠谱的产品和交互,对于工程师来说是有多么重要…
我们组也在做大规模离线计算的产品,我们的场景是离线任务和在线服务(游戏)混合部署的集群,如果对这个事情感兴趣,欢迎投递简历到 runzhliu@163.com 😃

展开阅读全文

没有更多推荐了,返回首页