Alejandro Fernandez created AMBARI-18013:
--------------------------------------------

             Summary: HiveHook fails to post messages to kafka due to missing 
keytab config in /etc/hive/conf/atlas-application.properties in kerberized 
cluster
                 Key: AMBARI-18013
                 URL: https://issues.apache.org/jira/browse/AMBARI-18013
             Project: Ambari
          Issue Type: Bug
          Components: stacks
    Affects Versions: 2.4.0
            Reporter: Alejandro Fernandez
            Assignee: Alejandro Fernandez
             Fix For: 2.4.0


STR:
* Install Ambari 2.4
* HDP 2.5 with Hive and Atlas
* Kerberize the cluster

The hive hook fails because 2 configs are missing from 
hive-atlas-application.properties, 
{noformat}
atlas.jaas.KafkaClient.option.keyTab=/etc/security/keytabs/hive.service.keytab
atlas.jaas.KafkaClient.option.principal=hive/_h...@example.com
{noformat}

*Impact: HiveHook related tests are failing.*
{noformat}
2016-07-29 10:25:50,087 INFO  [Atlas Logger 1]: producer.ProducerConfig 
(AbstractConfig.java:logAll(178)) - ProducerConfig values:
        metric.reporters = []
        metadata.max.age.ms = 300000
        reconnect.backoff.ms = 50
        sasl.kerberos.ticket.renew.window.factor = 0.8
        bootstrap.servers = [atlas-r6-bug-62789-1023re-2.openstacklocal:6667, 
atlas-r6-bug-62789-1023re-1.openstacklocal:6667]
        ssl.keystore.type = JKS
        sasl.mechanism = GSSAPI
        max.block.ms = 60000
        interceptor.classes = null
        ssl.truststore.password = null
        client.id =
        ssl.endpoint.identification.algorithm = null
        request.timeout.ms = 30000
        acks = 1
        receive.buffer.bytes = 32768
        ssl.truststore.type = JKS
        retries = 0
        ssl.truststore.location = null
        ssl.keystore.password = null
        send.buffer.bytes = 131072
        compression.type = none
        metadata.fetch.timeout.ms = 60000
        retry.backoff.ms = 100
        sasl.kerberos.kinit.cmd = /usr/bin/kinit
        buffer.memory = 33554432
        timeout.ms = 30000
        key.serializer = class 
org.apache.kafka.common.serialization.StringSerializer
        sasl.kerberos.service.name = kafka
        sasl.kerberos.ticket.renew.jitter = 0.05
        ssl.trustmanager.algorithm = PKIX
        block.on.buffer.full = false
        ssl.key.password = null
        sasl.kerberos.min.time.before.relogin = 60000
        connections.max.idle.ms = 540000
        max.in.flight.requests.per.connection = 5
        metrics.num.samples = 2
        ssl.protocol = TLS
        ssl.provider = null
        ssl.enabled.protocols = [TLSv1.2, TLSv1.1, TLSv1]
        batch.size = 16384
        ssl.keystore.location = null
        ssl.cipher.suites = null
        .protocol = PLAINTEXTSASL
        max.request.size = 1048576
        value.serializer = class 
org.apache.kafka.common.serialization.StringSerializer
        ssl.keymanager.algorithm = SunX509
        metrics.sample.window.ms = 30000
        partitioner.class = class 
org.apache.kafka.clients.producer.internals.DefaultPartitioner
        linger.ms = 0

