6个人如何维护上千规模的大数据集群呢?
副问题[/!--empirenews.page--]
【资讯】本文首要先容饿了么大数据团队怎样通过对计较引擎进口的同一,低落用户接入门槛;怎样让用户自助说明使命非常及失败缘故起因,以及怎样从集群发生的使命数据自己监控集群计较/存储资源耗损,监控集群状况,监控非常使命等。 饿了么 BDI-大数据平台研发团队今朝共有 20 人阁下,首要认真离线&及时 Infra 僻静台器材开拓。 个中 6 人的离线团队必要维护大数据集群局限如下: Hadoop 集群局限 1300+ HDFS 存量数据 40+PB,Read 3.5 PB+/天,Write 500TB+/天 14W MR Job/天,10W Spark Job/天,25W Presto/天 另外还必要维护 Hadoop、Spark、Hive、Presto 等饿了么内部版本组件,办理公司 400+ 大数据集群用户天天面对的各类题目。 引擎进口同一 今朝在饿了么对外提供的查询引擎首要有 Presto、Hive 和 Spark,个中 Spark 又有 Spark Thrift Server 和 Spark SQL 两种模式。 而且 Kylin 也在稳步试用中,Druid 也正在调研中。各类计较引擎都有自身的优弱点,合用的计较场景各不沟通。 从用户角度来说,平凡用户对此没有较强的辨识手段,进修本钱会较量高。 而且当用户可以自主选择引擎执利用命时,会优先选择所谓的最快引擎,而这势必会造成引擎阻塞,可能将完全不得当的使命提交到某引擎,从而低落使命乐成率。 从打点角度来说,大数据集群的进口太多,将难以实现同一打点,难以实现负载平衡、权限节制,难以掌控集群整体对外处事手段。 而且当有新的计较需求必要接入,我们还必要为其陈设对应的客户端情形。 用户行使多种计较引擎 成果模块 针对这种环境,饿了么大数据团队开拓了 Dispatcher,该组件的首要成果如下图所示: Dispatcher 成果模块 用户全部使命所有通过 Dispatcher 提交,在 Dispatcher 中我们可以做到同一的鉴权,同一的使命执行环境跟踪。 还可以做到执行引擎的自动路由,各执行引擎负载节制,以及通过引擎降级进步使命运行乐成率。 逻辑架构 Dispatcher 的逻辑架构如下图所示: Dispatcher 体系逻辑架构 今朝用户可以通过 JDBC 模式挪用 Dispatcher 处事,可能直接以 Driver 模式运行 Dispatcher。 Dispatcher 吸取到查询哀求后,将会同一举办鉴权、引擎路由等操纵,将查询提交到对应引擎。 其它,Dispatcher 尚有 SQL 转换模块,当产生从 Presto 引擎降级到 Spark/Hive 引擎时,将会通过该模块自动将 Presto SQL 转换成 HiveQL。 通过 Dispatcher 对查询进口的同一,带来的甜头如下: 用户接入门槛低,无需再去进修各引擎行使要领和优弱点,无需手动选择执行引擎。 陈设本钱低,客户端可通过 JDBC 方法快速接入。 同一的鉴权和监控。 降级模块进步使命乐成率。 各引擎负载平衡。 引擎可扩展。 引擎可扩展首要是指当后续接入 Kylin、Druid 可能其他更多查询引擎时,可以做到用户无感知。 因为网络到了提交到集群的全部查询,针对每一个已有查询打算,我们可以得到热度数据,知道在所有查询中哪些表被行使次数最多,哪些表常常被关联查询,哪些字段常常被聚合查询等。 当后续接入 Kylin 时,可以通过这些数据快速成立或优化 Cube。 SQL 画像 在 Dispatcher 中最焦点的是 SQL 画像模块,根基流程如下图: SQL 路由模块 查询提交后,通过毗连 HiveServer 对查询打算举办理会,可以获取当前查询的全部元数据信息,好比: 读入数据量 读入表/分区数 种种 Join 次数 关联字段几多 聚合伟大度 过滤前提 …… 上述元数据信息根基上可以对每一个查询举办精准的描写,每一个查询可以通过这些维度的统计信息调治到差异引擎中。 Hive 对 SQL 举办理会并举办逻辑执行打算优化后,将会获得优化后的 Operator Tree,通过 explain 呼吁可以查察。 SQL 画像数据可以从这个功效网络各类差异范例的 Operator 操纵,如下图所示: SQL 理会示例 从直观的领略上我们知道,读入数据量对付引擎的选择是很重要的。好比当读入少量数据时,Presto 执行机能最好,读入大量数据时 Hive 最不变,而当读入中等数据量时,可以由 Spark 来执行。 种种计较引擎数据量-执行时刻漫衍 在初始阶段,还可以通过读入数据量,团结 Join 伟大度,聚合伟大度等身分在各类计较引擎长举办测试,回收基于法则的步伐举办路由。 执行进程中记录好每一次查询的 SQL 画像数据,执行引擎,降级链路等数据。 基于这些画像数据,后续可以回收好比决定树,Logistic 回归,SVM 中分类算法实现引擎的智能路由,今朝饿了么大数据团队已经开始了这方面的实行。 在饿了么的应用中,由 Dispatcher 同一调治的 Ad Hoc 查询,因为增进了预搜查环节,以及失败降级环节,天天总体乐成率为 99.95% 以上,整体 PT90 值为 300 秒阁下。 今朝 Presto 包袱了 Ad Hoc 查询的 50% 流量,SparkServer 模式包袱了 40% 流量。 充实操作集群自己数据 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |