0

Ich benutze Kafka 0.10.1.0 unter Windows.Kafka erstellt kein Thema mit einer großen Anzahl von Partitionen (64k)

Ich versuche, ein großes Thema mit 64 k Partitionen mit kafka-topics.bat zu erstellen. Aber es kann nicht mit Fehler erstellen -

[2017-10-26 15:35:01,232] WARN Session 0x25f59be4474000f for server <ZK server name>/<ZK Server IP>:<ZK server port>, unexpected error, closing socket connection and attempting reconnect (org.apache.z 
ookeeper.ClientCnxn) 

java.io.IOException: An established connection was aborted by the software in your host machine 
     at sun.nio.ch.SocketDispatcher.write0(Native Method) 
     at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51) 
     at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) 
     at sun.nio.ch.IOUtil.write(IOUtil.java:65) 
     at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471) 
     at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:117) 
     at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:366) 
     at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141) 

Wer sonst dieses Problem jemals konfrontiert? Auch irgendwelche bekannten Probleme mit einem Kafka-Thema mit dieser großen Anzahl von Partitionen? Oder wäre es besser, sie auf mehrere Themen zu verteilen?

Danke, Vinay

Antwort

0

Erstellen 64k Partitionen, erfordert so viel wie Datei-Handlers. Ich habe den Kafka nicht in Windows ausgeführt. Aber in Linux müssen Sie die Dateihandler über /etc/security/limits.conf

erhöhen Diese article könnte nützlich sein, um die richtige Anzahl von Themen-Partitionen zu wählen.

2

Um die Gesamtzahl der Handles (nicht nur Dateihandles) zu sehen, die Ihre Anwendung zu einem bestimmten Zeitpunkt geöffnet hat: Nur um sicherzustellen, dass es sich um das Handle-Limit handelt.

Laden Sie den Process Explorer von https://technet.microsoft.com/en-us/sysinternals/processexplorer.aspx herunter Stellen Sie sicher, dass die entsprechende Aktualisierungsgeschwindigkeit eingestellt ist. Öffne es und gehe zu View -> Select Columns -> drücke auf den Reiter "Process Performance" und klicke auf "Handle Count".

Für Windows 7 x64 Bit kann ein Prozess 16.711.680 Griffe gleichzeitig geöffnet haben. Wenn Sie die Grenzwerte für sich selbst überprüfen möchten, lesen Sie weiter unten. Überprüfen Sie das, indem Sie ein Tool von Windows Internal Book (https://technet.microsoft.com/en-us/sysinternals/bb963901.aspx) verwenden. Der Name des Tools lautet TestLimit und Sie finden es im unteren Teil der Seite unter der Überschrift "Book Tools".

Es gibt keine Möglichkeiten, dieses Limit für Windows-Betriebssysteme zu erhöhen, soweit ich weiß, und ich habe auch gesucht.

Wie andere sagten, denke an eine Methode, um die große Anzahl von Threads zu minimieren. Vielleicht schließt Ihre Anwendung die Datei, aber nicht das Handle. Mein Ratschlag: Wenn Sie wirklich eine sehr große Handle-Anzahl benötigen, starten Sie jedes Mal einen neuen Prozess, wenn die Anzahl der Handle etwa 16 m beträgt.

Verwandte Themen