ZooKeeper Properties in CDH 5.3.0

serverdefaultgroup

Advanced

Display Name Description Related Name Default Value API Name Required
Server Logging Advanced Configuration Snippet (Safety Valve) For advanced use only, a string to be inserted into log4j.properties for this role only. log4j_safety_valve false
Heap Dump Directory Path to directory where heap dumps are generated when java.lang.OutOfMemoryError error is thrown. This directory is automatically created if it doesn't exist. However, if this directory already exists, role user must have write access to this directory. If this directory is shared amongst multiple roles, it should have 1777 permissions. Note that the heap dump files are created with 600 permissions and are owned by the role user. The amount of free space in this directory should be greater than the maximum Java Process heap size configured for this role. /tmp oom_heap_dump_dir false
Dump Heap When Out of Memory When set, generates heap dump file when java.lang.OutOfMemoryError is thrown. false oom_heap_dump_enabled true
Kill When Out of Memory When set, a SIGKILL signal is sent to the role process when java.lang.OutOfMemoryError is thrown. true oom_sigkill_enabled true
Automatically Restart Process When set, this role's process is automatically (and transparently) restarted in the event of an unexpected failure. true process_auto_restart true
Java Configuration Options for Zookeeper Server These arguments will be passed as part of the Java command line. Commonly, garbage collection flags or extra debugging flags would be passed here. zk_server_java_opts false
Server Advanced Configuration Snippet (Safety Valve) for zoo.cfg For advanced use only, a string to be inserted into zoo.cfg for this role only. zookeeper_config_safety_valve false

Logs

Display Name Description Related Name Default Value API Name Required
Server Logging Threshold The minimum log level for Server logs INFO log_threshold false
Server Maximum Log File Backups The maximum number of rolled log files to keep for Server logs. Typically used by log4j. 10 max_log_backup_index false
Server Max Log Size The maximum size, in megabytes, per log file for Server logs. Typically used by log4j. 200 MiB max_log_size false

Monitoring

Display Name Description Related Name Default Value API Name Required
Enable Health Alerts for this Role When set, Cloudera Manager will send alerts when the health of this role reaches the threshold specified by the EventServer setting eventserver_health_events_alert_threshold true enable_alerts false
Enable Configuration Change Alerts When set, Cloudera Manager will send alerts when this entity's configuration changes. false enable_config_alerts false
Log Directory Free Space Monitoring Absolute Thresholds The health test thresholds for monitoring of free space on the filesystem that contains this role's log directory. Warning: 10 GiB, Critical: 5 GiB log_directory_free_space_absolute_thresholds false
Log Directory Free Space Monitoring Percentage Thresholds The health test thresholds for monitoring of free space on the filesystem that contains this role's log directory. Specified as a percentage of the capacity on that filesystem. This setting is not used if a Log Directory Free Space Monitoring Absolute Thresholds setting is configured. Warning: Never, Critical: Never log_directory_free_space_percentage_thresholds false
Rules to Extract Events from Log Files This file contains the rules which govern how log messages are turned into events by the custom log4j appender that this role loads. It is in JSON format, and is composed of a list of rules. Every log message is evaluated against each of these rules in turn to decide whether or not to send an event for that message. Each rule has some or all of the following fields:
  • alert - whether or not events generated from this rule should be promoted to alerts. A value of "true" will cause alerts to be generated. If not specified, the default is "false".
  • rate (mandatory) - the maximum number of log messages matching this rule that may be sent as events every minute. If more than rate matching log messages are received in a single minute, the extra messages are ignored. If rate is less than 0, the number of messages per minute is unlimited.
  • periodminutes - the number of minutes during which the publisher will only publish rate events or fewer. If not specified, the default is one minute
  • threshold - apply this rule only to messages with this log4j severity level or above. An example is "WARN" for warning level messages or higher.
  • content - match only those messages whose contents match this regular expression.
  • exceptiontype - match only those messages which are part of an exception message. The exception type must match this regular expression.
