From bf2e4c9d6cbaccf8e1b01c774f92c2c99676716f Mon Sep 17 00:00:00 2001 From: d810146 Date: Fri, 7 Oct 2016 13:27:30 +1100 Subject: [PATCH] NIFI-2873: Nifi throws UnknownHostException with HA NameNode --- .../apache/nifi/processors/hive/PutHiveStreaming.java | 3 +++ .../java/org/apache/nifi/util/hive/HiveConfigurator.java | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors/src/main/java/org/apache/nifi/processors/hive/PutHiveStreaming.java b/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors/src/main/java/org/apache/nifi/processors/hive/PutHiveStreaming.java index 84eda83c0aef..aea14e1a40bf 100644 --- a/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors/src/main/java/org/apache/nifi/processors/hive/PutHiveStreaming.java +++ b/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors/src/main/java/org/apache/nifi/processors/hive/PutHiveStreaming.java @@ -27,6 +27,7 @@ import org.apache.avro.generic.GenericDatumWriter; import org.apache.avro.generic.GenericRecord; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hive.hcatalog.streaming.ConnectionError; import org.apache.hive.hcatalog.streaming.HiveEndPoint; @@ -323,6 +324,8 @@ public void setup(final ProcessContext context) { .withMaxOpenConnections(maxConnections) .withHeartBeatInterval(heartbeatInterval); + hiveConfigurator.preload(hiveConfig); + if (SecurityUtil.isSecurityEnabled(hiveConfig)) { final String principal = context.getProperty(kerberosProperties.getKerberosPrincipal()).getValue(); final String keyTab = context.getProperty(kerberosProperties.getKerberosKeytab()).getValue(); diff --git a/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors/src/main/java/org/apache/nifi/util/hive/HiveConfigurator.java b/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors/src/main/java/org/apache/nifi/util/hive/HiveConfigurator.java index 748847d5b5c2..8d9072058f8c 100644 --- a/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors/src/main/java/org/apache/nifi/util/hive/HiveConfigurator.java +++ b/nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors/src/main/java/org/apache/nifi/util/hive/HiveConfigurator.java @@ -18,6 +18,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.security.UserGroupInformation; @@ -71,6 +72,14 @@ public Configuration getConfigurationFromFiles(final String configFiles) { return hiveConfig; } + public void preload(Configuration configuration) { + try { + FileSystem.get(configuration); + }catch(IOException ioe) { + // Suppress exception as future uses of this configuration will fail + } + } + public UserGroupInformation authenticate(final Configuration hiveConfig, String principal, String keyTab, long ticketRenewalPeriod, ComponentLog log) throws AuthenticationFailedException { UserGroupInformation ugi;