Modifying Service Configurations
When a service is added to Cloudera Manager, either through the Installation or Upgrade Wizard or with the Add Services workflow, Cloudera Manager configures it with a default set of configuration properties, based on the needs of the service and various characteristics of the cluster in which it will run. These configuration properties include both service-wide configuration settings, as well as specific settings for each role type associated with the service, managed through Role Groups. A role group includes a set of configuration properties for that role type, as well as a list of role instances associated with that role group. Cloudera Manager automatically creates a base role group for each role type.
Certain role types — specifically those that allow multiple instances on multiple nodes, such as DataNodes, TaskTrackers, RegionServers — allow the creation of additional role groups that differ from the base configuration. Each role instance can be associated with only a single role group.
Note that when you run the installation or upgrade wizard, Cloudera Manager automatically creates the appropriate base configurations for the roles it adds. It may also create additional role groups for a given role type, if necessary. For example, if you have a DataNode role on the same host as the NameNode, it may require a slightly different configuration that DataNode roles running on other hosts. Therefore, Cloudera Manager will create a separate role group for the DataNode role that is running on the NameNode host, and use the base DataNode configuration for the DataNode roles running on other hosts.
You can modify the settings of the base role group, or you can create new role groups and associate role instances to whichever role group is most appropriate. This simplifies the management of role configurations when one group of role instances may require different settings than another group of instances of the same role type — for example, due to differences in the hardware the roles run on.
For information on creating a new role group, see Managing Role Groups.
Certain roles, such as the CDH3 NameNode and SecondaryNameNode, provide only a base role group, as only one instance of the role can exist in the cluster. You cannot create additional role groups for those roles.
You modify the configuration for any of the service's role groups through the Configuration tab (View and Edit command) for the service. You can also override the settings inherited from a role group for a given role instance, if necessary see Overriding Configuration Settings.
If you change configuration settings in the Configuration tab after you have started the service or instance, you may need to restart the service or instance. If you need to restart, a message is displayed at the top of the Configuration tab. For more information, see Restarting Services and Instances after Configuration Changes.
Changing the Configuration of a Service or Role
To change configuration settings for a service or role:
- Click the Services tab and select the service you want to modify.
- Pull down the Configuration tab at the top of the window and select Edit. The left hand panel organizes the configuration properties into into categories; first those that are Service-Wide, followed by role groups for each role type within the service. Each role group shows its own set of properties, organized by function Advanced properties are listed separately for each role group. If you have created additional role groups they will appear in this panel and you can modify them just as you can the base role group. For example, if during installation, Cloudera Manager determined that a different set of configuration values is needed for the DataNode colocated with the NameNode, you might see two categories in the Category panel — DataNode (Base) and HDFS-1-DATANODE-1 (where HDFS-1-DATANODE-1 is the role group Cloudera Manager created for the DataNode instance colocated with the NameNode role).
- Under the appropriate role group, select the category for the properties you want to change.
- To search for a text string (such as "safety valve"), in a property, value, or description, enter the text string in the Search box at the top of the Category list.
- Moving the cursor over the value cell highlights the cell; click anywhere in the
highlighted area to enable editing of the value. Then type the new value in the
field provided (or check or uncheck the box, as appropriate).
- To facilitate entering some types of values, you can specify not only the value, but also the units that apply to the value. for example, to enter a setting that specifies bytes per second, you can choose to enter the value in bytes (B), KiBs, MiBs, or GiBs — selected from a drop-down menu that appears when you edit the value.
- To remove the value you entered, click the Reset to the default value link.
- If the property allows a list of values, click the Plus icon to the right of the edit field to add an additional field. An example of this is the DataNode Data Directory property, which can have a comma-delimited list of directories as its value. To remove an item from such a list, click the Minus icon to the right of the field you want to remove.
- Click Save Changes to commit the changes. You can add a note that will be included with the change in the Configuration History. This will change the setting for the role group, and will apply to all role instances associated with that role group. Depending on the change you made, you may need to restart the service or roles associated with the configuration you just changed. Or, you may need to redeploy your client configuration for the service. You should see a message to that effect at the top of the Configuration page, and services may show "Running with Outdated Configuration" as their status.
Validation of Configuration Settings
If you try to use a configuration value that is outside the recommended range of values, Cloudera Manager displays a warning after you click Save Changes at the Configuration tab. Cloudera Manager displays a warning at the top of the Configuration tab and a warning label below the text box where the out-of-range value is entered. Normally this warning value is yellow, but you may get a red validation error if the input is blatantly incorrect.
Overriding Configuration Settings
For role types that allow multiple instances, each role instance inherits its configuration settings from its associated role group. While role groups provide a convenient way to provide alternate configuration settings for selected groups of role instances, there may be situations where you want to make a one-off configuration change — for example when a node has malfunctioned and you want to temporarily reconfigure it. In this case, you can override configuration settings for a specific role instance.
To override a configuration setting for a specific role instance:
- Go to the Service page for the Service whose role you want to change.
- Click the Instances tab
- Click the role instance you want to change
- On the role instance page, click the Configuration tab.
- Change the configuration values as appropriate.
- Save your changes.
Note that you will most likely need to restart your service or role to have your configuration changes take effect.
To see a list of all role instances that have an override value for a particular configuration setting, expand the Overridden by link in the value cell for the overridden value. To view the override values, and change them if appropriate, click the Edit Overrides link. This opens the Edit Overrides page, and lists the role instances that have override settings for the selected configuration setting.
On the Edit Overrides page, you can do any of the following:
- View the list of role instances that have overridden the value specified in the role group. Use the selections on the drop-down menu below the Value column header to view a list of instances that use the inherited value, instances that use an override value, or all instances. This view is especially useful for finding inconsistent settings in a cluster. You can also use the Host and Rack text boxes to filter the list.
- Change the override value for the role instances to the inherited value from the associated role group. To do so, select the role instances you want to change, choose Inherited Value from the drop-down menu next to Change value of selected instances to and click Apply.
- Change the override value for the role instances to a different value. To do so, select the role instances you want to change, choose Other from the drop-down menu next to Change value of selected instances to. Enter the new value in the text box and then click Apply.
Resetting Configuration Settings to the Default Value
If you want to reset a setting back to its default value, click the Reset to the default value link below the text box in the value cell. The default value is inserted and both the text box and the Reset link disappear.
Explicitly setting a configuration to the same value as its default (inherited value) will have the same effect as using the Reset to the default value link. Setting a configuration to the same value as its default value will NOT result in an override.
Using a Configuration Safety Valve
Found in the Advanced category (usually under a role group) a Safety Valve configuration setting lets you insert an XML text string into the configuration file, such as hdfs-site.xml or mapred-site.xml, owned by a service or role. It is intended for advanced use in case there is a specific Hadoop configuration setting that you find is not exposed in Cloudera Manager; contact Cloudera Support if you are required to use it.
For example, there are several safety valves for the NameNode role under the HDFS service Configuration tab, NameNode (Base) role group, Advanced subcategory. There are a number of Safety Valve properties that affect various configuration files; the Description field tells you into which configuration file your additions will be placed. For example, one NameNode safety valve property is called the NameNode Configuration Safety Valve for hdfs-site.xml; settings you enter here will be inserted verbatim into the hdfs-site.xml file associated with the NameNode — thus each value you enter into that configuration safety valve must be a valid xml property definition, for example:
To see a list of safety valve settings that apply to a specific configuration file, you can enter the configuration file name in the search field and filter for all safety valves that affect that file. For example, searching for mapred-site.xml will show all the safety valve settings that have mapred-site.xml in their descriptions.
Another example of a safety valve is an environment safety valve, such as the HDFS Service Environment Safety Valve found under the Service-Wide Advanced settings for HDFS. The key/value pairs you specify in an environment safety valve for a service or role are inserted verbatim into the role's environment. Service-wide safety valve values apply to all roles in the service; a safety valve value for a role group apply to all instances of the role associated with that role group.
Restarting Services and Instances after Configuration Changes
If you change the configuration settings after you start a service or instance, you may need to restart the service or instance to have the configuration settings become active. If you need to restart, a message is displayed at the top of the Configuration tab when you save your changes.
If you change configuration settings at the service level that affect a particular role only (such as all DataNodes but not the NameNodes), you can restart only that role; you do not need to restart the entire service. If you changed the configuration for a particular instance only (such as one of four Datanodes), you may need to restart only that instance.
To restart a service or instance:
- Navigate to the Services > Status tab for the service. The status for the roles whose configuration has changed will be Started with Outdated Configuration; that is, not using your most recent changes. If you made changes for some but not all instances of a role, the warning will indicate how many are affected. For example, if you changed just one of the four DataNode instances, the DataNode status on the HDFS Service Status page would appear as 3 Started, 1 Started with Outdated Configuration.
- To restart the entire service (such as all of HDFS), choose Restart from the Actions menu (at the upper right).
- To restart an instance (such as all DataNodes or a particular DataNode), click the Instances link, select the instances you want to restart and then select Restart from the Actions for Selected menu.
- Click Restart that appears in the next screen to confirm.
- If you see a Finished status, the service or instances have restarted.
- Navigate to the Service > Status tab. The service should show a Status of Started for all instances and a health status of Good.