Skip to content
This repository was archived by the owner on Apr 18, 2024. It is now read-only.

Commit c76d4d9

Browse files
committed
Kerberos KRB5 config mgmt change to false, updated README and added image of RM Variables
1 parent f1bf8d9 commit c76d4d9

File tree

3 files changed

+42
-30
lines changed

3 files changed

+42
-30
lines changed

README.md

Lines changed: 39 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -11,47 +11,33 @@ Future development will include support for EDH v5 clusters. In the meantime, u
1111

1212
Host types can be customized in this template. Also included with this template is an easy method to customize block volume quantity and size as pertains to HDFS capacity. See [variables.tf](https://github.com/oracle/oci-quickstart-cloudera/blob/master/terraform/variables.tf#L48-L62) for more information in-line.
1313

14-
## Prerequisites
15-
First off you'll need to do some pre deploy setup. That's all detailed [here](https://github.com/oracle/oci-quickstart-prerequisites).
16-
17-
### Clone the Module
18-
Now, you'll want a local copy of this repo. You can make that with the commands:
19-
20-
git clone https://github.com/oracle/oci-quickstart-cloudera.git
21-
cd oci-quickstart-cloudera
14+
## Resource Manager Deployment
15+
Using [OCI Resource Manager](https://docs.cloud.oracle.com/iaas/Content/ResourceManager/Concepts/resourcemanager.htm) makes deployment quite easy. Simply [download the .zip](https://github.com/oracle/oci-quickstart-cloudear/zipball/resource-manager) and follow the [Resource Manager instructions](https://docs.cloud.oracle.com/iaas/Content/ResourceManager/Tasks/usingconsole.htm) for how to build a stack. Prior to building the Stack, you may want to modify some parts of the deployment detailed in the sections below.
2216

2317
## Python Deployment using cm_client
2418
The deployment script "deploy_on_oci.py" uses cm_client against Cloudera Manger API v31. As such it does require some customization before execution. Reference the header section in the script, it is highly encouraged you modify the following variables before deployment:
2519

2620
admin_user_name
2721
admin_password
28-
cluster_name
29-
30-
Also if you modify the compute.tf in any way to change hostname parameters, you will need to update these variables for pattern matching, otherwise cluster deployment will fail:
31-
32-
worker_hosts_prefix = 'cdh-worker'
33-
namenode_host = 'cdh-master-1'
34-
secondary_namenode_host = 'cdh-master-2'
35-
cloudera_manager_host = 'cdh-utility-1'
3622

37-
In addition, further customization of the cluster deployment can be done by modification of the following functions:
23+
In addition, advanced customization of the cluster deployment can be done by modification of the following functions:
3824

3925
setup_mgmt_rcg
4026
update_cluster_rcg_configuration
4127

42-
This does require some knowledge of Python and Cloudera - modify at your own risk. These functions contain Cloudera specific tuning parameters as well as host mapping for roles.
28+
This does require some knowledge of Python and Cloudera configuration - modify at your own risk. These functions contain Cloudera specific tuning parameters as well as host mapping for roles.
4329

4430
## Kerberos Secure Cluster option
4531

4632
This automation supports using a local KDC deployed on the Cloudera Manager instance for secure cluster operation. Please read the scripts [README](https://github.com/oracle/oci-quickstart-cloudera/blob/master/scripts/README.md) for information regarding how to set these parameters prior to deployment.
4733

4834
Also - for cluster management, you will need to manually create at a minimum the HDFS Superuser Principal as [detailed here](https://www.cloudera.com/documentation/enterprise/latest/topics/cm_sg_using_cm_sec_config.html#create-hdfs-superuser) after deployment.
4935

50-
Enabling Kerberos is managed using a terraform metadata tag "deployment_type" which is set in [variables.tf](https://github.com/oracle/oci-quickstart-cloudera/blob/master/terraform/variables.tf#L32). Setting this value to "secure" will enable cluster security as part of the setup process. Changing this to "simple" will deploy an unsecured cluster.
36+
Enabling Kerberos is managed using a terraform metadata tag "deployment_type". Setting this value to "secure" will enable cluster security as part of the setup process. Changing this to "simple" will deploy an unsecured cluster. By default this value is set to "simple" for speed of deployment and ease of use for those not familiar with secure cluster operation.
5137

5238
## High Availability
5339

54-
High Availability is also offered as part of the deployment process. When secure cluster operation is chosen this is enabled by default. It can be disabled by either changing the deployment_type to "simple", or modifying the [deploy_on_oci.py](https://github.com/oracle/oci-quickstart-cloudera/blob/master/scripts/deploy_on_oci.py#L60) script and changing the value for "hdfs_ha" to False.
40+
High Availability is also offered as part of the deployment process. When secure cluster operation is chosen this is enabled by default. It can be disabled by either changing the deployment_type to "simple", or modifying the [deploy_on_oci.py](https://github.com/oracle/oci-quickstart-cloudera/blob/master/scripts/deploy_on_oci.py#L60) script and changing the value for "hdfs_ha".
5541

5642
## Metadata and MySQL
5743

@@ -67,20 +53,46 @@ As of the 2.1.0 release, included with this template is a means to deploy cluste
6753

6854
The first should be set to 'True', then replace 'None" with each of the required values. This configuration will then be pushed as part of the cluster deployment.
6955

70-
## Deployment Syntax
71-
Deployment of the module is straight forward using the following Terraform commands
56+
## Resource Manager Variables
57+
Step 2 for setting up a stack is Configure Variables. By default all variables are filled in, with the exception of the SSH Public and Private keypair used for host access. If you don't have a keypair for use with this deployment, generating one on Linux/Mac is simply:
58+
59+
ssh-keygen -t rsa
60+
61+
Follow the prompts to generate the key, do not associate a password with it. Copy the contents of each file and paste into the appropriate variable fields as shown here:
62+
63+
![Resource Manager Variables](https://github.com/oracle/oci-quickstart-cloudera/blob/resource-manager/images/RM_variables.png)
7264

73-
terraform init
74-
terraform plan
75-
terraform apply
65+
This list also can be modified to suit your specific deployment requirements. You should review the settings for the following and ensure you have the capacity in your Tenancy prior to deployment:
66+
67+
worker_instance_shape
68+
worker_node_count
69+
block_volumes_per_worker
70+
utility_instance_shape
71+
master_instance_shape
72+
bastion_instance_shape
73+
74+
Note that it is not suggested to modify the data_blocksize_in_gbs to lower than the default value of 700GB. This is because 700GB is the minimum value to achieve maximum throughput per block volume. Lowering this has a negative impact on HDFS performance. If you need more HDFS capacity, best practice is to increase the block_volumes_per_worker which adds more DFS volumes for capacity and aggregate throughput. For even higher density, the data_blocksize_in_gbs can be increased in tandem.
75+
76+
When using DenseIO shapes, it's also possible to set the block_volumes_per_worker to "0" to leverage only local NVME disk for HDFS. In the case that you have both local NVME and block, data tiering will automatically be enabled as part of the deployment process.
77+
78+
## Resource Manager Stack Steps
79+
After building the stack, it only takes 2 actions to deploy:
80+
81+
Terraform Actions -> Plan
82+
Terraform Actions -> Apply
7683

7784
This will create all the required elements in a compartment in the target OCI tenancy. This includes VCN and Security List parameters. Security audit of these in the [network module](https://github.com/oracle/oci-quickstart-cloudera/blob/master/terraform/modules/network/main.tf) is suggested.
7885

86+
The output of the Apply command will contain a URL to access Cloudera Manager. This is the public IP of the Utility Host, which runs the deployment.
87+
88+
## Monitoring Cluster Build
89+
Because all tasks are done in CloudInit, there are two ways to monitor the deployment. Firstly you can login go the Cloudera Manager URL once it is up and running a few minutes after the Apply command finishes. Alternatively you can SSH into the Utility node, and monitor the log file "/var/log/cloudera-OCI-initialize.log" which contains detailed output from the deployment.
90+
7991
## Destroy the Deployment
8092

81-
When you no longer need the deployment, you can run this command to destroy it:
93+
When you no longer need the deployment, you can destroy it:
8294

83-
terraform destroy
95+
Terraform Actions -> Destroy
8496

8597
## Deployment Architecture
8698

images/RM_variables.png

76.6 KB
Loading

scripts/deploy_on_oci.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -558,9 +558,9 @@ def update_parcel_repo(remote_parcel_url, parcel_distribution_rate):
558558

559559
new_parcel_repo_urls = old_parcel_repo_urls + ", " + remote_parcel_url
560560
repo_cm_config = cm_client.ApiConfig(name='REMOTE_PARCEL_REPO_URLS', value=new_parcel_repo_urls)
561-
distribute_cm_config = cm_client.ApiConfig(name="PARCEL_DISTRIBUTE_RATE_LIMIT_KBS_PER_SECOND",
561+
distribute_cm_config = cm_client.ApiConfig(name='PARCEL_DISTRIBUTE_RATE_LIMIT_KBS_PER_SECOND',
562562
value=parcel_distribution_rate)
563-
phone_home = cm_client.ApiConfig(name='PHONE_HOME', value="false")
563+
phone_home = cm_client.ApiConfig(name='PHONE_HOME', value='false')
564564
new_cm_configs = cm_client.ApiConfigList([repo_cm_config, distribute_cm_config, phone_home])
565565
updated_cm_configs = cloudera_manager_api.update_config(body=new_cm_configs)
566566
if debug == 'True':
@@ -1992,7 +1992,7 @@ def config_mgmt_for_kerberos():
19921992
KDC_HOST = cm_client.ApiConfig(name='KDC_HOST', value=cloudera_manager_host)
19931993
MAX_RENEW_LIFE = cm_client.ApiConfig(name='MAX_RENEW_LIFE', value='604800')
19941994
KRB_DNS_LOOKUP_KDC = cm_client.ApiConfig(name='KRB_DNS_LOOKUP_KDC', value='true')
1995-
KRB_MANAGE_KRB5_CONF = cm_client.ApiConfig(name='KRB_MANAGE_KRB5_CONF', value='true')
1995+
KRB_MANAGE_KRB5_CONF = cm_client.ApiConfig(name='KRB_MANAGE_KRB5_CONF', value='false')
19961996
kerberos_cm_configs = cm_client.ApiConfigList([KDC_ADMIN_HOST, KDC_ADMIN_PASSWORD, KDC_ADMIN_USER, KDC_HOST,
19971997
MAX_RENEW_LIFE, KRB_DNS_LOOKUP_KDC, KRB_MANAGE_KRB5_CONF])
19981998
updated_cm_configs = cloudera_manager_api.update_config(body=kerberos_cm_configs)

0 commit comments

Comments
 (0)