2016-07-29 10:25:50,091 INFO  [Atlas Logger 1]: producer.KafkaProducer 
(KafkaProducer.java:close(658)) - Closing the Kafka producer with timeoutMillis 
= 0 ms.
2016-07-29 10:25:50,091 INFO  [Atlas Logger 1]: hook.AtlasHook 
(AtlasHook.java:notifyEntitiesInternal(131)) - Failed to notify atlas for 
entity [[{Id='(type: hive_db, id: <unassigned>)', traits=[], 
values={owner=public, ownerType=2, qualifiedName=default@cl1, clusterName=cl1, 
name=default, description=Default Hive database, 
location=hdfs://atlas-r6-bug-62789-1023re-1.openstacklocal:8020/apps/hive/warehouse,
 parameters={}}}, {Id='(type: hive_table, id: <unassigned>)', traits=[], 
values={owner=hrt_qa, temporary=false, lastAccessTime=Fri Jul 29 10:25:49 UTC 
2016, qualifiedName=default.t2@cl1, columns=[{Id='(type: hive_column, id: 
<unassigned>)', traits=[], values={owner=hrt_qa, 
qualifiedName=default.t2.abc@cl1, name=abc, comment=null, type=string, 
table=(type: hive_table, id: <unassigned>)}}], sd={Id='(type: hive_storagedesc, 
id: <unassigned>)', traits=[], values={qualifiedName=default.t2@cl1_storage, 
storedAsSubDirectories=false, 
location=hdfs://atlas-r6-bug-62789-1023re-1.openstacklocal:8020/apps/hive/warehouse/t2,
 compressed=false, inputFormat=org.apache.hadoop.mapred.TextInputFormat, 
outputFormat=org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, 
parameters={}, serdeInfo=org.apache.atlas.typesystem.Struct@7648946d, 
table=(type: hive_table, id: <unassigned>), numBuckets=-1}}, 
tableType=MANAGED_TABLE, createTime=Fri Jul 29 10:25:49 UTC 2016, name=t2, 
comment=null, partitionKeys=[], parameters={totalSize=0, numRows=0, 
rawDataSize=0, COLUMN_STATS_ACCURATE={"BASIC_STATS":"true"}, numFiles=0, 
transient_lastDdlTime=1469787949}, retention=0, db={Id='(type: hive_db, id: 
<unassigned>)', traits=[], values={owner=public, ownerType=2, 
qualifiedName=default@cl1, clusterName=cl1, name=default, description=Default 
Hive database, 
location=hdfs://atlas-r6-bug-62789-1023re-1.openstacklocal:8020/apps/hive/warehouse,
 parameters={}}}}}]]. Retrying
org.apache.kafka.common.KafkaException: Failed to construct kafka producer
        at 
org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:335)
        at 
org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:188)
        at 
org.apache.atlas.kafka.KafkaNotification.createProducer(KafkaNotification.java:312)
        at 
org.apache.atlas.kafka.KafkaNotification.sendInternal(KafkaNotification.java:220)
        at 
org.apache.atlas.notification.AbstractNotification.send(AbstractNotification.java:84)
        at 
org.apache.atlas.hook.AtlasHook.notifyEntitiesInternal(AtlasHook.java:126)
        at org.apache.atlas.hook.AtlasHook.notifyEntities(AtlasHook.java:111)
        at org.apache.atlas.hook.AtlasHook.notifyEntities(AtlasHook.java:157)
        at org.apache.atlas.hive.hook.HiveHook.fireAndForget(HiveHook.java:274)
        at org.apache.atlas.hive.hook.HiveHook.access$200(HiveHook.java:82)
        at org.apache.atlas.hive.hook.HiveHook$2.run(HiveHook.java:186)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.kafka.common.KafkaException: 
javax..auth.login.LoginException: Could not login: the client is being asked 
for a password, but the Kafka client code does not currently support obtaining 
a password from the user. not available to garner  authentication information 
from the user
        at 
org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:86)
        at 
org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:71)
        at 
org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:83)
        at 
org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:277)
        ... 15 more
Caused by: javax..auth.login.LoginException: Could not login: the client is 
being asked for a password, but the Kafka client code does not currently 
support obtaining a password from the user. not available to garner  
authentication information from the user
        at 
com.sun..auth.module.Krb5LoginModule.promptForPass(Krb5LoginModule.java:940)
        at 
com.sun..auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:760)
        at com.sun..auth.module.Krb5LoginModule.login(Krb5LoginModule.java:617)
        at sun.reflect.GeneratedMethodAccessor47.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at javax..auth.login.LoginContext.invoke(LoginContext.java:755)
        at javax..auth.login.LoginContext.access$000(LoginContext.java:195)
        at javax..auth.login.LoginContext$4.run(LoginContext.java:682)
        at javax..auth.login.LoginContext$4.run(LoginContext.java:680)
        at java..AccessController.doPrivileged(Native Method)
        at javax..auth.login.LoginContext.invokePriv(LoginContext.java:680)
        at javax..auth.login.LoginContext.login(LoginContext.java:587)
        at 
org.apache.kafka.common..authenticator.AbstractLogin.login(AbstractLogin.java:69)
        at 
org.apache.kafka.common..kerberos.KerberosLogin.login(KerberosLogin.java:110)
        at 
org.apache.kafka.common..authenticator.LoginManager.<init>(LoginManager.java:46)
        at 
org.apache.kafka.common..authenticator.LoginManager.acquireLoginManager(LoginManager.java:68)
        at 
org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:78)
        ... 18 more
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to