你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure HDInsight 中的群集 REST API
创建
在指定的订阅中创建群集。
请求
有关群集使用的标头和参数,请参阅 通用 参数和标头。
方法 | 请求 URI |
---|---|
PUT | https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{cluster name}?api-version={api-version} |
以下示例演示用于创建基于 Linux 的 hadoop 群集的请求正文。 有关以其他方式创建群集的示例,请参阅下面的示例部分。
{
"id":"/subscriptions/{subscription-id}/resourceGroups/myresourcegroup1/providers/Microsoft.HDInsight/clusters/mycluster",
"name":"mycluster",
"type":"Microsoft.HDInsight/clusters",
"location": "location-name",
"tags": { "tag1": "value1", "tag2": "value2" },
"properties": {
"clusterVersion": "3.2",
"osType": "Linux",
"clusterDefinition": {
"kind": "hadoop",
"configurations": {
"gateway": {
"restAuthCredential.isEnabled": true,
"restAuthCredential.username": "http-user",
"restAuthCredential.password": "password"
},
"core-site": {
"fs.defaultFS": "wasb://container@storageaccount.blob.core.windows.net",
"fs.azure.account.key.storageaccount.blob.core.windows.net": storage-account-key"
}
}
},
"computeProfile": {
"roles": [
{
"name": "headnode",
"targetInstanceCount": 2,
"hardwareProfile": {
"vmSize": "Large"
},
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "username",
"sshProfile": {
"publicKeys": [
{ "certificateData": "ssh-rsa key" }
]
}
}
}
},
{
"name": "workernode",
"targetInstanceCount": 1,
"hardwareProfile": {
"vmSize": "Large"
},
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "username",
"sshProfile": {
"publicKeys": [
{ "certificateData": " ssh-rsa key" }
]
}
}
}
},
{
"name": "zookeepernode",
"targetInstanceCount": 3,
"hardwareProfile": {
"vmSize": "Small"
},
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "username",
"sshProfile": {
"publicKeys": [
{ "certificateData": "ssh-rsa key" }
]
}
}
}
}
]
}
}
}
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
id | 是 | String | 指定群集的资源标识符。 |
name | 是 | String | 指定群集的名称。 |
type | 是 | String | 指定群集的类型。 |
location | 是 | String | 指定应在其中创建群集的受支持 Azure 位置。 有关详细信息,请参阅 列出所有可用的地理位置。 |
标记 | 否 | String | 指定将分配给群集的标记。 有关使用标记的详细信息,请参阅 使用标记来组织 Azure 资源。 |
属性 | 是 | 复杂类型 | 指定群集的属性。 |
属性
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
clusterVersion | 是 | String | 指定群集版本 |
osType | 是 | String | 指定群集的操作系统。 有效值为 Linux 和 Windows |
clusterDefinition | 是 | 复杂类型 | 指定有关群集类型和配置的信息 |
computeProfile | 是 | 复杂类型 | 指定有关群集拓扑和关联角色属性的信息 |
clusterDefinition
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
kind | 是 | String | 指定群集类型。 有效值为 hadoop、hbase、storm & spark |
配置 | 是 | 字典 | 此元素是配置类型的字典及其关联的值字典。 网关配置类型用于配置用于连接到 Web API 和 Ambari 门户的 http 用户 core-site 配置类型用于配置群集的默认存储帐户 |
computeProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
clusterVersion | 是 | String | 指定群集版本 |
role | 是 | 复杂类型 (角色) 数组 | 指定有关群集中角色的信息 |
角色 (role)
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
name | 是 | String | 指定角色名称 |
targetInstanceCount | 是 | Integer | 指定角色的目标实例计数 |
hardwareProfile | 是 | 复杂类型 | 指定有关角色的硬件配置文件的信息 |
osProfile | 是 | 复杂类型 | 指定有关角色的 os 配置文件的信息 |
hardwareProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
vmSize | 是 | String | 指定 VM 的大小。 请参阅此链接上的 HDInsight 配置选项 (一次,向下滚动到 节点定价层) 以获取有效大小 |
osProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
linuxOperatingSystemProfile | 否 | 复杂类型 | 指定与 Linux OS 相关的设置 |
windowsOperatingSystemProfile | 否 | 复杂类型 | 指定与 Windows OS 相关的设置 |
virtualNetworkProfile | 否 | 复杂类型 | 如果群集正在用户订阅中的虚拟网络中部署,则指定与虚拟网络相关的设置 |
scriptActions | 否 | 复杂类型的数组 | 要对群集执行的脚本操作列表 |
linuxOperatingSystemProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
用户名 | 是 | String | SSH 用户名 |
sshProfile | 否 | 复杂类型 | 指定 SSH 密钥。 需要 sshProfile 或 Password 之一。 |
密码 | 否 | String | 指定 SSH 密码 需要 sshProfile 或 Password 之一。 |
sshProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
publicKeys | 是 | Array | 包含 certificateData 对象的列表。 该值是 ssh-rsa 公钥 |
windowsOperatingSystemProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
rdpSettings | 否 | 复杂类型 | 指定 Windows 群集的 RDP 设置 |
rdpSettings
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
username | 是 | String | 指定 RDP 用户名 |
password | 是 | String | 指定 RDP 用户的密码 |
expiryDate | 是 | Date | RDP 凭据的到期日期 |
virtualNetworkProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
id | 是 | String | 虚拟网络资源 ID |
子网 | 是 | String | 指定子网名称 |
scriptActions
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
name | 是 | String | 脚本操作的友好名称 |
uri | 是 | String | 脚本操作文件的 URL |
parameters | 否 | String | 执行脚本操作文件时要传递的参数 |
响应
如果验证完成并接受请求,则操作将返回 200 (正常) 。
状态代码: 200 正常
Linux 群集的响应正文使用 ssh 密钥创建:
{
"id":"/subscriptions/{subscription-id}/resourceGroups/myresourcegroup1/providers/Microsoft.HDInsight/clusters/mycluster",
"name":"mycluster",
"type":"Microsoft.HDInsight/clusters",
"location": "location-name",
"tags": { "tag1": "value1", "tag2": "value2" },
"properties": {
"clusterVersion": "3.2",
"osType": "Linux",
"provisioningState": "InProgress",
"clusterState": "Accepted",
"createdDate": "2015-09-23",
"quotaInfo": {
"coresUsed": 20
}
"clusterDefinition": {
"kind": "hadoop"
},
"computeProfile": {
"roles": [
{
"name": "headnode",
"targetInstanceCount": 2,
"hardwareProfile": {
"vmSize": "Large"
}
},
{
"name": "workernode",
"targetInstanceCount": 1,
"hardwareProfile": {
"vmSize": "Large"
}
},
{
"name": "zookeepernode",
"targetInstanceCount": 3,
"hardwareProfile": {
"vmSize": "Small"
}
}
]
}
}
}
元素名称 | 类型 | 说明 |
---|---|---|
provisioningState | String | 指示当前预配状态。 |
clusterState | String | 指示预配正在进行时更详细的 HDInsight 群集状态。 |
createdDate | 日期 | 收到群集创建请求的日期/时间 |
quotaInfo | 复杂类型 | 指定群集使用的核心 |
错误 | 错误消息数组 | 如果 provisioningState = “failed” ,则包含错误消息 |
connectivityEndpoints | 复杂类型 | 指定群集的公共终结点 |
connectivityEndpoints
元素名称 | 类型 | 说明 |
---|---|---|
name | String | 连接终结点的友好名称 |
protocol | 字符串 | 指定要使用的协议 (示例:HTTPS、SSH) |
location | String | 指定要连接的 URL |
port | int | 指定要连接的端口 |
创建高级、已加入域的 HDInsight 群集(仅限 Linux (预览版)
使用 Apache Ranger 创建已加入高级域的群集。 用户需要在请求正文中提供 SecurityProfile 才能创建安全群集。
请求
有关群集使用的标头和参数,请参阅 常见参数 和标头。
方法 | 请求 URI |
---|---|
PUT | https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{cluster name}?api-version={api-version} |
以下示例演示用于创建基于 Linux、高级、已加入域的 Hadoop 群集的请求正文。
{
"id": "/subscriptions/{ subscription-id }/resourceGroups/myresourcegroup1/providers/Microsoft.HDInsight/ clusters/mycluster ", "
name "
: "mycluster",
"type": "Microsoft.HDInsight/clusters",
"location": "location-name",
"tags": {
"tag1": "value1",
"tag2": "value2"
},
"properties": {
"clusterVersion": "3.5",
"osType": "Linux",
"tier": "premium",
"clusterDefinition": {
"kind": "hadoop",
"configurations": {
"gateway": {
"restAuthCredential.isEnabled": true,
"restAuthCredential.username": "http-user",
"restAuthCredential.password": "password"
},
"core-site": {
"fs.defaultFS": "wasb://container@storageaccount.blob.core.windows.net",
"fs.azure.account.key.storageaccount.blob.core.windows.net": "storage-account-key"
}
}
},
"securityProfile": {
"directoryType": "ActiveDirectory",
"domain": "mydomain.com",
"organizationalUnitDN": "OU=Hadoop,DC=mydomain,DC=COM",
"ldapsUrls": ["ldaps://mydomain.com:636"],
"domainUsername": "clusteradmin@mydomain.com",
"domainUserPassword": "password",
"clusterUsersGroupDNs": ["ADGroup1", "ADGroup2"]
},
"computeProfile": {
"roles": [
{
"name": "headnode",
"targetInstanceCount": 2,
"hardwareProfile": {
"vmSize": "Large"
},
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "username",
"sshProfile": {
"publicKeys": [
{
"certificateData": "ssh-rsa key"
}
]
}
}
},
"virtualNetworkProfile": {
"id": "/subscriptions/mysubscriptionid/resourceGroups/myrresourcegroup/providers/Microsoft.Network/virtualNetworks/myvirtualnetwork",
"subnet": "/subscriptions/mysubscriptionid /resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvirtualnetwork/subnets/mysubnet"
}
},
{
"name": "workernode",
"targetInstanceCount": 1,
"hardwareProfile": {
"vmSize": "Large"
},
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "username",
"sshProfile": {
"publicKeys": [
{
"certificateData": " ssh-rsa key"
}
]
}
}
},
"virtualNetworkProfile": {
"id": "/subscriptions/mysubscriptionid/resourceGroups/myrresourcegroup/providers/Microsoft.Network/virtualNetworks/myvirtualnetwork",
"subnet": "/subscriptions/mysubscriptionid /resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvirtualnetwork/subnets/mysubnet"
}
},
{
"name": "zookeepernode",
"targetInstanceCount": 3,
"hardwareProfile": {
"vmSize": "Small"
},
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "username",
"sshProfile": {
"publicKeys": [
{
"certificateData": "ssh-rsa key"
}
]
}
},
"virtualNetworkProfile": {
"id": "/subscriptions/mysubscriptionid/resourceGroups/myrresourcegroup/providers/Microsoft.Network/virtualNetworks/myvirtualnetwork",
"subnet": "/subscriptions/mysubscriptionid /resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvirtualnetwork/subnets/mysubnet"
}
}
}
]
}
}
}
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
id | 是 | String | 指定群集的资源标识符。 |
name | 是 | String | 指定群集的名称。 |
type | 是 | String | 指定群集的类型。 |
location | 是 | String | 指定应在其中创建群集的受支持 Azure 位置。 有关详细信息,请参阅 列出所有可用的地理位置。 |
标记 | 否 | String | 指定将分配给群集的标记。 有关使用标记的详细信息,请参阅 使用标记来组织 Azure 资源。 |
属性 | 是 | 复杂类型 | 指定群集的属性。 |
属性
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
clusterVersion | 是 | String | 指定群集版本 |
osType | 是 | String | 指定群集的操作系统。 有效值为 Linux, 因为只有 Linux 群集类型可以加入 Azure AD 域。 |
层 | 否 | String | 默认值为 标准值。 有效值为 标准 值和 高级值。 如果未指定任何值,则假定该值为 标准值。 指定群集的层。 加入域的群集仅在高级层中受支持 |
clusterDefinition | 是 | 复杂类型 | 指定有关群集类型和配置的信息 |
computeProfile | 是 | 复杂类型 | 指定有关群集拓扑和关联角色属性的信息 |
securityProfile | 否 | 复杂类型 | 如果正在创建已加入域的安全群集,则此元素指定 Active Directory 相关设置 |
clusterDefinition
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
kind | 是 | String | 指定群集类型。 有效值为 hadoop、hbase、storm & spark |
配置 | 是 | 字典 | 此元素是配置类型的字典及其关联的值字典。 网关配置类型用于配置用于连接到 Web API 和 Ambari 门户的 http 用户 core-site 配置类型用于配置群集的默认存储帐户 |
computeProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
clusterVersion | 是 | String | 指定群集版本 |
role | 是 | 复杂类型 (角色) 数组 | 指定有关群集中角色的信息 |
securityProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
directoryType | 是 | String | 使用的 LDAP 目录的类型。 目前,“ActiveDirectory”是唯一受支持的值。 |
域 | 是 | String | 群集的 Active Directory 域 |
organizationUnitDN | 是 | String | 将在其中创建用户和计算机帐户的 Active 目录中组织单位的可分辨名称 |
ldapsUrls | 是 | 字符串数组 | Active Directory 的一个或多个 LDAPS 服务器的 URL |
domainUserName | 是 | String | 具有创建群集的足够权限的域用户帐户。 它应采用 user@domain 格式 |
domainUserPassword | 是 | String | 域用户帐户的密码 |
clusterUsersGroupDNS | 否 | 字符串数组 | 将在 Ambari 和 Apache Ranger 中提供的 Active Directory 组的可分辨名称 |
角色 (role)
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
name | 是 | String | 指定角色名称 |
targetInstanceCount | 是 | Integer | 指定角色的目标实例计数 |
hardwareProfile | 是 | 复杂类型 | 指定有关角色的硬件配置文件的信息 |
osProfile | 是 | 复杂类型 | 指定有关角色的 os 配置文件的信息 |
hardwareProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
vmSize | 是 | String | 指定 VM 的大小。 请参阅此链接上的 HDInsight 配置选项 (一次,向下滚动到 节点定价层) 了解有效大小 |
osProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
linuxOperatingSystemProfile | 否 | 复杂类型 | 指定与 linux OS 相关的设置 |
virtualNetworkProfile | 否 | 复杂类型 | 指定在用户订阅中的虚拟网络中部署群集时与虚拟网络相关的设置 |
scriptActions | 否 | 复杂类型的数组 | 要对群集执行的脚本操作列表 |
linuxOperatingSystemProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
用户名 | 是 | String | SSH 用户名 |
sshProfile | 否 | 复杂类型 | 指定 SSH 密钥。 需要 sshProfile 或 Password 之一。 |
密码 | 否 | String | 指定 SSH 密码 需要 sshProfile 或 Password 之一。 |
sshProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
publicKeys | 是 | Array | 包含 certificateData 对象的列表。 值为 ssh-rsa 公钥 |
virtualNetworkProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
id | 是 | String | 虚拟网络资源 ID |
子网 | 是 | String | 指定子网名称 |
scriptActions
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
name | 是 | String | 脚本操作的友好名称 |
uri | 是 | String | 脚本操作文件的 URL |
parameters | 否 | String | 执行脚本操作文件时要传递的参数 |
响应
如果验证完成且请求被接受,则操作将返回 200 (OK) 。
状态代码: 200 正常
Linux 群集的响应正文使用 ssh 密钥创建:
{
"id":"/subscriptions/{subscription-id}/resourceGroups/myresourcegroup1/providers/Microsoft.HDInsight/clusters/mycluster",
"name":"mycluster",
"type":"Microsoft.HDInsight/clusters",
"location": "location-name",
"tags": { "tag1": "value1", "tag2": "value2" },
"properties": {
"clusterVersion": "3.2",
"osType": "Linux",
"provisioningState": "InProgress",
"clusterState": "Accepted",
"createdDate": "2015-09-23",
"quotaInfo": {
"coresUsed": 20
}
"clusterDefinition": {
"kind": "hadoop"
},
"computeProfile": {
"roles": [
{
"name": "headnode",
"targetInstanceCount": 2,
"hardwareProfile": {
"vmSize": "Large"
}
},
{
"name": "workernode",
"targetInstanceCount": 1,
"hardwareProfile": {
"vmSize": "Large"
}
},
{
"name": "zookeepernode",
"targetInstanceCount": 3,
"hardwareProfile": {
"vmSize": "Small"
}
}
]
}
}
}
元素名称 | 类型 | 说明 |
---|---|---|
provisioningState | String | 指示当前预配状态。 |
clusterState | String | 指示正在进行预配时更详细的 HDInsight 群集状态。 |
createdDate | 日期 | 接收群集创建请求的日期/时间 |
quotaInfo | 复杂类型 | 指定群集使用的核心数 |
错误 | 错误消息数组 | 如果 provisioningState = 'failed' ,则包含错误消息 |
connectivityEndpoints | 复杂类型 | 指定群集的公共终结点 |
connectivityEndpoints
元素名称 | 类型 | 说明 |
---|---|---|
name | String | 连接终结点的友好名称 |
protocol | 字符串 | 指定要使用的协议 (示例:HTTPS、SSH) |
location | String | 指定要连接的 URL |
port | int | 指定要连接的端口 |
使用 Azure Data Lake Store 作为默认文件系统创建群集
在指定的订阅中创建一个群集,其中 Azure Data Lake Store 作为默认文件系统。 在请求正文中提供 ClusterIdentity 对象,并使用相应的 Data Lake Store URL 配置 default-filesystem 属性。
可以将 Azure Data Lake 配置为从 3.5(含 3.5)开始的群集版本的默认文件系统。
请求
有关群集使用的标头和参数,请参阅 通用 参数和标头。
方法 | 请求 URI |
---|---|
PUT | https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{cluster name}?api-version={api-version}} |
以下示例演示使用 Azure Data Lake Store 作为群集的默认文件系统创建基于 Linux 的 Hadoop 群集的请求正文。
{
"id": "/subscriptions/{subscription-id}/resourceGroups/myresourcegroup1/providers/Microsoft.HDInsight/clusters/mycluster",
"name": "mycluster",
"type": "Microsoft.HDInsight/clusters",
"location": "location-name",
"tags": {
"tag1": "value1",
"tag2": "value2"
},
"properties": {
"clusterVersion": "3.5",
"osType": "Linux",
"tier": "Standard",
"clusterDefinition": {
"kind": "hadoop",
"configurations": {
"gateway": {
"restAuthCredential.isEnabled": true,
"restAuthCredential.username": "http-user",
"restAuthCredential.password": "password"
},
"clusterIdentity": {
"clusterIdentity.applicationId": "applicationId",
"clusterIdentity.certificate": "certificate-contents-in-base64-encoding",
"clusterIdentity.aadTenantId": "aad-tenant-id",
"clusterIdentity.resourceUri": "https://KonaCompute.net/",
"clusterIdentity.certificatePassword": "certificate-password"
},
"core-site": {
"fs.defaultFS": "adl://home",
"dfs.adls.home.hostname": "yourstorageaccount.azuredatalakestore.net",
"dfs.adls.home.mountpoint": "/path/to/cluster/root"
}
}
},
"computeProfile": {
"roles": [
{
"name": "headnode",
"targetInstanceCount": 2,
"hardwareProfile": {
"vmSize": "Large"
},
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "username",
"sshProfile": {
"publicKeys": [
{
"certificateData": "ssh-rsa key"
}
]
}
}
}
},
{
"name": "workernode",
"targetInstanceCount": 1,
"hardwareProfile": {
"vmSize": "Large"
},
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "username",
"sshProfile": {
"publicKeys": [
{
"certificateData": " ssh-rsa key"
}
]
}
}
}
},
{
"name": "zookeepernode",
"targetInstanceCount": 3,
"hardwareProfile": {
"vmSize": "Small"
},
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "username",
"sshProfile": {
"publicKeys": [
{
"certificateData": "ssh-rsa key"
}
]
}
}
}
}
]
}
}
}
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
id | 是 | String | 指定群集的资源标识符。 |
name | 是 | String | 指定群集的名称。 |
type | 是 | String | 指定群集的类型。 |
location | 是 | String | 指定应在其中创建群集的受支持 Azure 位置。 有关详细信息,请参阅 列出所有可用的地理位置。 |
标记 | 否 | String | 指定将分配给群集的标记。 有关使用标记的详细信息,请参阅 使用标记来组织 Azure 资源。 |
属性 | 是 | 复杂类型 | 指定群集的属性。 |
属性
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
clusterVersion | 是 | String | 指定群集版本 |
osType | 是 | String | 指定群集的操作系统。 有效值为 Linux |
层 | 否 | String | 指定群集的层。 有效值为 标准 值和 高级值。 如果未指定层,群集将采用标准层。 |
clusterDefinition | 是 | 复杂类型 | 指定有关群集类型和配置的信息 |
computeProfile | 是 | 复杂类型 | 指定有关群集拓扑和关联角色属性的信息 |
clusterDefinition
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
kind | 是 | String | 指定群集类型。 有效值为 hadoop、hbase、storm & spark |
配置 | 是 | 字典 | 此元素是配置类型的字典及其关联的值字典。 网关配置类型用于配置用于连接到 Web API 和 Ambari 门户的 http 用户 core-site 配置类型用于配置群集的默认存储帐户 |
computeProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
clusterVersion | 是 | String | 指定群集版本 |
role | 是 | 复杂类型 (角色) 数组 | 指定有关群集中角色的信息 |
角色 (role)
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
name | 是 | String | 指定角色名称 |
targetInstanceCount | 是 | Integer | 指定角色的目标实例计数 |
hardwareProfile | 是 | 复杂类型 | 指定有关角色的硬件配置文件的信息 |
osProfile | 是 | 复杂类型 | 指定有关角色的 os 配置文件的信息 |
hardwareProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
vmSize | 是 | String | 指定 VM 的大小。 请参阅此链接上的 HDInsight 配置选项 (一次,向下滚动到 节点定价层) 了解有效大小 |
osProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
linuxOperatingSystemProfile | 否 | 复杂类型 | 指定与 linux OS 相关的设置 |
virtualNetworkProfile | 否 | 复杂类型 | 指定在用户订阅中的虚拟网络中部署群集时与虚拟网络相关的设置 |
scriptActions | 否 | 复杂类型的数组 | 要对群集执行的脚本操作列表 |
linuxOperatingSystemProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
用户名 | 是 | String | SSH 用户名 |
sshProfile | 否 | 复杂类型 | 指定 SSH 密钥。 需要 sshProfile 或 Password 之一。 |
密码 | 否 | String | 指定 SSH 密码 需要 sshProfile 或 Password 之一。 |
sshProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
publicKeys | 是 | Array | 包含 certificateData 对象的列表。 该值是 ssh-rsa 公钥 |
virtualNetworkProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
id | 是 | String | 虚拟网络资源 ID |
子网 | 是 | String | 指定子网名称 |
scriptActions
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
name | 是 | String | 脚本操作的友好名称 |
uri | 是 | String | 脚本操作文件的 URL |
parameters | 否 | String | 执行脚本操作文件时要传递的参数 |
响应
如果验证完成且请求被接受,则操作将返回 200 (OK) 。
状态代码: 200 正常
Linux 群集的响应正文使用 ssh 密钥创建:
{
"id": "/subscriptions/{subscription ID}/resourceGroups/rg1/providers/Microsoft.HDInsightCurrent/clusters/mycluster",
"name": "mycluster",
"type": "Microsoft.HDInsightCurrent/clusters",
"location": "East Asia",
"etag": "{value}",
"tags": null,
"properties": {
"clusterVersion": "3.5.1000.0",
"osType": "Linux",
"clusterDefinition": {
"kind": "hadoop"
},
"computeProfile": {
"roles": [
{
"name": "headnode",
"targetInstanceCount": 2,
"hardwareProfile": {
"vmSize": "Standard_D3"
},
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "myuser"
}
}
},
{
"name": "workernode",
"targetInstanceCount": 2,
"hardwareProfile": {
"vmSize": "Standard_D3"
},
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "myuser"
}
}
}
]
},
"provisioningState": "InProgress",
"clusterState": "Accepted",
"createdDate": "2016-11-15T09:21:47.61",
"quotaInfo": {
"coresUsed": 16
},
"tier": "standard"
}
}
元素名称 | 类型 | 说明 |
---|---|---|
provisioningState | String | 指示当前预配状态。 |
clusterState | String | 指示正在进行预配时更详细的 HDInsight 群集状态。 |
createdDate | 日期 | 接收群集创建请求的日期/时间 |
quotaInfo | 复杂类型 | 指定群集使用的核心数 |
错误 | 错误消息数组 | 如果 provisioningState = 'failed' ,则包含错误消息 |
connectivityEndpoints | 复杂类型 | 指定群集的公共终结点 |
connectivityEndpoints
元素名称 | 类型 | 说明 |
---|---|---|
name | String | 连接终结点的友好名称 |
protocol | 字符串 | 指定要使用的协议 (示例:HTTPS、SSH) |
location | String | 指定要连接的 URL |
port | int | 指定要连接的端口 |
删除
删除 HDInsight 群集。
请求
有关群集使用的标头和参数,请参阅 通用 参数和标头。
方法 | 请求 URI |
---|---|
DELETE | https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{cluster name}?api-version={api-version} |
响应
HTTP 202 (接受) 指示操作将以异步方式完成。 操作成功完成后,异步轮询将返回 204 (NoContent) 。
注解
若要跟踪删除群集请求的进度,请参阅 异步操作 (202 接受和 Location 标头)
Get
获取指定群集的详细信息/属性。
请求
有关群集使用的标头和参数,请参阅 通用 参数和标头。
方法 | 请求 URI |
---|---|
GET | https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{cluster name}?api-version={api-version} |
响应
如果请求成功完成,操作将返回 200 (正常)
状态代码: 200 正常
响应正文与创建群集相同。
Linux 群集的响应正文详细信息
{
"id":"/subscriptions/{subscription-id}/resourceGroups/myresourcegroup1/providers/Microsoft.HDInsight/clusters/mycluster",
"name":"mycluster",
"type":"Microsoft.HDInsight/clusters",
"location": "location-name",
"tags": { "tag1": "value1", "tag2": "value2" },
"properties": {
"clusterVersion": "3.2",
"osType": "Linux",
"provisioningState": "InProgress",
"clusterState": "Accepted",
"createdDate": "2015-09-23",
"quotaInfo": {
"coresUsed": 20
}
"clusterDefinition": {
"kind": "hadoop"
},
"computeProfile": {
"roles": [
{
"name": "headnode",
"targetInstanceCount": 2,
"hardwareProfile": {
"vmSize": "Large"
},
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "sshuser"
}
}
},
{
"name": "workernode",
"targetInstanceCount": 1,
"hardwareProfile": {
"vmSize": "Large"
},
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "sshuser"
}
}
},
{
"name": "zookeepernode",
"targetInstanceCount": 3,
"hardwareProfile": {
"vmSize": "Small"
},
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "sshuser"
}
}
}
]
}
}
}
元素名称 | 类型 | 说明 |
---|---|---|
provisioningState | String | 指示当前预配状态。 |
clusterState | String | 指示正在进行预配时更详细的 HDInsight 群集状态。 |
createdDate | 日期 | 接收群集创建请求的日期/时间 |
quotaInfo | 复杂类型 | 指定群集使用的核心数 |
错误 | 错误消息数组 | 如果 provisioningState = 'failed' ,则包含错误消息 |
connectivityEndpoints | 复杂类型 | 指定群集的公共终结点 |
connectivityEndpoints
元素名称 | 类型 | 说明 |
---|---|---|
name | String | 连接终结点的友好名称 |
protocol | 字符串 | 指定要使用的协议 (示例:HTTPS、SSH) |
location | String | 指定要连接的 URL |
port | int | 指定要连接的端口 |
列出配置
检索所有群集配置详细信息 (包括敏感信息) 。
请求
有关群集使用的标头和参数,请参阅 通用 参数和标头。
方法 | 请求 URI |
---|---|
POST | https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{cluster name}/configurations?api-version={api-version} |
响应
成功完成操作后,HTTP 200 (正常) 。
示例响应:
"configurations":
{
"gateway": {
"restAuthCredential.isEnabled": true,
"restAuthCredential.username": "username",
"restAuthCredential.password": "Password123!"
},
"core-site": {
"fs.defaultFS": "wasbs://mycontainter@mystorageaccount.blob.core.windows.net",
"fs.azure.account.key.mystorageaccount.blob.core.windows.net": "storagekey1value"
}
}
元素名称 | 类型 | 说明 |
---|---|---|
配置 | 字典 | 此元素是配置类型的字典及其关联的值字典。 网关配置类型用于配置用于连接到 Web API 和 Ambari 门户的 http 用户 core-site 配置类型用于配置群集的默认存储帐户 |
获取配置
获取有关单个配置类型的详细信息, (省略) 敏感值。
请求
有关群集使用的标头和参数,请参阅 通用 参数和标头。
方法 | 请求 URI |
---|---|
GET | https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{cluster name}/configurations/{configuration Type}?api-version={api-version} |
响应
成功完成操作后,HTTP 200 (正常) 。
示例响应:
{
"core-site": {
"fs.defaultFS": "wasbs://mycontainter@mystorageaccount.blob.core.windows.net",
"fs.azure.account.key.mystorageaccount.blob.core.windows.net": ""
}
}
获取网关设置
此操作检索群集网关 HTTP 凭据。
请求
有关群集使用的标头和参数,请参阅 通用 参数和标头。
方法 | 请求 URI |
---|---|
POST | https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{cluster name}/getGatewaySettings?api-version={api-version} |
响应
成功完成操作后,HTTP 200 (正常) 。
示例响应:
{
"restAuthCredential.isEnabled": true,
"restAuthCredential.username": "username",
"restAuthCredential.password": "Password123!"
}
更新网关设置
此操作允许用户更改群集网关 HTTP 凭据。
请求
有关群集使用的标头和参数,请参阅 常见参数 和标头。
方法 | 请求 URI |
---|---|
POST | https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{cluster name}/updateGatewaySettings?api-version={api-version} |
{
"restAuthCredential.isEnabled": true,
"restAuthCredential.username": "username",
"restAuthCredential.password": "Password123!"
}
响应
HTTP 202 (成功完成操作后接受) 。
(已弃用) 更改连接设置
此操作允许用户启用/禁用与群集的 HTTPS 连接。
请改用 updateGatewaySettings 。
请求
有关群集使用的标头和参数,请参阅 常见参数 和标头。
方法 | 请求 URI |
---|---|
POST | https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{cluster name}/configurations/{configuration Type}?api-version={api-version} |
启用连接
{
"restAuthCredential.isEnabled": true,
"restAuthCredential.username": "user",
"restAuthCredential.password": "password here"
}
按资源组列出
Lists指定资源组中用户订阅中的所有群集。
请求
有关群集使用的标头和参数,请参阅 常见参数 和标头。
方法 | 请求 URI |
---|---|
GET | https://management.azure.com/subscriptions/{subscription Id}/resourcegroups/{resourceGroup Id}/providers/Microsoft.HDInsight/clusters?api-version={api-version} |
响应
如果请求成功完成,该操作将返回 200 (正常) 。
状态代码:200 正常
响应正文是群集详细信息的数组。 有关详细信息,请参阅 获取群集属性。
{
"value": [
{ Cluster details }
]
}
按订阅列出
Lists用户订阅中的所有群集。
请求
有关群集使用的标头和参数,请参阅 常见参数 和标头。
方法 | 请求 URI |
---|---|
GET | https://management.azure.com/subscriptions/{subscription Id}/providers/Microsoft.HDInsight/clusters?api-version={api-version} |
响应
如果请求成功完成,该操作将返回 200 (正常) 。
状态代码: 200 正常
响应正文是群集详细信息的数组。
{
"value": [
{ Cluster details }
]
}
禁用连接
{
"restAuthCredential.isEnabled": false
}
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
restAuthCredential.isEnabled | 是 | 布尔 | 指定应启用或禁用连接 |
restAuthCredential.username | 否 | String | 如果 isEnabled=true,则为必需 指定连接设置的用户名 |
restAuthCredential.password | 否 | String | 如果 isEnabled=true,则为必需 指定连接设置的密码 |
响应
HTTP 202 (接受) ,以指示操作将以异步方式完成。 操作成功完成后,异步轮询将返回 204 (NoContent) 。
注解
若要跟踪删除群集请求的进度,请参阅 异步操作 (202 接受和位置标头)
仅) (Windows 群集更改 RDP 设置
此操作允许用户启用/禁用 RDP。 它适用于基于 Windows 的群集。
请求
有关群集使用的标头和参数,请参阅 常见参数 和标头。
方法 | 请求 URI |
---|---|
POST | https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{cluster name}/changerdpsetting?api-version={api-version} |
请求正文
启用 RDP
{
"osProfile": {
"windowsOperatingSystemProfile": {
"rdpSettings": {
"username": "username",
"password": "password here",
"expiryDate": "YYYY-MM-DD"
}
}
}
}
禁用 RDP
{
"osProfile": {
"windowsOperatingSystemProfile": {
"rdpSettings": null
}
}
}
osProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
windowsOperatingSystemProfile | 否 | 复杂类型 | 指定与 Windows OS 相关的设置 |
windowsOperatingSystemProfile
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
rdpSettings | 否 | 复杂类型 | 指定 Windows 群集的 RDP 设置 |
rdpSettings
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
username | 是 | String | 指定 RDP 用户名 |
password | 是 | String | 指定 RDP 用户的密码 |
expiryDate | 是 | Date | RDP 凭据的到期日期 |
响应
如果请求成功完成,操作将返回 200 (正常)
状态代码: 200 正常
响应正文与 创建群集相同。
仅在运行中的群集 (Linux 群集上运行脚本操作)
在正在运行的群集上执行脚本操作。
请求
有关群集使用的标头和参数,请参阅 通用 参数和标头。
方法 | 请求 URI |
---|---|
POST | https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{cluster name}/executeScriptActions?api-version={api-version} |
请求正文
{
"scriptActions": [
{
"name": "script-name",
"uri": "script-uri",
"parameters": "script-parameters",
"roles": [
"headnode",
"workernode"
]
},
...
],
"persistOnSuccess": true
}
scriptActions
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
name | 是 | String | 指定脚本操作的名称 |
uri | 是 | String | 指定脚本操作的 URI |
parameters | 是 | String | 指定脚本操作所需的参数 |
角色 | 是 | 字符串数组 | 指定脚本操作执行的目标角色 |
persistOnSuccess | 是 | 布尔 | 指定是否在成功执行后保留脚本操作 |
响应
如果验证已完成且请求已接受,则操作将返回 202 (接受) 。
状态代码: 202 (接受)
列出群集 (Linux 群集的所有持久化脚本操作)
此操作返回指定群集的所有持久化脚本操作。
请求
有关群集使用的标头和参数,请参阅 通用 参数和标头。
方法 | 请求 URI |
---|---|
GET | https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{cluster name}/scriptActions?api-version={api-version} |
响应
成功完成操作后,HTTP 200 (正常) 。
状态代码: 200 正常
示例响应:
{
"value":
[
{
"name":"script-name",
"uri":"script-uri",
"parameters":"script-parameters",
"roles":["headnode","workernode"],
"applicationName":null
},
...
]
}
元素名称 | 类型 | 说明 |
---|---|---|
name | String | 指定脚本操作的名称。 |
uri | 字符串 | 指定脚本操作的 URI。 |
parameters | String | 指定脚本操作所需的参数 |
角色 | 字符串数组 | 指定执行脚本操作的目标角色。 |
applicationName | 字符串 | 指定与脚本关联的相应应用程序。 如果脚本由用户提供,则 applicationName 为 null |
删除群集 (Linux 群集的持久化脚本操作)
此操作将删除群集的 HDInsight 持久化脚本操作。
请求
有关群集使用的标头和参数,请参阅 通用 参数和标头。
方法 | 请求 URI |
---|---|
DELETE | https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{cluster name}/scriptActions/{script Name}?api-version={api-version} |
响应
HTTP 200 (正常) 指示脚本操作已从持久化脚本操作列表中删除。
HTTP 404 (NotFound) 指示不存在具有相应 scriptName 的现有持久化脚本操作。
仅从 Linux 群集 (历史记录获取脚本操作执行)
此操作返回指定群集的最新脚本操作执行或单个脚本执行的执行详细信息。
请求
有关群集使用的标头和参数,请参阅 通用 参数和标头。
方法 | 请求 URI |
---|---|
GET | https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{cluster name}/scriptExecutionHistory/{script Execution Id}?api-version={api-version} |
响应
如果请求成功完成,操作将返回 200 (正常) 。 响应正文是脚本执行详细信息的数组,如果提供了 scriptExecutionId,则为单个脚本执行详细信息。 下面是脚本执行详细信息的示例。
状态代码: 200 (正常)
示例响应:
{
"scriptExecutionId":script-execution-id,
"name":"script-name",
"applicationName":null,
"uri":"script-uri",
"parameters":"script-parameters",
"roles":["headnode","workernode"],
"startTime":"2016-02-26T23:49:13.0773637Z",
"endTime":"2016-02-26T23:49:33.4964725Z",
"status":"Succeeded",
"operation":"PostClusterCreateScriptActionRequest",
"executionSummary":
[{"status":"COMPLETED",
"instanceCount":4}],
"debugInformation": "debug-information"
}
元素名称 | 类型 | 说明 |
---|---|---|
scriptExecutionId | Long | 指定脚本操作的执行 ID。 |
name | String | 指定脚本操作的名称。 |
applicationName | 字符串 | 指定与脚本关联的相应应用程序。 如果脚本由用户提供,则 applicationName 为 null |
uri | 字符串 | 指定脚本操作的 URI。 |
parameters | String | 指定脚本操作所需的参数 |
角色 | 字符串数组 | 指定执行脚本操作的目标角色。 |
startTime | DateTime | 指定脚本操作执行的开始时间 |
endTime | DateTime | 指定脚本操作执行的结束时间 |
状态 | 字符串 | 指定脚本操作执行的状态 |
operation | String | 指定执行脚本操作的原因。 例如,ScaleUp 表示脚本操作是在群集纵向扩展期间执行的。 |
executionSummary | 复杂类型的数组 | 根据成功主机数和未能执行脚本的主机数指定执行摘要。 |
debugInformation | String | 指定脚本的详细调试信息。 仅当请求中提供了 scriptExecutionId 时,才会返回 debugInformation。 |
executionSummary
元素名称 | 类型 | 说明 |
---|---|---|
状态 | 字符串 | 指定单个主机上的执行状态。 |
instanceCount | int | 指定具有相应状态的执行数。 |
将脚本操作执行历史记录中的脚本提升为仅在 Linux 群集 (持久保存)
此操作将保留脚本执行历史记录中的 HDInsight 脚本。
请求
有关群集使用的标头和参数,请参阅 通用 参数和标头。
方法 | 请求 URI |
---|---|
POST | https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{cluster name}/scriptExecutionHistory/{script Execution Id}/promote?api-version={api-version} |
响应
HTTP 200 (正常) 指示脚本操作已升级。
HTTP 404 (NotFound) 指示没有使用相应 scriptExecutionId 执行现有的脚本操作。
Resize
调整现有 HDInsight 群集的大小。
请求
有关群集使用的标头和参数,请参阅 通用 参数和标头。
方法 | 请求 URI |
---|---|
POST | https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{cluster name}/roles/{role name}/resize?api-version={api-version} |
下面显示了更新群集标记的示例请求
{
"targetInstanceCount": 10
}
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
targetInstanceCount | 是 | int | 指定角色的新实例计数 |
响应
HTTP 202 (接受) 指示操作将以异步方式完成。 操作成功完成后,异步轮询将返回 204 (NoContent) 。
注解
若要跟踪删除群集请求的进度,请参阅 异步操作 (202 接受和 Location 标头)
更新
汇报群集的标记。
所有其他更新都是单独描述的单独操作。
请求
有关群集使用的标头和参数,请参阅 通用 参数和标头。
方法 | 请求 URI |
---|---|
修补程序 | https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{cluster name}?api-version={api-version} |
下面显示了更新群集标记的示例请求
{
"tags": {"department": "finance"}
}
元素名称 | 必须 | 类型 | 说明 |
---|---|---|---|
标记 | 是 | String | 指定将分配给群集的标记。 有关使用标记的详细信息,请参阅 使用标记来组织 Azure 资源。 |
响应
如果请求成功完成,操作将返回 200 (正常) 。
状态代码: 200 正常
响应正文与 创建群集相同。