配置集群
请注意
这些是遗留的创建集群UI的指令,只是为了历史的准确性。所有客户都应该使用更新的创建集群界面.
本文解释了在创建和编辑Databricks集群时可用的配置选项。重点介绍了如何使用UI创建和编辑集群。其他方法请参见集群CLI,集群API 2.0,Databricks Terraform提供商.
有关帮助,请参见确定哪种配置选项组合最适合您的需求集群配置最佳实践.
集群政策
一个集群政策限制基于一组规则配置集群的能力。策略规则限制用于创建集群的属性或属性值。集群策略具有acl,这些acl将其限制为特定用户和组的使用,从而限制了在创建集群时可以选择的策略。
中选择集群策略,配置集群策略政策下拉。
请注意
如果没有政策在工作区中创建,政策下拉菜单不显示。
如果你有:
集群创建权限,您可以选择不受限制的策略并创建完全可配置的集群。的不受限制的策略不限制任何集群属性或属性值。
同时创建集群权限和访问集群策略,可以选择不受限制的策略和您可以访问的策略。
仅访问集群策略,您可以选择具有访问权限的策略。
集群模式
请注意
本文描述遗留的集群UI。关于预览界面的详细介绍,请参见创建集群.这包括集群访问类型和模式的一些术语更改。有关新的和旧的集群类型的比较,请参见集群UI更改和集群访问模式.在预览界面中:
标准模式集群现在叫做否隔离共享访问模式集群.
高并发表acl现在叫做共享访问模式集群.
Databricks支持三种集群模式:标准、高并发和单独的节点.默认集群模式为“Standard”。
重要的
如果您的工作空间分配给统一目录metastore、High Concurrency集群不可用。相反,你可以使用访问模式确保访问控制的完整性并执行强大的隔离保证。另请参阅创建一个可以访问Unity Catalog的集群.
创建集群后,不允许修改集群模式。如果需要不同的集群模式,则必须创建一个新集群。
集群配置包括自动终止设置的默认值取决于集群模式:
标准节点和单节点集群默认120分钟后自动终止。
高并发集群不默认情况下自动终止。
标准的集群
警告
标准模式集群(有时称为无隔离共享集群)可以由多个用户共享,用户之间没有隔离。如果使用“高并发”集群模式无需额外的安全设置,如表acl或凭据传递,与标准模式集群使用相同的设置。帐户管理员可以防止为Databricks工作空间管理员自动生成内部凭证在这些类型的集群上。对于更安全的选项,Databricks建议使用具有表acl的高并发集群。
建议单个用户使用标准集群。标准集群可以运行用Python、SQL、R和Scala开发的工作负载。
高并发集群
高并发集群是受管的云资源。High Concurrency集群的主要好处是它们提供了细粒度的共享,以实现最大的资源利用率和最小的查询延迟。
高并发集群可以运行用SQL、Python和r开发的工作负载。高并发集群的性能和安全性是通过在单独的进程中运行用户代码来提供的,这在Scala中是不可能的。
此外,只有High Concurrency集群支持表访问控制.
若要创建高并发集群,请设置集群模式来高并发.
有关如何使用群集API创建高并发群集的示例,请参见高并发集群示例.
单节点集群
Single Node集群没有worker,在驱动节点上运行Spark作业。
相比之下,标准集群需要至少一个Spark工作节点除驱动节点外,还用于执行Spark作业。
如果需要创建单节点集群,请设置集群模式来单独的节点.
有关使BOB低频彩用单节点集群的详细信息,请参见单节点集群.
池
为了减少集群启动时间,您可以将集群附加到预定义的集群池空闲实例的,用于驱动程序和工作节点。集群是使用池中的实例创建的。如果一个池没有足够的空闲资源来创建请求的驱动程序或工作节点,则池通过从实例提供程序分配新实例来扩展。当附加的集群终止时,它使用的实例将返回到池中,并可由不同的集群重用。
如果为工作节点选择了池,但没有为驱动节点选择池,则驱动节点将继承工作节点配置中的池。
重要的
如果试图为驱动程序节点选择池,而不是为工作节点选择池,则会发生错误,并且不会创建集群。这一要求防止了驱动节点必须等待工作节点被创建的情况,反之亦然。
看到池以了解BOB低频彩有关在Databricks中使用池的更多信息。
砖运行时
数据库运行时是运行在您的数据库上的核心组件的集合集群.所有Databricks运行时都包含Apache Spark,并添加组件和更新,以提高可用性、性能和安全性。详细信息请参见砖运行时.
Databricks提供了几种运行时类型和这些运行时类型的几种版本Databricks运行时版本下拉菜单,可以创建或编辑集群。
光子加速
光子对正在运行的集群可用吗Databricks Runtime 9.1 LTS及以上。
要启用光子加速,请选择使用光子加速复选框。
如果需要,可以在Worker type和Driver type下拉菜单中指定实例类型。
中查看Photon活动火花UI.下面的截图显示了查询细节DAG。在DAG中有两个光子的迹象。首先,Photon操作符以“Photon”开头,例如,PhotonGroupingAgg
.其次,在DAG中,Photon操作符和阶段是桃红色的,而非Photon操作符和阶段是蓝色的。
码头工人的图片
对于某些Databricks Runtime版本,您可以在创建集群时指定Docker映像。示例用例包括库定制、不变的黄金容器环境以及Docker CI/CD集成。
您还可以使用Docker映像在具有GPU设备的集群上创建自定义深度学习环境。
有关说明,请参见使用Databricks Container Services定制容器而且Databricks Container GPU集群的服务.
集群节点类型
集群由一个驱动节点和零个或多个工作节点组成。
您可以为驱动程序和工作节点选择单独的云提供程序实例类型,尽管默认情况下驱动程序节点使用与工作节点相同的实例类型。不同的实例类型适用于不同的用例,例如内存密集型或计算密集型工作负载。
司机节点
驱动程序节点维护连接到集群的所有笔记本的状态信息。驱动节点还维护SparkContext并解释您从集群上的笔记本或库中运行的所有命令,并运行与Spark执行器协调的Apache Spark master。
驱动节点类型默认值与工作节点类型相同。如果您打算这样做,可以选择具有更多内存的较大驱动程序节点类型收集()
收集Spark员工的大量数据,并在笔记本上进行分析。
提示
由于驱动程序节点维护所附笔记本的所有状态信息,请确保从驱动程序节点分离未使用的笔记本。
工作者节点
Databricks工作节点运行Spark执行器和集群正常运行所需的其他服务。当您使用Spark分布工作负载时,所有的分布式处理都发生在工作节点上。Databricks为每个工作节点运行一个执行程序;因此这些项遗嘱执行人而且工人在Databricks体系结构上下文中可互换使用。
提示
要运行Spark作业,至少需要一个工作节点。如果集群中没有工人,可以在驱动节点上运行非Spark命令,但Spark命令会失败。
请注意
Databricks启动工作节点,每个节点有两个私有IP地址。节点的主私有IP地址用于承载Databricks内部流量。备用私有IP地址用于Spark容器进行集群内通信。此模型允许Databricks在同一工作空间中的多个集群之间提供隔离。
GPU实例类型
对于需要高性能的计算挑战任务,例如与深度学习相关的任务,Databricks支持使用图形处理单元(gpu)加速的集群。有关更多信息,请参见GPU-enabled集群.
AWS Graviton实例类型
预览
此功能已在公共预览.
Databricks支持使用AWS Graviton处理器的集群。基于arm的AWS Graviton实例是由AWS设计的,可以提供比同时代的基于x86的实例更好的性价比。看到AWS启用引力子的集群.
集群大小和自动缩放
创建Databricks集群时,可以为集群提供固定数量的工作人员,也可以为集群提供最小和最大数量的工作人员。
当您提供一个固定大小的集群时,Databricks确保您的集群具有指定数量的工人。当您为工作人员的数量提供一个范围时,Databricks将选择运行作业所需的适当数量的工作人员。这被称为自动定量.
随着自动伸缩,Databricks动态地重新分配工人,以说明你的工作的特点。管道的某些部分可能比其他部分更需要计算,Databricks会在工作的这些阶段自动添加额外的工作人员(并在不再需要时删除他们)。
自动伸缩可以更容易地实现高集群利用率,因为您不需要配置集群来匹配工作负载。这尤其适用于需求随时间变化的工作负载(比如在一天中探索一个数据集),但它也适用于一次性的较短工作负载,其配置需求未知。自动缩放提供了两个优势:
与固定大小的未配置的集群相比,工作负载可以更快地运行。
与静态大小的集群相比,自动伸缩集群可以降低总体成本。
根据集群和工作负载的恒定大小,自动伸缩可以同时为您提供其中一种或两种好处。当云提供商终止实例时,集群大小可以低于所选择的最小工作数。在这种情况下,Databricks会不断尝试重新提供实例,以保持最少的工作人员数量。
请注意
无法使用自动缩放功能spark-submit
就业机会。
自动缩放的行为
在2步内从最小到最大。
即使集群没有空闲,也可以通过查看shuffle文件状态来缩小规模。
根据当前节点的百分比递减。
在作业集群上,如果集群在过去40秒内未得到充分利用,则减少。
在通用集群上,如果集群在过去150秒内未得到充分利用,则会减小。
的
spark.databricks.aggressiveWindowDownS
Spark配置属性以秒为单位指定集群做出降级决策的频率。增大该值会导致集群缩小的速度变慢。最大值为600。
本地磁盘加密
预览
此功能已在公共预览.
用于运行集群的某些实例类型可能具有本地连接的磁盘。数据库可以在这些本地连接的磁盘上存储随机数据或临时数据。要确保对所有存储类型(包括临时存储在集群本地磁盘上的随机数据)的所有静止数据进行加密,可以启用本地磁盘加密。
重要的
由于从本地卷读取和写入加密数据对性能的影响,您的工作负载可能运行得更慢。
启用本地磁盘加密后,Databricks会在本地生成每个集群节点唯一的加密密钥,用于加密存储在本地磁盘上的所有数据。该键的作用域对于每个集群节点都是本地的,并且与集群节点本身一起销毁。在其生命周期内,密钥驻留在内存中进行加密和解密,并加密存储在磁盘上。
若要启用本地磁盘加密,必须使用集群API 2.0.在创建或编辑集群时,设置:
{“enable_local_disk_encryption”:真正的}
看到创建而且编辑关于如何调用这些API的示例,请参阅集群API参考。
下面是一个集群创建调用的例子,它启用了本地磁盘加密:
{“cluster_name”:“my-cluster”,“spark_version”:“7.3.x-scala2.12”,“node_type_id”:“r3.xlarge”,“enable_local_disk_encryption”:真正的,“spark_conf”:{“spark.speculation”:真正的},“num_workers”:25}
安全模式
如果您的工作空间分配给统一目录亚Metastore,你用安全模式代替高并发集群模式确保访问控制的完整性并执行强大的隔离保证。高并发集群模式与Unity目录不可用。
下高级选项,从以下集群安全模式中选择:
没有一个:不隔离。不强制工作空间本地表访问控制或凭据传递。无法访问Unity Catalog数据。
单用户:只能由单个用户使用(默认为创建集群的用户)。其他用户无法挂载到集群。当从集群中访问视图时单用户安全模式下,视图以用户的权限执行。单用户集群支持使用Python、Scala和R. Init脚本的工作负载,支持库安装和DBFS挂载。自动化作业应该使用单用户集群。
用户隔离:可由多个用户共享。只支持SQL工作负载。禁用库安装、初始化脚本和DBFS挂载,以强制在集群用户之间进行严格隔离。
仅限表ACL(遗留):强制工作空间-本地表访问控制,但不能访问Unity Catalog数据。
仅通过(遗留):强制工作空间本地凭据传递,但不能访问Unity Catalog数据。
Unity Catalog工作负载支持的唯一安全模式是单用户而且用户隔离.
有关更多信息,请参见什么是集群访问模式?.
AWS的配置
在配置集群的AWS实例时,可以选择可用分区、最大现货价格、EBS卷类型和大小以及实例配置文件。要指定配置,
2 .在集群配置界面,单击高级选项切换。
在页面底部,单击实例选项卡。
可用性区域
如果您的组织在特定可用分区中购买了预留实例,那么为集群选择特定的可用分区是非常有用的。阅读更多AWS可用分区.
自动可用分区(Auto-AZ)
您可以将集群配置为根据工作空间子网中的可用ip自动选择可用分区,该特性称为“Auto-AZ”。你必须使用集群API启用Auto-AZ,设置awsattributes.zone_id=“汽车”
.如果AWS返回容量不足错误,Auto-AZ将在其他可用分区中重试。
现货实例
您可以指定是否使用现货实例,以及在启动现货实例时使用的最大现货价格(按相应需求价格的百分比)。默认情况下,最大价格是按需价格的100%。看到AWS现货定价.
EBS卷
本节介绍工作节点的默认EBS卷设置、如何添加随机卷以及如何配置集群以便Databricks自动分配EBS卷。
要配置EBS卷,请单击实例选项卡中选择一个选项EBS卷类型下拉列表。
默认EBS卷
Databricks为每个工作节点提供的EBS卷如下:
30gb加密的EBS实例根卷,仅供主机操作系统和Databricks内部服务使用。
Spark worker使用的150gb加密的EBS容器根卷。存放Spark服务和日志。
(仅限HIPAA)一个75 GB加密的EBS工作日志卷,用于存储Databricks内部服务的日志。
添加EBS shuffle卷
如果需要添加shuffle卷,请选择通用SSD在“EBS卷类型”下拉列表中:
缺省情况下,Spark shuffle输出到实例本地磁盘。对于没有本地磁盘的实例类型,或者如果希望增加Spark随机存储空间,可以指定额外的EBS卷。当运行产生大量shuffle输出的Spark作业时,这对于防止磁盘空间耗尽特别有用。
Databricks为按需和现场实例加密这些EBS卷。阅读更多AWS EBS卷.
AWS EBS限制
确保您的AWS EBS限制足够高,以满足所有集群中所有工作者的运行时需求。有关默认EBS限制以及如何更改它们的信息,请参见Amazon弹性块存储(EBS)限制.
AWS EBS SSD卷类型
您可以为AWS EBS SSD卷类型选择gp2或gp3。要做到这一点,看SSD存储管理.Databricks建议您改用gp3,因为与gp2相比,它可以节省成本。有关gp2和gp3的技术信息,请参见Amazon EBS卷类型.
自动缩放本地存储
如果不想在创建集群时分配固定数量的EBS卷,请使用自动伸缩本地存储。通过自动伸缩本地存储,Databricks可以监视集群Spark worker上可用的空闲磁盘空间的数量。如果一个worker的磁盘容量开始过低,Databricks会在它耗尽磁盘空间之前自动将一个新的EBS卷附加到这个worker上。每个实例(包括实例的本地存储)所附加的EBS卷的总磁盘空间不超过5 TB。
如果需要配置自动伸缩存储,请选择启用自动缩放本地存储在自动驾驶仪选项框中:
只有当实例返回到AWS时,才会分离附加到实例的EBS卷。也就是说,只要实例是运行中的集群的一部分,就不会从实例中分离EBS卷。为了减少EBS的使用,Databricks建议在配置了AWS Graviton实例类型或自动终止.
请注意
Databricks使用吞吐量优化HDD (st1)扩展实例的本地存储。的默认AWS容量限制这些卷的价格是20 xb。为了避免达到此限制,管理员应该根据自己的使用需求请求增加此限制。
请注意
如果您在2.44版本之前创建了Databricks帐户(即在2017年4月27日之前),并且希望使用自动伸缩本地存储(在高并发集群),您必须将卷权限添加到IAM角色或用于创建您的帐户的密钥。特别是,您必须添加权限ec2: AttachVolume
,ec2: CreateVolume
,ec2: DeleteVolume
,ec2: DescribeVolumes
.有关权限的完整列表以及关于如何更新现有IAM角色或密钥的说明,请参见创建跨帐号IAM角色.
实例配置文件
要在不使用AWS密钥的情况下安全地访问AWS资源,可以使用实例概要启动Databricks集群。看到使用实例概要配置S3访问有关如何创建和配置实例概要文件的信息。一旦你创建了一个实例概要文件,你可以在实例概要文件下拉列表中选择它:
请注意
一旦集群使用实例概要文件启动,对该集群具有附加权限的任何人都可以访问由该角色控制的底层资源。为了防止不必要的访问,您可以使用集群访问控制限制对集群的权限。
火花配置
为了优化Spark作业,您可以提供自定义Spark配置属性在集群配置中。
2 .在集群配置界面,单击高级选项切换。
单击火花选项卡。
在火花配置,以每行一个键值对的形式输入配置属性。
属性配置集群时集群API 2.0中设置Spark属性spark_conf
在创建集群请求或编辑集群请求.
若要为所有集群设置Spark属性,请创建全局初始化脚本:
dbutils.fs.把(“dbfs: /砖/ init / set_spark_params.sh”,”“”| # !/bin/bash||cat << 'EOF' > /databricks/driver/conf/00-custom-spark-driver-defaults.conf . |cat << 'EOF' > /databricks/driver/conf/00-custom-spark-driver-defaults.conf .conf . |cat|(司机){|“spark.sql.sources。partitionOverwriteMode" = "DYNAMIC"|}| EOF”“”.stripMargin,真正的)
从secret中检索Spark配置属性
Databricks建议将密码等敏感信息存储在数据库中秘密而不是明文。要在Spark配置中引用一个秘密,请使用以下语法:
火花。<属性名>{{秘密/ < scope-name > / <秘密名字>}}
例如,设置Spark配置属性为密码
对储存在里面的秘密的价值秘密/ acme_app /密码
:
火花。密码{{秘密/ acme-app /密码}}
有关更多信息,请参见在Spark配置属性或环境变量中引用秘密的语法.
环境变量
您可以配置可以从中访问的自定义环境变量init脚本在集群上运行。Databricks还提供预定义的环境变量你可以在初始化脚本中使用。不能重写这些预定义的环境变量。
2 .在集群配置界面,单击高级选项切换。
单击火花选项卡。
中设置环境变量环境变量字段。
集群的标签
集群标记允许您轻松监控组织中各个组使用的云资源的成本。在创建集群时,可以将标记指定为键-值对,Databricks将这些标记应用于虚拟机和磁盘卷等云资源DBU使用报告.
对于从池启动的集群,自定义集群标记仅应用于DBU使用情况报告,而不会传播到云资源。
有关池和群集标记类型如何协同工作的详细信息,请参见使用集群和池标记监视使用情况.
为了方便起见,Databricks为每个集群应用了四个默认标记:供应商
,创造者
,ClusterName
,ClusterId
.
此外,在作业集群上,Databricks应用了两个默认标记:RunName
而且JobId
.
在Databricks SQL使用的资源上,Databricks也应用默认标记SqlWarehouseId
.
警告
不分配自定义标签与键的名字
到集群。每个集群都有一个标记的名字
由Databricks设置。如果您更改与键相关联的值的名字
,该集群将不再被Databricks跟踪。因此,集群在空闲后可能不会被终止,并且将继续产生使用成本。
您可以在创建集群时添加自定义标记。配置集群标签。
2 .在集群配置界面,单击高级选项切换。
在页面底部,单击标签选项卡。
为每个自定义标记添加一个键值对。您最多可以添加45个自定义标记。
详情请参见使用集群和池标记监视使用情况.
强制标记
为了确保在创建集群时总是填充某些标记,您可以将特定的IAM策略应用到您的帐户的主要IAM角色(在帐户设置期间创建的;如果需要访问,请与AWS管理员联系)。IAM策略应该包括显式的否认声明用于强制标记键和可选值。创建集群失败如果没有提供包含允许值之一的必需标记。
例如,如果你想强制部门
而且项目
标签,对于前者只允许指定的值,对于后者只允许一个自由形式的非空值,您可以应用像这样的IAM策略:
{“版本”:“2012-10-17”,“声明”:[{“席德”:“MandateLaunchWithTag1”,“效应”:“否认”,“行动”:[“ec2: RunInstances”,“ec2: CreateTags”),“资源”:“攻击:aws: ec2:地区:accountId:实例/ *”,“条件”:{“StringNotEqualsIgnoreCase”:{“aws: RequestTag /部门”:[“Deptt1”,“Deptt2”,“Deptt3”]}}},{“席德”:“MandateLaunchWithTag2”,“效应”:“否认”,“行动”:[“ec2: RunInstances”,“ec2: CreateTags”),“资源”:“攻击:aws: ec2:地区:accountId:实例/ *”,“条件”:{“StringNotLike”:{“aws: RequestTag /项目”:”?*”}}}]}
这两个ec2: RunInstances
而且ec2: CreateTags
每个标记都需要操作,以有效覆盖以下场景:集群中只有按需实例、只有现场实例或两者都有。
提示
Databricks建议为每个标记添加单独的策略声明。整个策略可能变得很长,但是更容易调试。看到IAM Policy条件操作符参考获取可在策略中使用的操作符的列表。
请注意
由于IAM策略导致集群创建错误编码错误消息
,首先是:
云提供程序启动失败:在设置集群时遇到云提供程序错误。
对消息进行编码是因为授权状态的详细信息可能构成请求操作的用户不应该看到的特权信息。看到DecodeAuthorizationMessage API(或CLI),以了解如何解码这类讯息。
对集群的SSH访问
请注意
您不能使用SSH登录到一个集群安全的集群连接启用。
SSH允许远程登录Apache Spark集群进行高级故障排除和安装自定义软件。
有关相关特性,请参见网络终端.
本节介绍如何配置AWS帐户,以启用使用公钥进入访问集群,以及如何打开到集群节点的SSH连接。
配置安全组
您必须更新AWS帐户中的Databricks安全组,以提供对您将发起SSH连接的IP地址的入口访问权。您可以为单个IP地址设置此选项,也可以提供代表整个办公室IP范围的范围。
在AWS控制台中,找到Databricks安全组。它会有一个类似的标签
< databricks-instance > -worker-unmanaged
.(例如:dbc-fb3asdddd3-worker-unmanaged
)编辑安全组并添加允许端口的入站TCP规则
2200
工人机器。可以是单个IP地址,也可以是一个范围。确保您的计算机和办公室允许您在端口上发送TCP流量
2200
.
生成SSH密钥对
在终端会话中创建SSH密钥对:
Ssh-keygen -t rsa -b4096- c“email@example.com”
您必须提供要保存公钥和私钥的目录的路径。公钥与扩展名一起保存.pub
.
使用您的公钥配置现有集群
如果你有一个集群,并且在创建集群时没有提供公钥,你可以通过从附加到集群的任何笔记本上运行这段代码来注入公钥:
瓦尔publicKey=“把你的公开密码匙放在这里”defaddAuthorizedPublicKey(关键:字符串):单位={瓦尔弗兰克-威廉姆斯=新java.io.FileWriter(“/ home / ubuntu / . ssh / authorized_keys”,/*追加*/真正的)弗兰克-威廉姆斯.写(“\ n”+关键)弗兰克-威廉姆斯.关闭()}瓦尔numExecutors=sc.getExecutorMemoryStatus.键.大小sc.并行化(0直到numExecutors,numExecutors).foreach{我= >addAuthorizedPublicKey(publicKey)}addAuthorizedPublicKey(publicKey)
集群日志传递
在创建集群时,可以指定Spark driver节点、worker节点和事件的日志传递位置。日志每5分钟发送一次到您选择的目的地。当一个集群被终止时,Databricks保证交付在集群被终止之前生成的所有日志。
日志的目的地取决于集群ID。如果指定的目标为dbfs: / cluster-log-delivery
,集群日志0630 - 191345 leap375
送货至dbfs: / cluster-log-delivery / 0630 - 191345 leap375
.
设置日志传递位置。
2 .在集群配置界面,单击高级选项切换。
单击日志记录选项卡。
选择目标类型。
输入集群日志路径。
S3桶目的地
如果选择S3目的地,则必须为集群配置可以访问桶的实例概要文件。实例概要文件必须同时具有propertynames
而且PutObjectAcl
权限。为了方便起见,还包括了一个示例实例概要文件。看到使用实例概要配置S3访问获取有关如何设置实例概要文件的说明。
{“版本”:“2012-10-17”,“声明”:[{“效应”:“允许”,“行动”:[“s3: ListBucket”),“资源”:[“攻击:aws: s3::: < my-s3-bucket >”]},{“效应”:“允许”,“行动”:[“s3: propertynames”,“s3: PutObjectAcl”,“s3: GetObject”,“s3: DeleteObject”),“资源”:[“攻击:aws: s3::: < my-s3-bucket > / *”]}]}
Init脚本
集群节点初始化脚本(或初始化脚本)是在每个集群节点启动期间运行的shell脚本之前启动Spark驱动程序或worker JVM。可以使用init脚本安装Databricks运行时未包含的包和库、修改JVM系统类路径、设置JVM使用的系统属性和环境变量、修改Spark配置参数等配置任务。
控件可以将初始化脚本附加到集群高级选项部分,并单击Init脚本选项卡。
有关详细说明,请参见集群节点初始化脚本.