The following issue was reported:
016-02-17 15:23:11,814 ERROR [Timer-Driven Process Thread-7] o.apache.nifi.processors.hadoop.PutHDFS PutHDFS[id=0575cb57-786c-45d9-b9ef-19c15cc01290] Failed to writ
e to HDFS due to java.lang.NoClassDefFoundError: org/apache/http/Consts
2016-02-17 15:23:11,816 ERROR [Timer-Driven Process Thread-7] o.apache.nifi.processors.hadoop.PutHDFS
at org.apache.http.client.utils.URIBuilder.digestURI(URIBuilder.java:181) ~[httpclient-4.4.1.jar:4.4.1]
at org.apache.http.client.utils.URIBuilder.<init>(URIBuilder.java:82) ~[httpclient-4.4.1.jar:4.4.1]
at org.apache.hadoop.crypto.key.kms.KMSClientProvider.createURL(KMSClientProvider.java:368) ~[hadoop-common-2.6.2.jar:na]
From looking into this, we have the following transitive dependencies from the hadoop libraries nar:
[INFO] | | +- org.apache.httpcomponents:httpclient:jar:4.4.1:compile
[INFO] | | +- org.apache.httpcomponents:httpcore:jar:4.1.2:compile
I believe the 4.4.1 of httpclient is coming from the top level pom which has a dependency management block that forces the client to 4.4.1 and doesn't for core to 4.4.1.
If we look at httpcore 4.x branch it has the missing Consts class:
and the 4.1.x branch does not:
We either need to force both to 4.4.1, or force only the hadoop libraries nar to both be 4.1.2 if that is what it normally brings in.