Apache YArn REgisty Configuration
configures the registry according following YARN 3.1 documentation
module.exports = (service) ->
options = service.options
Identities
options.hadoop_group = merge {}, service.deps.hadoop_core.options.hadoop_group, options.hadoop_group
options.group = merge {}, service.deps.hadoop_core.options.yarn.group, options.group
options.user = merge {}, service.deps.hadoop_core.options.yarn.user, options.user
options.ats_user = service.deps.hadoop_core.options.ats.user
Options
# Java
options.yarn_home ?= '/usr/hdp/current/hadoop-yarn-registrydns'
options.java_home ?= service.deps.java.options.java_home
options.heapsize ?= '1024m'
options.newsize ?= '200m'
# Misc
options.fqdn = service.node.fqdn
options.iptables ?= service.deps.iptables and service.deps.iptables.options.action is 'start'
options.hdfs_krb5_user = service.deps.hadoop_core.options.hdfs.krb5_user
System Options
options.opts ?= {}
options.opts.base ?= ''
options.opts.java_properties ?= {}
options.opts.jvm ?= {}
options.opts.jvm['-Xms'] ?= options.heapsize
options.opts.jvm['-Xmx'] ?= options.heapsize
options.opts.jvm['-XX:NewSize='] ?= options.newsize #should be 1/8 of heapsize
options.opts.jvm['-XX:MaxNewSize='] ?= options.newsize #should be 1/8 of heapsize
Configuration
options.conf_dir ?= '/etc/hadoop-yarn-registrydns/conf'
options.pid_dir ?= '/var/run/hadoop/yarn'
options.log_dir ?= '/var/log/hadoop/yarn'
Kerberos
options.krb5 ?= {}
options.krb5.realm ?= service.deps.krb5_client.options.etc_krb5_conf?.libdefaults?.default_realm
throw Error 'Required Options: "realm"' unless options.krb5.realm
options.krb5.admin ?= service.deps.krb5_client.options.admin[options.krb5.realm]
options.krb5.principal ?= "registry/_HOST@#{options.krb5.realm}"
options.krb5.keytab ?= "/etc/security/keytabs/registry.service.keytab"
zookeeper_quorum = for srv in service.deps.zookeeper_server
continue unless srv.options.config['peerType'] is 'participant'
"#{srv.node.fqdn}:#{srv.options.config['clientPort']}"
Configuration
options.yarn_site ?= {}
options.yarn_site['hadoop.registry.rm.enabled'] ?= 'true'
options.yarn_site['hadoop.registry.zk.quorum'] ?= zookeeper_quorum
options.yarn_site['hadoop.registry.zk.root'] ?= '/yarn-registry'
Domain configuration
Follow domain configuration. You can even use yarn DNS a a dns for network resolution.
options.yarn_site['hadoop.registry.dns.enabled '] ?= 'true'
throw Error "yarn registry domain name is not defined" unless options.yarn_site['hadoop.registry.dns.domain-name']?
options.yarn_site['hadoop.registry.dns.bind-address'] ?= '0.0.0.0'
options.yarn_site['hadoop.registry.dns.bind-port'] ?= '5353'
ACL
By default, when acl are enabled, ony super users have the right to read/write registry znodes
options.yarn_site['hadoop.registry.secure'] ?= 'true'
options.yarn_site['hadoop.registry.jaas.context'] ?= 'Client'
options.yarn_site['hadoop.registry.system.acls'] ?= 'sasl:yarn@, sasl:mapred@, sasl:mapred@, sasl:hdfs@'
options.yarn_site['hadoop.registry.kerberos.realm'] ?= ''#takes the realm used by the running process
Timeouts
options.yarn_site['hadoop.registry.zk.session.timeout.ms'] ?= '60000'
options.yarn_site['hadoop.registry.zk.connection.timeout.ms'] ?= '15000'
options.yarn_site['hadoop.registry.zk.retry.times'] ?= '5'
options.yarn_site['hadoop.registry.zk.retry.interval.ms'] ?= '1000'
options.yarn_site['hadoop.registry.zk.retry.ceiling.ms'] ?= '60000'
ats_srvs = if service.deps.yarn_ts then service.deps.yarn_ts else service.deps.yarn_tr
# for srv in [service.deps.yarn_rm..., service.deps.yarn_ts..., service.deps.yarn_nm..., service.deps.yarn_client...]
for srv in [service.deps.yarn_rm..., ats_srvs...]
srv.options.yarn_site ?= {}
for k, v of options.yarn_site
srv.options.yarn_site[k] ?= v
Wait
options.wait_krb5_client = service.deps.krb5_client.options.wait
Dependencies
{merge} = require 'nikita/lib/misc'