Example:{"alert": false, "rate": 10, "exceptiontype": "java.lang.StringIndexOutOfBoundsException"}This rule will send events to Cloudera Manager for every StringIndexOutOfBoundsException, up to a maximum of 10 every minute.
version: 0, rules: [ alert: false, rate: 1, periodminutes: 1, threshold:FATAL, alert: false, rate: 0, threshold:WARN, content: .* is deprecated. Instead, use .*, alert: false, rate: 0, threshold:WARN, content: .* is deprecated. Use .* instead, alert: false, rate: 1, periodminutes: 2, exceptiontype: .*, alert: false, rate: 1, periodminutes: 1, threshold:WARN ] log_event_whitelist false
Role Triggers The configured triggers for this role. This is a JSON formatted list of triggers. These triggers are evaluated as part as the health system. Every trigger expression is parsed, and if the trigger condition is met, the list of actions provided in the trigger expression is executed. Each trigger has all of the following fields:
  • triggerName (mandatory) - the name of the trigger. This value must be unique for the specific role.
  • triggerExpression (mandatory) - a tsquery expression representing the trigger.
  • streamThreshold (optional) - the maximum number of streams that can satisfy a condition of a trigger before the condition fires. By default set to 0, and any stream returned causes the condition to fire.
  • enabled (optional) - by default set to 'true'. If set to 'false' the trigger will not be evaluated.
For example, here is a JSON formatted trigger configured for a DataNode that fires if the DataNode has more than 1500 file-descriptors opened:[{"triggerName": "sample-trigger", "triggerExpression": "IF (SELECT fd_open WHERE roleName=$ROLENAME and last(fd_open) > 1500) DO health:bad", "streamThreshold": 0, "enabled": "true"}]Consult the trigger rules documentation for more details on how to write triggers using tsquery.The JSON format is evolving and may change in the future and as a result backward compatibility is not guaranteed between releases at this time.
[] role_triggers true
Unexpected Exits Thresholds The health test thresholds for unexpected exits encountered within a recent period specified by the unexpected_exits_window configuration for the role. Warning: Never, Critical: Any unexpected_exits_thresholds false
Unexpected Exits Monitoring Period The period to review when computing unexpected exits. 5 minute(s) unexpected_exits_window false
ZooKeeper Server Connection Count Thresholds The health check thresholds of the weighted average size of the ZooKeeper Server connection count over a recent period. See ZooKeeper Server Connection Count Monitoring Period. Warning: Never, Critical: Never zookeeper_server_connection_count_thresholds false
ZooKeeper Server Connection Count Monitoring Period The period to review when computing the moving average of the connection count. Specified in minutes. 3 minute(s) zookeeper_server_connection_count_window false
Data Directory Free Space Monitoring Absolute Thresholds The health check thresholds for monitoring of free space on the filesystem that contains the ZooKeeper Server's data directory. Warning: 10 GiB, Critical: 5 GiB zookeeper_server_data_directory_free_space_absolute_thresholds false
Data Directory Free Space Monitoring Percentage Thresholds The health check thresholds for monitoring of free space on the filesystem that contains the ZooKeeper server's data directory. Specified as a percentage of the capacity on that filesystem. This setting is not used if a Data Directory Free Space Monitoring Absolute Thresholds setting is configured. Warning: Never, Critical: Never zookeeper_server_data_directory_free_space_percentage_thresholds false
Data Log Directory Free Space Monitoring Absolute Thresholds The health check thresholds for monitoring of free space on the filesystem that contains the ZooKeeper server's data log directory. Warning: 10 GiB, Critical: 5 GiB zookeeper_server_data_log_directory_free_space_absolute_thresholds false
Data Log Directory Free Space Monitoring Percentage Thresholds The health check thresholds for monitoring of free space on the filesystem that contains the ZooKeeper server's data log directory. Specified as a percentage of the capacity on that filesystem. This setting is not used if a Data Log Directory Free Space Monitoring Absolute Thresholds setting is configured. Warning: Never, Critical: Never zookeeper_server_data_log_directory_free_space_percentage_thresholds false
File Descriptor Monitoring Thresholds The health test thresholds of the number of file descriptors used. Specified as a percentage of file descriptor limit. Warning: 50.0 %, Critical: 70.0 % zookeeper_server_fd_thresholds false
Garbage Collection Duration Thresholds The health test thresholds for the weighted average time spent in Java garbage collection. Specified as a percentage of elapsed wall clock time. Warning: 30.0, Critical: 60.0 zookeeper_server_gc_duration_thresholds false
Garbage Collection Duration Monitoring Period The period to review when computing the moving average of garbage collection time. 5 minute(s) zookeeper_server_gc_duration_window false
Server Host Health Test When computing the overall Server health, consider the host's health. true zookeeper_server_host_health_enabled false
Maximum Latency Monitoring Thresholds The percentage thresholds of the ratio of the maximum request latency to the maximum client-negotiable session timeout since the server was started. Warning: 75.0 %, Critical: 100.0 % zookeeper_server_max_latency_thresholds false
ZooKeeper Server Outstanding Requests Thresholds The health check thresholds of the weighted average size of the ZooKeeper Server outstanding requests queue over a recent period. See ZooKeeper Server Outstanding Requests Monitoring Period. Warning: Never, Critical: Never zookeeper_server_outstanding_requests_thresholds false
ZooKeeper Server Outstanding Requests Monitoring Period The period to review when computing the moving average of the outstanding requests queue size. Specified in minutes. 3 minute(s) zookeeper_server_outstanding_requests_window false
Quorum Membership Detection Window The tolerance window that will be used in the detection of a ZooKeeper server's membership in a quorum. Specified in minutes. 3 minute(s) zookeeper_server_quorum_membership_detection_window false
Enable the Quorum Membership Check Enables the quorum membership check for this ZooKeeper Server. true zookeeper_server_quorum_membership_enabled false
Server Process Health Test Enables the health test that the Server's process state is consistent with the role configuration true zookeeper_server_scm_health_enabled false

