You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ambari.apache.org by "Alejandro Fernandez (JIRA)" <ji...@apache.org> on 2016/08/03 23:13:20 UTC

[jira] [Created] (AMBARI-18013) HiveHook fails to post messages to kafka due to missing keytab config in /etc/hive/conf/atlas-application.properties in kerberized cluster

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/_HOST@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)