我们在Azure HDInsight上使用Spark 2.2进行临时探索和批处理作业。
作业应在5倍的中型VM群集上正常运行。他们是 1.笔记本(带Livy.spark2魔法的齐柏林飞艇) 2.使用Livy运行已编译的jar。
我必须记得在不使用群集时将其缩减为1个工人,以节省资金。 (如果可能的话,0个工作人员会很好)。
我希望Spark为我管理此任务...当作业启动时,首先将群集扩展到最小大小,然后在完成时暂停〜10分钟。在没有乔布斯的空闲时间之后,请再次缩小比例。
答案 0 :(得分:1)
您可以使用PowerShell或Azure经典CLI来放大/缩小群集。但是您可能需要编写脚本来跟踪群集资源的使用情况并自动缩小规模。
这是Powershell语法
Set-AzureRmHDInsightClusterSize -ClusterName <Cluster Name> -TargetInstanceCount <NewSize>
这是一个PowerShell工作流运行手册,可帮助您根据需要自动扩展或扩展HDInsight群集的过程
https://gallery.technet.microsoft.com/scriptcenter/Scale-your-HDInsight-f57bb4d8
或
您可以使用以下选项手动缩放(即使您的问题是如何自动缩放),我认为这对于想要手动缩放的人很有用)
下面是文章的链接,解释了使用PowerShell或Classic CLI扩展群集的不同方法(请记住:最新的CLI不支持扩展功能)
https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-scaling-best-practices
如果希望Spark动态处理它,Azure Databricks是最佳选择(但它只是Spark群集,没有Hadoop组件(Hive除外))。作为HDInsight-Spark不是Azure托管服务,因此不会解决您的用例。
下面是新群集的图像(在Azure数据块中)-我突出显示了“启用自动缩放选项”,该选项使您可以在执行作业时动态缩放。