Support Questions

Find answers, ask questions, and share your expertise

Nifi URL configuration - HDF

avatar
Contributor

Hi Team,

I am trying to configure nifi in hdf but facing a weird error, i am trying to configure nife UI for the domain name nifi.server1.com but if i clicked the ambari--> nifi--> quicklinks-->Nifi UI it going to server1.com.

In all the configuration i have given nifi.server1.com but don't know how its directing to server1.com.

Please guide me to resolve this thread.

root@server1[conf] # grep http nifi.properties 
nifi.remote.input.http.enabled=true 
nifi.remote.input.http.transaction.ttl=30 sec 
nifi.web.https.host=nifi.server1.com 
nifi.web.https.port=9091
9 REPLIES 9

avatar
Contributor

@Matt Clarke @Bryan Bende please share your suggestions to close this thread.

avatar
Master Mentor
@Anishkumar Valsalam

The Ambari quicklinks URLs are not driven by any of the NiFi configurations. Those quicklinks are driven by the hostname provided when you initially added hosts to your Ambari managed cluster. Since this is not a NiFi configuration issue, I am not sure where to change these quicklink URL values within Ambari.

Matt

avatar
Contributor

Can you tag Someone who have much idea about ambari UI in this thread. If we found a solution for this it will helpful for others who reading this thread.

avatar
Master Mentor

@Anishkumar Valsalam

I asked around and those quicklinks hostnames are set to the hostnames of the hosts you added to Ambari. You terminal window output above shows you logged into "server1" and not "nifi.server1.com". I could find no way to change them.

If you are configuring your nifi.properties file manually, those config changes will be overwritten when you restart NiFi via Ambari. In Ambari, if you configure the nifi.web.https.host= property to a static vale of "nifi.server1.com" , then every node in your NiFi cluster will try to start with that hostname value unless you create a unique config group in Ambari fro each node in your cluster.

Wish I could be more help, but it was never the intention of NiFi managed via Ambari to bind to different hostnames then what was provided during your Ambari host registration. I think you only option here is to use config groups, but again that will not change the quicklink URLs.

Thanks,

Matt

avatar

@Anishkumar Valsalam the quicklink functionality is defined in quicklinks.json in the Ambari service code for Nifi. For example for Nifi 1.0.0 you can find the json file here here (on your cluster it will be under /var/lib/ambari-server/resources/mpacks/hdf-ambari-mpack-*/common-services/NIFI/1.0.0/quicklinks/quicklinks.json). Based on the quicklinks.json, it is looking for nifi.node.port (or nifi.node.ssl.port, if SSL enabled) property in nifi-ambari-config config (which in Ambari > Nifi > Configs, shows up as the 'Advanced nifi-ambari-config' config accordion) to figure out which port the link should reference on the host(s) where Nifi was installed.

Looking at the below section of the json where the URL is formed, it does not appear that you can have the quicklink point to a different host because it is using Ambari API to figure out which host(s) have Nifi installed (when user went through the install wizard)

 "url":"%@://%@:%@/nifi",

I think the easiest way to achieve what you are looking for is probably to setup the hostname of the node where Nifi will run as nifi.server1.com instead of server1.com from the start i.e. prior to installing Ambari (although it is also possible to rename host post-install as well but is more involved)

avatar
Rising Star

We can change the url in quicklinks.json file and it should redirect. I tried changing it to below and NIFI UI redirects to google (for testing)

"url":"http://www.google.com"

However we should not be editing this file unless important else it is difficult to maintain it manually.

avatar

Thanks @Arti Wadhwani! yes looks like hard coding the hostname in the url will work. To hardcode only the hostname i.e to pick up the protocol (http vs https) and port automatically based on ambari configs, you can use something like below and then restarting ambari-server

 "url":"%@://nifi.server1.com:%@/nifi",

avatar
New Contributor

@Ali Bajwa

This is not working either. It still is overwriting the properties file with the original server name used in installations. I am using AWS and the cluster was setup using internal IP addresses. Not sure how to use this cluster setup now. Any ideas will be much appreciated.

avatar
New Contributor

@Anishkumar Valsalam

Were you able to resolve this issue? Unfortunately I seem to have ran into the same issue while setting up the cluster on AWS and cant seem to find a work around for that. I had to provide internal IP addresses which are now being used for the "nifi.web.https.host" property. Any info will be much appreciated.