You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@nifi.apache.org by "Jens M. Kofoed" <jm...@gmail.com> on 2022/05/19 11:42:30 UTC
Load balancing just stopped working in NIFI 1.16.1
Hi
I have a 3 node test cluster running v. 1.16.1. Which has been working
fine, with no errors. But i doesn't do much, since it is my test cluster.
But now I am struggling with load balance connection refuse between nodes.
Both node 2 and 3 are refusing load balancing connections, even after
stopping the cluster. I have deleted all files at node 2 and 3, but they
still refuse connection.
I have not made any change to the configuration, but I have created a new
flow which got node 1 to die.
The new flow is using an ExecuteStreamCommand using stdin/stdout to a shell
command to manipulate with some data (1 GB files). I set the "Concurrent
Tasks" to high so node 1 ran out of memory and stopped. It continues to
stop if I tried to start it again. So I deleted the flow.gz file and the
run, state and work folders and started the node. Now node 1 was running
again. But after this node 2 and 3 are refusing load balancing connections.
I can't see what this flow have to do with this, but I have now tried to
remove all files at node 2 and 3 to get clean nodes. But they still doesn't
work
Does any one have an idea how to debug further?
From the log:
2022-05-19 13:22:46,268 ERROR [Load-Balanced Client Thread-2]
o.a.n.c.q.c.c.a.n.NioAsyncLoadBalanceClient Unable to connect to
nifi-n03:8443 for load balancing
java.net.ConnectException: Connection refused
at sun.nio.ch.Net.connect0(Native Method)
at sun.nio.ch.Net.connect(Net.java:482)
at sun.nio.ch.Net.connect(Net.java:474)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:647)
at sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:107)
at sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:92)
at
org.apache.nifi.controller.queue.clustered.client.async.nio.NioAsyncLoadBalanceClient.createChannel(NioAsyncLoadBalanceClient.java:497)
at
org.apache.nifi.controller.queue.clustered.client.async.nio.NioAsyncLoadBalanceClient.establishConnection(NioAsyncLoadBalanceClient.java:440)
at
org.apache.nifi.controller.queue.clustered.client.async.nio.NioAsyncLoadBalanceClient.communicate(NioAsyncLoadBalanceClient.java:234)
at
org.apache.nifi.controller.queue.clustered.client.async.nio.NioAsyncLoadBalanceClientTask.run(NioAsyncLoadBalanceClientTask.java:81)
at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
kind regards
Jens
Re: Load balancing just stopped working in NIFI 1.16.1
Posted by "Jens M. Kofoed" <jm...@gmail.com>.
Hi Mark
Thanks for the reply. The “funny” part is that it worked before and I haven’t made any change to the configuration.
And I have deleted the state folder at all nodes and it doesn’t work.
It is the same configuration as 3 other clusters except hostname/up adresses and certificates off course.
All clusters are running 1.16.1. At the 3 other clusters don’t have any issues (yet).
It all started after node 1 went down do to memory problem. After that they just don’t like me anymore 🤔
Tomorrow I will give it a chance and if it doesn’t work I will reinstall the cluster from scratch. I would like to be able to fix it. If the same situations happened with one of the productions clusters. Hopefully all flows are in the registry.
Kind regards
Jens
> Den 19. maj 2022 kl. 15.21 skrev Mark Payne <ma...@hotmail.com>:
>
> Jens,
>
> So that would tell us that the hostname or the port is wrong, or that NiFi is not running/listening for load balanced connections. I would recommend the following:
>
> - Check nifi.properties on all nodes to make sure that the nifi.cluster.load.balance.host property is set to the node’s hostname.
> - You could try deleting the state/ directory on the nodes and restarting. Perhaps somehow it’s got an old value cached and is trying to communicate with the wrong port?
>
> Thanks
> -Mark
>
>
>> On May 19, 2022, at 7:42 AM, Jens M. Kofoed <jm...@gmail.com> wrote:
>>
>> Hi
>>
>> I have a 3 node test cluster running v. 1.16.1. Which has been working fine, with no errors. But i doesn't do much, since it is my test cluster.
>> But now I am struggling with load balance connection refuse between nodes.
>> Both node 2 and 3 are refusing load balancing connections, even after stopping the cluster. I have deleted all files at node 2 and 3, but they still refuse connection.
>> I have not made any change to the configuration, but I have created a new flow which got node 1 to die.
>> The new flow is using an ExecuteStreamCommand using stdin/stdout to a shell command to manipulate with some data (1 GB files). I set the "Concurrent Tasks" to high so node 1 ran out of memory and stopped. It continues to stop if I tried to start it again. So I deleted the flow.gz file and the run, state and work folders and started the node. Now node 1 was running again. But after this node 2 and 3 are refusing load balancing connections.
>> I can't see what this flow have to do with this, but I have now tried to remove all files at node 2 and 3 to get clean nodes. But they still doesn't work
>>
>> Does any one have an idea how to debug further?
>>
>> From the log:
>> 2022-05-19 13:22:46,268 ERROR [Load-Balanced Client Thread-2] o.a.n.c.q.c.c.a.n.NioAsyncLoadBalanceClient Unable to connect to nifi-n03:8443 for load balancing
>> java.net.ConnectException: Connection refused
>> at sun.nio.ch.Net.connect0(Native Method)
>> at sun.nio.ch.Net.connect(Net.java:482)
>> at sun.nio.ch.Net.connect(Net.java:474)
>> at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:647)
>> at sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:107)
>> at sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:92)
>> at org.apache.nifi.controller.queue.clustered.client.async.nio.NioAsyncLoadBalanceClient.createChannel(NioAsyncLoadBalanceClient.java:497)
>> at org.apache.nifi.controller.queue.clustered.client.async.nio.NioAsyncLoadBalanceClient.establishConnection(NioAsyncLoadBalanceClient.java:440)
>> at org.apache.nifi.controller.queue.clustered.client.async.nio.NioAsyncLoadBalanceClient.communicate(NioAsyncLoadBalanceClient.java:234)
>> at org.apache.nifi.controller.queue.clustered.client.async.nio.NioAsyncLoadBalanceClientTask.run(NioAsyncLoadBalanceClientTask.java:81)
>> at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
>> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
>> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>> at java.lang.Thread.run(Thread.java:748)
>>
>> kind regards
>> Jens
>
Re: Load balancing just stopped working in NIFI 1.16.1
Posted by Mark Payne <ma...@hotmail.com>.
Jens,
So that would tell us that the hostname or the port is wrong, or that NiFi is not running/listening for load balanced connections. I would recommend the following:
- Check nifi.properties on all nodes to make sure that the nifi.cluster.load.balance.host property is set to the node’s hostname.
- You could try deleting the state/ directory on the nodes and restarting. Perhaps somehow it’s got an old value cached and is trying to communicate with the wrong port?
Thanks
-Mark
> On May 19, 2022, at 7:42 AM, Jens M. Kofoed <jm...@gmail.com> wrote:
>
> Hi
>
> I have a 3 node test cluster running v. 1.16.1. Which has been working fine, with no errors. But i doesn't do much, since it is my test cluster.
> But now I am struggling with load balance connection refuse between nodes.
> Both node 2 and 3 are refusing load balancing connections, even after stopping the cluster. I have deleted all files at node 2 and 3, but they still refuse connection.
> I have not made any change to the configuration, but I have created a new flow which got node 1 to die.
> The new flow is using an ExecuteStreamCommand using stdin/stdout to a shell command to manipulate with some data (1 GB files). I set the "Concurrent Tasks" to high so node 1 ran out of memory and stopped. It continues to stop if I tried to start it again. So I deleted the flow.gz file and the run, state and work folders and started the node. Now node 1 was running again. But after this node 2 and 3 are refusing load balancing connections.
> I can't see what this flow have to do with this, but I have now tried to remove all files at node 2 and 3 to get clean nodes. But they still doesn't work
>
> Does any one have an idea how to debug further?
>
> From the log:
> 2022-05-19 13:22:46,268 ERROR [Load-Balanced Client Thread-2] o.a.n.c.q.c.c.a.n.NioAsyncLoadBalanceClient Unable to connect to nifi-n03:8443 for load balancing
> java.net.ConnectException: Connection refused
> at sun.nio.ch.Net.connect0(Native Method)
> at sun.nio.ch.Net.connect(Net.java:482)
> at sun.nio.ch.Net.connect(Net.java:474)
> at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:647)
> at sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:107)
> at sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:92)
> at org.apache.nifi.controller.queue.clustered.client.async.nio.NioAsyncLoadBalanceClient.createChannel(NioAsyncLoadBalanceClient.java:497)
> at org.apache.nifi.controller.queue.clustered.client.async.nio.NioAsyncLoadBalanceClient.establishConnection(NioAsyncLoadBalanceClient.java:440)
> at org.apache.nifi.controller.queue.clustered.client.async.nio.NioAsyncLoadBalanceClient.communicate(NioAsyncLoadBalanceClient.java:234)
> at org.apache.nifi.controller.queue.clustered.client.async.nio.NioAsyncLoadBalanceClientTask.run(NioAsyncLoadBalanceClientTask.java:81)
> at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
>
> kind regards
> Jens