Other

Display Name Description Related Name Default Value API Name Required
Client Port Address The address (IPv4, IPv6, or hostname) to monitor for client connections. This is the address that clients attempt to connect to. This setting is optional, because by default, ZooKeeper binds in such a way that any connection to the client port for any address/interface/NIC on the server will be accepted. clientPortAddress clientPortAddress false
Data Directory The disk location that ZooKeeper will use to store its database snapshots. dataDir /var/lib/zookeeper dataDir false
Transaction Log Directory The disk location that ZooKeeper will use to store its transaction logs. dataLogDir /var/lib/zookeeper dataLogDir false
Enable JMX Agent Enables the JMX agent on the ZooKeeper server. Turning this off on any of the ZooKeeper servers that are part of a service will prevent Cloudera Manager from being able to monitor that server and may affect the monitoring provided on the entire service. true enable_jmx_agent false
Enable Authenticated Communication with the JMX Agent Enables authentication when interacting with the JMX agent on the ZooKeeper server. false enable_jmx_authentication false
Name of User with Read-Only access to the JMX Agent Specifies the name of the user that has read-only privileges when using password file based authentication for JMX access. JMX authentication must be enabled for this setting to take effect. monitorRole jmx_passwd_file_readonly_user false
Password of User with Read-Only Access to the JMX agent Specifies the password of the user that has read-only privileges when using password file based authentication for JMX access. JMX authentication must be enabled for this setting to take effect. ****** jmx_passwd_file_readonly_user_password false
Name of User with Read-Write Access to the JMX Agent Specifies the name of the user that has read-write privileges when using password file based authentication for JMX access. JMX authentication must be enabled for this setting to take effect. controlRole jmx_passwd_file_readwrite_user false
Password of user with read-write access to the JMX agent Specifies the password of the user that has read-write privileges when using password file based authentication for JMX access. JMX authentication must be enabled for this setting to take effect. ****** jmx_passwd_file_readwrite_user_password false
Maximum Client Connections The maximum number of concurrent connections (at the socket level) that a single client, identified by the IP address, may make to a single member of the ZooKeeper ensemble. This setting is used to prevent certain classes of DoS attacks, including file descriptor exhaustion. To remove the limit on concurrent connections, set this value to 0. maxClientCnxns 60 maxClientCnxns false
Maximum Session Timeout The maximum session timeout, in milliseconds, that the ZooKeeper Server will allow the client to negotiate maxSessionTimeout 40000 maxSessionTimeout false
Minimum Session Timeout The minimum session timeout, in milliseconds, that the ZooKeeper Server will allow the client to negotiate minSessionTimeout 4000 minSessionTimeout false
ZooKeeper Server ID Unique identifier for each ZooKeeper server, typically starts at 1 myid serverId false
ZooKeeper Log Directory Directory where ZooKeeper will place its log files. /var/log/zookeeper zk_server_log_dir false

Performance

Display Name Description Related Name Default Value API Name Required
Maximum Process File Descriptors If configured, overrides the process soft and hard rlimits (also called ulimits) for file descriptors to the configured value. rlimit_fds false

Ports and Addresses

