Create a Cluster on Oracle OCI
- POST /api/v2/clusters/
Use this API to create a new cluster when you are using Qubole on the Oracle OCI. You create a cluster for a workload that has to run in parallel with your pre-existing workloads.
Required Role
The following users can make this API call:
Users who belong to the system-user or system-admin group.
Users who belong to a group associated with a role that allows creating a cluster. See Managing Groups and Managing Roles for more information.
Parameters
Note
Parameters marked in bold below are mandatory. Others are optional and have default values.
Parameter |
Description |
---|---|
A list of labels that identify the cluster. At least one label must be provided when creating a cluster. |
|
It contains the configurations of a cluster. |
|
It contains the configurations of the type of clusters |
|
It contains the cluster monitoring configuration. |
|
It contains the security settings for the cluster. |
cloud_config
Parameter |
Description |
---|---|
provider |
It defines the cloud provider. Set |
It defines the Azure account compute credentials for the cluster. |
|
It is used to set the geographical OCI location. |
|
It defines the network configuration for the cluster. |
|
It defines the Azure account storage credentials for the cluster. |
compute_config
Parameter |
Description |
---|---|
compute_validated |
It denotes if the credentials are validated or not. |
use_account_compute_creds |
It is to use account compute credentials. By default, it is set to |
compute_tenant_id |
The Tenancy OCID of the account in which you created the user in step 1 above. The Tenancy OCID appears at the bottom of the screen in the OCI Console. It is required when |
compute_user_id |
The user ID of the QDS account owner that is the owner of the QDS account on OCI. It is required when |
compute_key_finger_print |
The fingerprint Oracle provided when you uploaded the public key in step 2 of Configuring Oracle OCI Resources. It is required when |
network_config
Parameter |
Description |
---|---|
compartment_id |
It is the ID of the compartment where all your QDS instances and images will be stored and brought up, and (by default) where query output and logs will be stored as well. Compartments allow you to organize and control access to your cloud resources. A compartment is a collection of related resources (such as instances, virtual cloud networks, block volumes) that can be accessed only by certain groups that have been given permission by an administrator. Configuring Oracle OCI Resources provides more information. |
vcn_id |
Set the ID of the Virtual Cloud Network if the cluster would be part of it. A Virtual Cloud Network is a virtual version of a traditional network including subnets, route tables, and gateways on which your instances run. A cloud network resides within a single region but can cross multiple Availability Domains. |
subnet_id |
Set the subnet ID associated with the VCN. You can define subnets for a cloud network in different Availability Domains, but the subnet itself must belong to a single Availability Domain. |
bastion_node |
It is the public IP address of bastion node to access private subnets if required. |
storage_config
Parameter |
Description |
---|---|
block_volume_count |
It is the count of block volumes to be mounted to an instance as reserved disks. Reserved disks provide additional storage for HDFS and intermediate data on instances with low storage density. Its default value is |
block_volume_size |
It is the size (in GB) of each block volume to be mounted to an instance as reserved disk. Its default value is 256 GB and supported value range is 50 to 2048. |
location
Parameter |
Description |
---|---|
region |
It is the region in which nodes are launched. The default and the only supported region
is |
availability_domain |
The Oracle availability zone in which nodes are launched. The supported values are:
|
cluster_info
Parameter |
Description |
---|---|
label |
A cluster can have one or more labels separated by a commas. You can make a cluster the default cluster by including the label “default”. |
master_instance_type |
To change the coordinator node type from the default (Standard_A5), select a different type from the drop-down list. |
slave_instance_type |
To change the worker node type from the default (Standard_A5), select a different type from the drop-down list. |
min_nodes |
Enter the minimum number of worker nodes if you want to change it (the default is 1). |
max_nodes |
Enter the maximum number of worker nodes if you want to change it (the default is 1). |
node_bootstrap |
You can append the name of a node bootstrap script to the default path. |
disallow_cluster_termination |
Set it to |
custom_tags |
It is an optional parameter. Its value contains a <tag> and a <value>. |
rootdisk |
Use this parameter to configure the root volume of cluster instances. You must configure its size within this parameter. The supported range for the root volume size is |
engine_config
Parameter |
Description |
---|---|
flavour |
Denotes the type of cluster. The supported values for OCI are: |
To change the coordinator node type from the default (Standard_A5), select a different type from the drop-down list. |
|
Enter the minimum number of worker nodes if you want to change it (the default is 1). |
hadoop_settings
Parameter |
Description |
---|---|
custom_hadoop_config |
The custom Hadoop configuration overrides. The default value is blank. |
The fair scheduler configuration options. |
fairscheduler_settings
Parameter |
Description |
---|---|
fairscheduler_config_xml |
The XML string, with custom configuration parameters, for the fair scheduler. The default value is blank. |
default_pool |
The default pool for the fair scheduler. The default value is blank. |
spark_settings
Parameter |
Description |
---|---|
zeppelin_interpreter_mode |
The default mode is |
custom_spark_config |
Specify the custom Spark configuration overrides. The default value is blank. |
spark_version |
It is the Spark version used on the cluster. The default version is |
monitoring
Parameter |
Description |
---|---|
enable_ganglia_monitoring |
Enable Ganglia monitoring for the cluster. The default value is, |
security_settings
Parameter |
Description |
---|---|
ssh_public_key |
SSH key to use to login to the instances. The default value is none. (Note: This parameter is not visible to non-admin users.) The SSH key must be in the OpenSSH format and not in the PEM/PKCS format. |
airflow_settings
The following table contains engine_config
for an Airflow cluster.
Note
Parameters marked in bold below are mandatory. Others are optional and have default values.
Parameter |
Description |
---|---|
dbtap_id |
ID of the data store inside QDS. Set it to |
fernet_key |
Encryption key for sensitive information inside airflow database. For example, user passwords and connections. It must be a 32 url-safe base64 encoded bytes. |
type |
Engine type. It is |
version |
The default version is 1.10.0 (stable version). The other supported stable versions are 1.8.2 and 1.10.2. All the Airflow versions are compatible with MySQL 5.6 or higher. |
airflow_python_version |
Supported versions are 3.5 (supported using package management) and 2.7. To know more, see Configuring an Airflow Cluster. |
overrides |
Airflow configuration to override the default settings. Use the following syntax for overrides:
|
Request API Syntax
If use_account_compute_creds is set to false, then it is not required to set compute credentials.
curl -X POST -H "X-AUTH-TOKEN:$X_AUTH_TOKEN" -H "Content-Type:application/json" -H "Accept: application/json" \
-d '
{
"cloud_config": {
"compute_config": {
"use_account_compute_creds": "<default is ``false``/set it to ``true``>",
"compute_tenant_id": "<tenantID>",
"compute_user_id": "<user ID>",
"compute_key_finger_print": "<key finger print>",
},
"network_config": {
"compartment_id": "<compartment ID>",
"subnet_id": "<subnet-id>",
"vcn_id" : "<vcn-id>",
"Image_id" :""
},
"location" :{
"region" : "us-phoenix-1",
"availability_domain" : "<availability domain>"
}
},
"cluster_info": {
"master_instance_type": "<master instance type>",
"slave_instance_type": "<Slave instance type>",
"label": [ "<label>" ],
"min_nodes": 1,
"max_nodes": <maximum nodes>,
"node_bootstrap": "node_bootstrap.sh",
"disallow_cluster_termination": <false/true>
},
"engine_config": {
"flavour": "<hadoop2/spark>",
"hadoop_settings": {
"custom_hadoop_config": "<hadoop override>",
"fairscheduler_settings": {
"default_pool": "<default pool>"
}
}
}
}' \ "https://oraclecloud.qubole.com/api/v2/clusters"
Sample API Request
curl -X POST -H "X-AUTH-TOKEN:$X_AUTH_TOKEN" -H "Content-Type:application/json" -H "Accept: application/json" \
-d '
{
"cloud_config": {
"compute_config": {
"use_account_compute_creds": false,
"compute_tenant_id": "xxx11",
"compute_user_id": "yyyy11",
"compute_key_finger_print": "zzz22",
"compute_api_private_rsa_key": "aaa"
},
"network_config": {
"compartment_id": "abc-compartment",
"subnet_id": "subnet-1",
"vcn_id" : "vcn-1"
"Image_id" :""
},
"location" :{
"region" : "us-phoenix-1",
"availability_domain" : "phx-ad-1"
}
},
"cluster_info": {
"master_instance_type": "<master instance type>",
"slave_instance_type": "<slave instance type>",
"label": [ "oraclehadoop2"],
"min_nodes": 1,
"max_nodes": 4,
"node_bootstrap": "node_bootstrap.sh",
"disallow_cluster_termination": true
},
"engine_config": {
"flavour": "hadoop2",
"hadoop_settings": {
"custom_hadoop_config": "mapred.tasktracker.map.tasks.maximum=3"
}
}
}' \ https://oraclecloud.qubole.com/api/v2/clusters