|
@@ -522,6 +522,15 @@ class HDP22StackAdvisor(HDP21StackAdvisor):
|
|
|
putHbaseEnvProperty('hbase_max_direct_memory_size', '')
|
|
|
|
|
|
# Authorization
|
|
|
+ hbase_coprocessor_region_classes = None
|
|
|
+ if 'hbase.coprocessor.region.classes' in configurations["hbase-site"]["properties"]:
|
|
|
+ hbase_coprocessor_region_classes = configurations["hbase-site"]["properties"]["hbase.coprocessor.region.classes"].strip()
|
|
|
+ elif 'hbase.coprocessor.region.classes' in services['configurations']["hbase-site"]["properties"]:
|
|
|
+ hbase_coprocessor_region_classes = services['configurations']["hbase-site"]["properties"]["hbase.coprocessor.region.classes"].strip()
|
|
|
+ if hbase_coprocessor_region_classes:
|
|
|
+ coprocessorRegionClassList = hbase_coprocessor_region_classes.split(',')
|
|
|
+ else:
|
|
|
+ coprocessorRegionClassList = []
|
|
|
# If configurations has it - it has priority as it is calculated. Then, the service's configurations will be used.
|
|
|
hbase_security_authorization = None
|
|
|
if 'hbase-site' in configurations and 'hbase.security.authorization' in configurations['hbase-site']['properties']:
|
|
@@ -531,38 +540,32 @@ class HDP22StackAdvisor(HDP21StackAdvisor):
|
|
|
if hbase_security_authorization:
|
|
|
if 'true' == hbase_security_authorization.lower():
|
|
|
putHbaseProperty('hbase.coprocessor.master.classes', "org.apache.hadoop.hbase.security.access.AccessController")
|
|
|
- putHbaseProperty('hbase.coprocessor.region.classes', "org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint,org.apache.hadoop.hbase.security.access.AccessController")
|
|
|
+ coprocessorRegionClassList.append("org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint")
|
|
|
+ coprocessorRegionClassList.append("org.apache.hadoop.hbase.security.access.AccessController")
|
|
|
putHbaseProperty('hbase.coprocessor.regionserver.classes', "org.apache.hadoop.hbase.security.access.AccessController")
|
|
|
else:
|
|
|
putHbaseProperty('hbase.coprocessor.master.classes', "")
|
|
|
- putHbaseProperty('hbase.coprocessor.region.classes', "org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint")
|
|
|
+ coprocessorRegionClassList.append("org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint")
|
|
|
putHbaseSitePropertyAttributes('hbase.coprocessor.regionserver.classes', 'delete', 'true')
|
|
|
else:
|
|
|
- putHbaseProperty('hbase.coprocessor.region.classes', "org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint")
|
|
|
+ coprocessorRegionClassList.append("org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint")
|
|
|
putHbaseSitePropertyAttributes('hbase.coprocessor.regionserver.classes', 'delete', 'true')
|
|
|
|
|
|
# Authentication
|
|
|
if 'hbase-site' in services['configurations'] and 'hbase.security.authentication' in services['configurations']['hbase-site']['properties']:
|
|
|
- hbase_coprocessor_region_classes = None
|
|
|
- if 'hbase.coprocessor.region.classes' in configurations["hbase-site"]["properties"]:
|
|
|
- hbase_coprocessor_region_classes = configurations["hbase-site"]["properties"]["hbase.coprocessor.region.classes"].strip()
|
|
|
- elif 'hbase.coprocessor.region.classes' in services['configurations']["hbase-site"]["properties"]:
|
|
|
- hbase_coprocessor_region_classes = services['configurations']["hbase-site"]["properties"]["hbase.coprocessor.region.classes"].strip()
|
|
|
- if hbase_coprocessor_region_classes:
|
|
|
- coprocessorRegionClassList = hbase_coprocessor_region_classes.split(',')
|
|
|
- else:
|
|
|
- coprocessorRegionClassList = []
|
|
|
if 'kerberos' == services['configurations']['hbase-site']['properties']['hbase.security.authentication'].lower():
|
|
|
if 'org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint' not in coprocessorRegionClassList:
|
|
|
coprocessorRegionClassList.append('org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint')
|
|
|
- putHbaseProperty('hbase.coprocessor.region.classes', ','.join(coprocessorRegionClassList))
|
|
|
if 'org.apache.hadoop.hbase.security.token.TokenProvider' not in coprocessorRegionClassList:
|
|
|
coprocessorRegionClassList.append('org.apache.hadoop.hbase.security.token.TokenProvider')
|
|
|
- putHbaseProperty('hbase.coprocessor.region.classes', ','.join(coprocessorRegionClassList))
|
|
|
else:
|
|
|
if 'org.apache.hadoop.hbase.security.token.TokenProvider' in coprocessorRegionClassList:
|
|
|
coprocessorRegionClassList.remove('org.apache.hadoop.hbase.security.token.TokenProvider')
|
|
|
- putHbaseProperty('hbase.coprocessor.region.classes', ','.join(coprocessorRegionClassList))
|
|
|
+
|
|
|
+ #Remove duplicates
|
|
|
+ uniqueCoprocessorRegionClassList = []
|
|
|
+ [uniqueCoprocessorRegionClassList.append(i) for i in coprocessorRegionClassList if not uniqueCoprocessorRegionClassList.count(i)]
|
|
|
+ putHbaseProperty('hbase.coprocessor.region.classes', ','.join(set(uniqueCoprocessorRegionClassList)))
|
|
|
|
|
|
|
|
|
def recommendTezConfigurations(self, configurations, clusterData, services, hosts):
|