Display Name Description Related Name Default Value API Name Required
Client Port The port to monitor for client connections. This is the port that clients attempt to connect to. clientPort 2181 clientPort false
Election Port The port to monitor for leadership election 4181 electionPort false
Quorum Port The port to monitor for inter-server communication 3181 quorumPort false
JMX Remote Port The port used by the ZooKeeper Server's RMI registry. This is required to enable JMX access through RMI which is required for Cloudera Manager ZooKeeper monitoring. This is added as "-Dcom.sun.management.jmxremote.port" to the ZooKeeper Server's JVM command line. 9010 server_jmx_agent_port false
JMX RMI Server Port The port used by the ZooKeeper Server's RMI server to handle JMX RMI requests. This is added as "-Dcom.sun.management.jmxremote.rmi.port=<port>" to the ZooKeeper Server's JVM command line. This only has an effect in Oracle JDK 7u4 and above. If the setting is left blank, the JMX Remote Port value is used. If set to 0 or -1, this setting is ignored. When this setting is not in effect, the JVM uses a random port for the RMI server. server_jmx_rmi_port false

Resource Management

Display Name Description Related Name Default Value API Name Required
Cgroup CPU Shares Number of CPU shares to assign to this role. The greater the number of shares, the larger the share of the host's CPUs that will be given to this role when the host experiences CPU contention. Must be between 2 and 262144. Defaults to 1024 for processes not managed by Cloudera Manager. cpu.shares 1024 rm_cpu_shares true
Cgroup I/O Weight Weight for the read I/O requests issued by this role. The greater the weight, the higher the priority of the requests when the host experiences I/O contention. Must be between 100 and 1000. Defaults to 1000 for processes not managed by Cloudera Manager. blkio.weight 500 rm_io_weight true
Cgroup Memory Hard Limit Hard memory limit to assign to this role, enforced by the Linux kernel. When the limit is reached, the kernel will reclaim pages charged to the process. If reclaiming fails, the kernel may kill the process. Both anonymous as well as page cache pages contribute to the limit. Use a value of -1 B to specify no limit. By default processes not managed by Cloudera Manager will have no limit. memory.limit_in_bytes -1 MiB rm_memory_hard_limit true
Cgroup Memory Soft Limit Soft memory limit to assign to this role, enforced by the Linux kernel. When the limit is reached, the kernel will reclaim pages charged to the process if and only if the host is facing memory pressure. If reclaiming fails, the kernel may kill the process. Both anonymous as well as page cache pages contribute to the limit. Use a value of -1 B to specify no limit. By default processes not managed by Cloudera Manager will have no limit. memory.soft_limit_in_bytes -1 MiB rm_memory_soft_limit true
Java Heap Size of ZooKeeper Server in Bytes Maximum size in bytes for the Java Process heap memory. Passed to Java -Xmx. 1 GiB zookeeper_server_java_heapsize false

Stacks Collection

Display Name Description Related Name Default Value API Name Required
Stacks Collection Data Retention The amount of stacks data that will be retained. After the retention limit is reached, the oldest data will be deleted. stacks_collection_data_retention 100 MiB stacks_collection_data_retention false
Stacks Collection Directory The directory in which stacks logs will be placed. If not set, stacks will be logged into a stacks subdirectory of the role's log directory. stacks_collection_directory stacks_collection_directory false
Stacks Collection Enabled Whether or not periodic stacks collection is enabled. stacks_collection_enabled false stacks_collection_enabled true
Stacks Collection Frequency The frequency with which stacks will be collected. stacks_collection_frequency 5.0 second(s) stacks_collection_frequency false
Stacks Collection Method The method that will be used to collect stacks. The jstack option involves periodically running the jstack command against the role's daemon process. The servlet method is available for those roles that have an HTTP server endpoint exposing the current stacks traces of all threads. When the servlet method is selected that HTTP endpoint is periodically scraped. stacks_collection_method jstack stacks_collection_method false

service_wide

Advanced

Display Name Description Related Name Default Value API Name Required
Auto Purge Time Interval The time interval in hours for which the purge task has to be triggered. Set to a positive integer (1 and above) to enable the auto purging. Defaults to 24. autopurge.purgeInterval 1 day(s) autopurgeInterval false
Auto Purge Snapshots Retain Count When enabled, ZooKeeper auto purge feature retains this many most recent snapshots and the corresponding transaction logs in the dataDir and dataLogDir respectively and deletes the rest. Defaults to 5. Minimum value is 3. autopurge.snapRetainCount 5 autopurgeSnapRetainCount false
System Group The group that this service's processes should run as. zookeeper process_groupname true
System User The user that this service's processes should run as. zookeeper process_username true
Enable auto-creation of data directories Automatically create data directories at startup, if they do not exist. Enabling this configuration should be used with care as it will suppress any errors in setup of data directories. false zookeeper_datadir_autocreate false
ZooKeeper Service Environment Advanced Configuration Snippet (Safety Valve) For advanced use only, key-value pairs (one on each line) to be inserted into a role's environment. Applies to configurations of all roles in this service except client configuration. zookeeper_env_safety_valve false

