...
Currently, topology services can accommodate proxying the corresponding HA-enabled cluster services using topology configuration or by leveraging ZooKeeper; the means depends on the cluster service.
For example, the WEBHDFS service is configured with URLs in the service declaration while the HIVE service employs the list of hosts in the configured ZooKeeper ensemble:
Code Block |
---|
language | xml |
---|
theme | Confluence |
---|
title | HA Service Configurations Topology Excerpt |
---|
|
...
<provider>
<role>ha</role>
<name>HaProvider</name>
<enabled>true</enabled>
<param>
<name>WEBHDFS</name>
<value>maxFailoverAttempts=3;failoverSleep=1000;maxRetryAttempts=300;retrySleep=1000;enabled=true</value>
</param>
<param>
<name>HIVE</name>
<value>maxFailoverAttempts=3;failoverSleep=1000;enabled=true;zookeeperEnsemble=host1:2181,host2:2181,host3:2181;zookeeperNamespace=hiveserver2</value>
</param>
</provider>
</gateway>
<service>
<role>WEBHDFS</role>
<url>http://host1:50070/webhdfs</url>
<url>http://host2:50070/webhdfs</url>
</service>
<service>
<role>HIVE</role>
</service>
... |
...
Proposed Alternative Provider Configuration File Formats
JSON
Code Block |
---|
language | js |
---|
theme | Confluence |
---|
title | JSON Provider Configuration |
---|
|
{
"providers": [
{
"role":"authentication",
"name":"ShiroProvider",
"enabled":"true",
"params":{
"sessionTimeout":"30",
"main.ldapRealm":"org.apache.hadoop.gateway.shirorealm.KnoxLdapRealm",
"main.ldapContextFactory":"org.apache.hadoop.gateway.shirorealm.KnoxLdapContextFactory",
"main.ldapRealm.contextFactory":"$ldapContextFactory",
"main.ldapRealm.userDnTemplate":"uid={0},ou=people,dc=hadoop,dc=apache,dc=org",
"main.ldapRealm.contextFactory.url":"ldap://localhost:33389",
"main.ldapRealm.contextFactory.authenticationMechanism":"simple",
"urls./**":"authcBasic"
}
},
{
"role":"hostmap",
"name":"static",
"enabled":"true",
"params":{
"localhost":"sandbox,sandbox.hortonworks.com"
}
},
{
"role":"ha",
"name":"HaProvider",
"enabled":"true",
"params":{
"WEBHDFS":"maxFailoverAttempts=3;failoverSleep=1000;maxRetryAttempts=300;retrySleep=1000;enabled=true",
"HIVE":"maxFailoverAttempts=3;failoverSleep=1000;enabled=true"
}
}
]
}
|
YAML
Code Block |
---|
language | js |
---|
theme | Confluence |
---|
title | YAML Provider Configuration |
---|
|
---
providers:
- role: authentication
name: ShiroProvider
enabled: true
params:
sessionTimeout: 30
main.ldapRealm: org.apache.hadoop.gateway.shirorealm.KnoxLdapRealm
main.ldapContextFactory: org.apache.hadoop.gateway.shirorealm.KnoxLdapContextFactory
main.ldapRealm.contextFactory: $ldapContextFactory
main.ldapRealm.userDnTemplate: uid={0},ou=people,dc=hadoop,dc=apache,dc=org
main.ldapRealm.contextFactory.url: ldap://localhost:33389
main.ldapRealm.contextFactory.authenticationMechanism: simple
urls./**: authcBasic
- role: hostmap
name: static
enabled: true
params:
localhost: sandbox,sandbox.hortonworks.com
- role: ha
name: HaProvider
enabled: true
params:
WEBHDFS: maxFailoverAttempts=3;failoverSleep=1000;maxRetryAttempts=300;retrySleep=1000;enabled=true
HIVE: maxFailoverAttempts=3;failoverSleep=1000;enabled=true
|
Code Block |
---|
language | js |
---|
theme | Confluence |
---|
title | Proposed Simple Descriptor Service Params - YAML |
---|
|
---
discovery-address: http://localhost:8080
discovery-user: maria_dev
provider-config-ref: sandbox-providers
cluster: Sandbox
services:
- name: NAMENODE
- name: JOBTRACKER
- name: WEBHDFS
params:
maxFailoverAttempts: 5
maxRetryAttempts: 5
failoverSleep: 1001
- name: WEBHBASE
- name: HIVE
params:
maxFailoverAttempts: 5
maxRetryAttempts: 5
failoverSleep: 1001
zookeeperNamespace: hiveserver2
zookeeperEnsemble: http://host1:2181,http://host2:2181,http://host3:2181
- name: RESOURCEMANAGER
|
Code Block |
---|
language | js |
---|
theme | Confluence |
---|
title | Proposed Simple Descriptor Service Params - JSON |
---|
|
{
"discovery-address":"http://localhost:8080",
"discovery-user":"maria_dev",
"provider-config-ref":"sandbox-providers",
"cluster":"Sandbox",
"services":[
{"name":"NAMENODE"},
{"name":"JOBTRACKER"},
{"name":"WEBHDFS",
"params": {
"maxFailoverAttempts": "5",
"maxRetryAttempts": "5",
"failoverSleep": "1001"
}
},
{"name":"WEBHBASE"},
{"name":"HIVE",
"params": {
"maxFailoverAttempts": "4",
"maxRetryAttempts": "6",
"failoverSleep": "5000",
"zookeeperNamespace": "hiveserver2",
"zookeeperEnsemble": "http://host1:2181,http://host2:2181,http://host3:2181"
}
},
{"name":"RESOURCEMANAGER"}
]
} |
...
Code Block |
---|
language | xml |
---|
theme | Confluence |
---|
title | Proposed Generated Topology XML |
---|
|
...
<provider>
<role>ha</role>
<name>HaProvider</name>
<enabled>true</enabled>
<param>
<name>WEBHDFS</name>
<value>maxFailoverAttempts=3;failoverSleep=1000;maxRetryAttempts=300;retrySleep=1000;enabled=true</value>
</param>
<param>
<name>HIVE</name>
<value>maxFailoverAttempts=3;failoverSleep=1000;enabled=true</value>
</param>
</provider>
</gateway>
<service>
<role>WEBHDFS</role>
<url>http://host1:50070/webhdfs</url>
<url>http://host2:50070/webhdfs</url>
</service>
<service>
<role>HIVE</role>
<param>
<name>zookeeperEnsemble</name>
<value>host1:2181,host2:2181,host3:2181</value>
</param>
<param>
<name>zookeeperNamespace</name>
<value>hiveserver2</value>
</param>
</service>
... |