由于我们的业务需求,我们必须使用静态、长时间运行的持久性Dataproc集群。是否有任何方法来升级Dataproc映像以利用最新的OS/OSS更新?
请帮我提供一些参考文件来执行这个操作(最好是自动化的)。
发布于 2019-12-03 16:23:36
当前Dataproc不支持就地集群升级,这也是我们建议客户使用临时(每个作业/工作流)或短期集群(按周而不是按年计算)的原因。
不幸的是,Oozie不能很好地处理云本机或-hybrid架构。我建议将集群故障转移功能内置到您的自动化中,这样您就可以经常删除/重新创建。也许作为集群启动的一部分,它可以发出一个锁文件来防止旧集群产生新的作业?
以下是可能有帮助的其他参考资料。
论解耦计算与存储
https://www.qubole.com/blog/advantage-decoupling/
长寿集群的选项
具体处理Oozie的方法见下面我的第二个答案。
发布于 2019-12-04 16:43:50
下面是关于Oozie云混合迁移的建议。
作为第一步,我将重点关注提升和移位,并重点关注计算和存储的分离(例如,用GCS替换HDFS )。下面的草图将是迁移的第2步。
Oozie的主要拦截器是它对事件进行触发和打包调度。我会把触发和调度移到外部气流中,比如Cloud Composer。这将允许您用文件名参数化Oozie工作流,但否则它们将变成“在此文件上运行此工作流”。
作为对新文件的响应,气流将运行DataprocWorkflowTemplateOperator (如果您更愿意在气流中内联工作流定义,也有一个内联工作流操作符)。此工作流模板将包含一个通过pig sh oozie job ...触发Oozie工作流的单一作业。
与您的问题相关的部分给您带来了云迁移的优势:工作流模板将使用簇选择器,它将根据集群标签在一个或多个集群中进行选择。这意味着可以使用群集标签向池中添加和删除群集。一旦标签被删除,新的工作流模板将不会提交到旧集群;一旦所有作业完成,您就可以删除它(从而升级图像)。另一个优点是,您可以在不同的GCP区域中维护2+集群,并在服务中断的情况下进行故障转移。另外,通过从执行中分离调度,您不再被绑定到一个长期存在的集群中。
总之,通过将事物解耦为气流+工作流模板+ Oozie,您可以得到:
发布于 2019-12-21 05:59:15
要升级不断执行新作业的集群,可以利用用户指定的标签负载平衡特性。
它将允许根据可以动态应用的用户标签在集群(旧的和新的)之间路由作业--这将允许在不停机的情况下执行集群升级。
https://stackoverflow.com/questions/59151181
复制相似问题