Monitoring

Display Name Description Related Name Default Value API Name Required
Enable Log Event Capture When set, each role identifies important log events and forwards them to Cloudera Manager. true catch_events false
Enable Service Level Health Alerts When set, Cloudera Manager will send alerts when the health of this service reaches the threshold specified by the EventServer setting eventserver_health_events_alert_threshold true enable_alerts false
Enable Configuration Change Alerts When set, Cloudera Manager will send alerts when this entity's configuration changes. false enable_config_alerts false
Log Event Retry Frequency The frequency in which the log4j event publication appender will retry sending undelivered log events to the Event server, in seconds 30 log_event_retry_frequency false
Service Triggers The configured triggers for this service. This is a JSON formatted list of triggers. These triggers are evaluated as part as the health system. Every trigger expression is parsed, and if the trigger condition is met, the list of actions provided in the trigger expression is executed. Each trigger has all of the following fields:
  • triggerName (mandatory) - the name of the trigger. This value must be unique for the specific service.
  • triggerExpression (mandatory) - a tsquery expression representing the trigger.
  • streamThreshold (optional) - the maximum number of streams that can satisfy a condition of a trigger before the condition fires. By default set to 0, and any stream returned causes the condition to fire.
  • enabled (optional) - by default set to 'true'. If set to 'false' the trigger will not be evaluated.
For example, here is a JSON formatted trigger that fires if there are more than 10 DataNodes with more than 500 file-descriptors opened:[{"triggerName": "sample-trigger", "triggerExpression": "IF (SELECT fd_open WHERE roleType = DataNode and last(fd_open) > 500) DO health:bad", "streamThreshold": 10, "enabled": "true"}]Consult the trigger rules documentation for more details on how to write triggers using tsquery.The JSON format is evolving and may change in the future and as a result backward compatibility is not guaranteed between releases at this time.
[] service_triggers true
Service Monitor Derived Configs Advanced Configuration Snippet (Safety Valve) For advanced use only, a list of derived configuration properties that will be used by the Service Monitor instead of the default ones. smon_derived_configs_safety_valve false
ZooKeeper Canary Connection Timeout Configures the timeout used by the canary for connection establishment with ZooKeeper servers 10 second(s) zookeeper_canary_connection_timeout false
ZooKeeper Canary Health Check Enables the health check that a client can connect to ZooKeeper and perform basic operations true zookeeper_canary_health_enabled false
ZooKeeper Canary Operation Timeout Configures the timeout used by the canary for ZooKeeper operations 30 second(s) zookeeper_canary_operation_timeout false
ZooKeeper Canary Root Znode Path Configures the path of the root znode under which all canary updates are performed /cloudera_manager_zookeeper_canary zookeeper_canary_root_path false
ZooKeeper Canary Session Timeout Configures the timeout used by the canary sessions with ZooKeeper servers 30 second(s) zookeeper_canary_session_timeout false
Healthy Server Monitoring Thresholds The health test thresholds of the overall Server health. The check returns "Concerning" health if the percentage of "Healthy" Servers falls below the warning threshold. The check is unhealthy if the total percentage of "Healthy" and "Concerning" Servers falls below the critical threshold. Warning: 99.0 %, Critical: 51.0 % zookeeper_servers_healthy_thresholds false

Other

Display Name Description Related Name Default Value API Name Required
Cleanup Retain Count The number of snapshot files and corresponding transaction logs to keep when running the Cleanup command. 5 cleanupRetainCount false
Enable Kerberos Authentication Enable Kerberos authentication for ZooKeeper. enableSecurity false enableSecurity false
Initialization Limit Amount of time, in ticks, to allow followers to connect and sync to a leader. Increase this value as needed, if the amount of data managed by ZooKeeper is large. initLimit 10 initLimit false
Leader Serves Whether the leader accepts client connections. leaderServes yes leaderServes false
Synchronization Limit Amount of time, in ticks, to allow followers to sync with ZooKeeper. If followers fall too far behind a leader, they are dropped. syncLimit 5 syncLimit false
Tick Time The length of time, in milliseconds, of a single tick, which is the basic time unit used by ZooKeeper. A tick is used to regulate heartbeats and timeouts. tickTime 2000 tickTime false