[ 
https://issues.apache.org/jira/browse/AMBARI-21577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16101850#comment-16101850
 ] 

Eric Yang commented on AMBARI-21577:
------------------------------------

Quote from Hortonworks internal bug tracker by Robert Levas:

The problem the existence of the following rule in the auth-to-local rule set 
(core-site/hadoop.security.auth_to_local):
{code}
RULE:[2:$1@$0]([email protected])s/.*/cstm-hbase/
{code}

This rule was added due to an Kerberos identity descriptor from the BigInsight 
stack definition:
{code}
/HBASE/HBASE_REST_SERVER
{code}
{code}
                {
                  "keytab" : {
                    "configuration" : 
"hbase-site/hbase.rest.authentication.kerberos.keytab",
                    "file" : "${keytab_dir}/hbase.service.keytab",
                    "group" : {
                      "access" : "",
                      "name" : "${cluster-env/user_group}"
                    },
                    "owner" : {
                      "access" : "r",
                      "name" : "${hbase-env/hbase_user}"
                    }
                  },
                  "name" : "hbase_rest_server_spnego",
                  "principal" : {
                    "configuration" : 
"hbase-site/hbase.rest.authentication.kerberos.principal",
                    "local_username" : "${hbase-env/hbase_user}",
                    "type" : "service",
                    "value" : "HTTP/_HOST@${realm}"
                  }
                }
{code}
I am not sure what purpose this definition has since it seems to be messing up 
at least Hive and probably a few other things since this forces the SPNEGO 
identity to translate to the local user cstm-hbase (in this case). Generally it 
is expected that the SPNEGO identities has no explicit translation and by 
default will translate to HTTP. One way this is relevant is when the proxyuser 
configurations are considered. In this cluster, there are no 
hadoop.proxyuser.cstm-hbase configurations. However, the hadoop.proxyuser.HTTP 
configurations are set properly.... thus allowing the Hive service check to 
work when the rule in question is removed.
How do we want to proceed? Since BigInsights is going away, I guess there is no 
need to address the problem in that stack. So maybe upon upgrade, we try to 
figure out which rules should be removed and fix the auth-to-local rule set(s). 
There appears to be other issues with the rule set:

{code}
RULE:[2:$1@$0]([email protected])s/.*/cstm-ams/
RULE:[2:$1@$0]([email protected])s/.*/cstm-hbase/
{code}

In the above case, the 2nd rule will never get executed since the first 
matching rule wins. So amshbase/*@EXAMPLE.COM will always translate to cstm-ams.
Programmatically fixing this may be difficult since we wont be able to tell 
which rules were added by Ambari and which were custom. So the rules that do 
not belong will appear to Ambari as custom rules, so they can not be removed. 
Maybe we can document this issue and have the user manually fix it after the 
upgrade to HDP?

In any case, I made the necessary change to the cluster at 
http://172.22.120.154:8080 and the Hive service check now works.

> Hive-Service check failing in post EU validation (IOP-HDP)
> ----------------------------------------------------------
>
>                 Key: AMBARI-21577
>                 URL: https://issues.apache.org/jira/browse/AMBARI-21577
>             Project: Ambari
>          Issue Type: Bug
>          Components: stacks
>    Affects Versions: 2.5.2
>         Environment:  OS:- RHEL 7
>  Ambari Upgraded 2.2.0 to 2.5.2.0-174
> Express Upgrade:- BigInsights-4.2.0.0 to HDP-2.6.2.0-107
>            Reporter: Eric Yang
>             Fix For: 2.5.2
>
>
> Steps to reproduce:-
> 1. Installed a IOP cluster ambari-version:- 
> 2.2.0/20160616_1658,BigInsights-4.2.0.0
> 2. Upgrade the ambari from 2.2.0 to 2.5.2.0-174(IOP Clusters)
> 3. Remove IOP Select.
> 4. Register HDP Stack to HDP-2.6.2.0-107.
> 5. EU
> 6. Post EU
> Hive- Service check is failing :- 
> {code}
> HTTP/[email protected] is not allowed to 
> impersonate ambari-qa
> {code}
> stderr:-
> {code}
> Traceback (most recent call last):
>   File 
> "/var/lib/ambari-agent/cache/common-services/HIVE/0.12.0.2.0/package/scripts/service_check.py",
>  line 194, in <module>
>     HiveServiceCheck().execute()
>   File 
> "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py",
>  line 329, in execute
>     method(env)
>   File 
> "/var/lib/ambari-agent/cache/common-services/HIVE/0.12.0.2.0/package/scripts/service_check.py",
>  line 99, in service_check
>     webhcat_service_check()
>   File "/usr/lib/python2.6/site-packages/ambari_commons/os_family_impl.py", 
> line 89, in thunk
>     return fn(*args, **kwargs)
>   File 
> "/var/lib/ambari-agent/cache/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat_service_check.py",
>  line 125, in webhcat_service_check
>     logoutput=True)
>   File "/usr/lib/python2.6/site-packages/resource_management/core/base.py", 
> line 166, in __init__
>     self.env.run()
>   File 
> "/usr/lib/python2.6/site-packages/resource_management/core/environment.py", 
> line 160, in run
>     self.run_action(resource, action)
>   File 
> "/usr/lib/python2.6/site-packages/resource_management/core/environment.py", 
> line 124, in run_action
>     provider_action()
>   File 
> "/usr/lib/python2.6/site-packages/resource_management/core/providers/system.py",
>  line 262, in action_run
>     tries=self.resource.tries, try_sleep=self.resource.try_sleep)
>   File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", 
> line 72, in inner
>     result = function(command, **kwargs)
>   File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", 
> line 102, in checked_call
>     tries=tries, try_sleep=try_sleep, 
> timeout_kill_strategy=timeout_kill_strategy)
>   File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", 
> line 150, in _call_wrapper
>     result = _call(command, **kwargs_copy)
>   File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", 
> line 303, in _call
>     raise ExecutionFailed(err_msg, code, out, err)
> resource_management.core.exceptions.ExecutionFailed: Execution of 
> '/var/lib/ambari-agent/tmp/templetonSmoke.sh 
> vs-iop420tofnsec-re-2.openstacklocal ambari-qa 20111 
> idtest.ambari-qa.1500877355.88.pig 
> /etc/security/keytabs/smokeuser.headless.keytab true /usr/bin/kinit 
> [email protected] /var/lib/ambari-agent/tmp' returned 1. Templeton Smoke 
> Test (ddl cmd): Failed. : {"error":"User: 
> HTTP/[email protected] is not allowed to 
> impersonate ambari-qa"}http_code <500>
> {code} 
> Screenshot:- !Screen Shot 2017-07-24 at 12.04.44 PM.png|thumbnail! 
> Live-Server:- http://172.22.115.63:8080.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to