2012-11-09 12 views
20

हमारे पास एक देव मशीन पर एक स्टैंडअलोन ज़ूकीपर सेटअप है। यह एक टेस्टडेव मशीन को छोड़कर हर दूसरे देव मशीन के लिए ठीक काम करता है।जुकीपर कनेक्शन त्रुटि

हम जब testdev के माध्यम से चिड़ियाघर संचालक से कनेक्ट करने की कोशिश कर रहा पर इस त्रुटि मिलती है और फिर से:

2012-11-09 14:06:53,909 - INFO [main-SendThread(zk01.dev.bunchball.net:2181):[email protected]] - Socket connection established to zk01.dev.bunchball.net/192.168.8.58:2181, initiating session 
2012-11-09 14:06:53,911 - INFO [main-SendThread(zk01.dev.bunchball.net:2181):[email protected]] - Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect 
2012-11-09 14:06:55,366 - INFO [main-SendThread(zk01.dev.bunchball.net:2181):[email protected]] - Opening socket connection to server zk01.dev.bunchball.net/192.168.8.58:2181 
2012-11-09 14:06:55,368 - INFO [main-SendThread(zk01.dev.bunchball.net:2181):[email protected]] - Socket connection established to zk01.dev.bunchball.net/192.168.8.58:2181, initiating session 
2012-11-09 14:06:55,368 - INFO [main-SendThread(zk01.dev.bunchball.net:2181):[email protected]] - Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect 
2012-11-09 14:06:57,271 - INFO [main-SendThread(zk01.dev.bunchball.net:2181):[email protected]] - Opening socket connection to server zk01.dev.bunchball.net/192.168.8.58:2181 
2012-11-09 14:06:57,274 - INFO [main-SendThread(zk01.dev.bunchball.net:2181):[email protected]] - Socket connection established to zk01.dev.bunchball.net/192.168.8.58:2181, initiating session 
2012-11-09 14:06:57,275 - INFO [main-SendThread(zk01.dev.bunchball.net:2181):[email protected]] - Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect 

हम परीक्षण देव मशीन को पुन: प्रारंभ करने की कोशिश की, और यह भी पुनः आरंभ चिड़ियाघर संचालक मेजबान लेकिन कुछ भी काम किया। हम पूरी तरह उलझन में हैं कि यह अन्य मशीनों के साथ पूरी तरह से ठीक क्यों काम करता है। इसका कारण क्या हो सकता है?

उत्तर

1

मुझे यह समस्या भी थी, और यह पता चला कि मैं गलत बंदरगाह से कनेक्ट करने के लिए ज़ूकीपर को बता रहा था। क्या आपने सत्यापित किया है कि वास्तव में देव मशीन पर पोर्ट 2181 पर ज़ूकीपर चल रहा है?

12

मेरे पास वही स्थिति है जैसा आपने और मैंने अभी इस समस्या को ठीक कर दिया है।

यही कारण है कि आपने ज़ूकीपरों की संख्या को भी कॉन्फ़िगर किया है जो सीधे इस समस्या का परिणाम देते हैं, ज़ूकीपर नोड को अपनी विषम संख्या में बदलने की कोशिश करें।

उदाहरण के लिए मेरी चिड़ियाघर संचालक क्लस्टर की मूल स्थिति 4 नोड्स शामिल है, तो सिर्फ उन में से एक है जो नोड की संख्या में परिणाम को दूर 3 होने के लिए अच्छी तरह से, अब ठीक है चिड़ियाघर संचालक क्लस्टर प्रारंभ करेंगे करने के लिए

नीचे

सफलतापूर्वक के उत्पादन सर्वर चिड़ियाघर संचालक को

2013-04-22 22:07:05,654 [myid:] - INFO [main:[email protected]] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 [email protected] 
Welcome to ZooKeeper! 
2013-04-22 22:07:05,704 [myid:] - INFO [main-SendThread(localhost:2181):[email protected]] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) 
JLine support is enabled 
2013-04-22 22:07:05,727 [myid:] - INFO [main-SendThread(localhost:2181):[email protected]] - Socket connection established to localhost/127.0.0.1:2181, initiating session 
[zk: localhost:2181(CONNECTING) 0] 2013-04-22 22:07:05,846 [myid:] - INFO [main-SendThread(localhost:2181):[email protected]] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x13e3211c06e0000, negotiated timeout = 30000 
+6

* "आपने ज़ूकीपरों की संख्या भी कॉन्फ़िगर की है" * - क्या ओपी ने यह नहीं कहा कि * "एक देव मशीन पर एक स्टैंडअलोन ज़ूकीपर सेटअप" * जो दर्शाता है कि जेडके उदाहरणों की संख्या वास्तव में विषम है ? –

+2

@Rugal: ** जादू विषम संख्या ** के साथ आने के लिए कोई वैध स्रोत **? –

+2

@Rugal मुझे 'zookeeper' नोड की संख्या को बदलना चाहिए? – Kulasangar

1

मैं भी इस समस्या थी, और मैंने पाया कि मैं सिर्फ, चिड़ियाघर संचालक को पुनः आरंभ करने की जरूरत है फिर पुन: प्रारंभ कनेक्ट है बिल्ला तो मेरे webapp अच्छी तरह से जुड़ा हुआ तो

1

मैं वा ज़ूकीपर और कफका के साथ 2 नोड्स के साथ शुरू करने में सक्षम है। मैं त्रुटि मिली क्योंकि मैं काफ्का आवरण के बजाय ./zkServer.sh साथ चिड़ियाघर संचालक शुरू किया था bin/zookeeper-server-start.sh config/zookeeper.properties

1

सुनिश्चित करें कि सभी आवश्यक सेवाओं चला रहे हैं

चरण 1: जाँच करें कि HBase मास्टर

sudo /etc/init.d/hbase-master status 

चल रहा है यदि नहीं, तो शुरू में यह sudo /etc/init.d/hbase-master start

चरण 2: जाँच करें कि HBase-regionserver

sudo /etc/init.d/hbase-regionserver status 

चल रहा है यदि नहीं, तो शुरू में यह sudo /etc/init.d/hbase-regionserver start

चरण 3: यदि चिड़ियाघर संचालक-सर्वर

sudo /etc/init.d/zookeeper-server status 

अगर चल रहा है की जाँच करें नहीं, फिर इसे sudo /etc/init.d/zookeeper-server start


या बस इन 3 आदेशों को एक पंक्ति में चलाएं।

कि मत भूलना के बाद स्थिति

sudo /etc/init.d/hbase-master status 
sudo /etc/init.d/hbase-regionserver status 
sudo /etc/init.d/zookeeper-server status 

आपको लगता है कि चिड़ियाघर संचालक मिल सकती है अभी भी नहीं चल जाँच करने के लिए: तो आप चिड़ियाघर संचालक

sudo /usr/lib/zookeeper/bin/zkServer.sh stop 
sudo /usr/lib/zookeeper/bin/zkServer.sh start 

बाद चलने लगेंगे जो फिर से स्थिति की जांच करें और सुनिश्चित करें कि यह

चल रहा है

यह काम करना चाहिए।

6

मुझे एक ही समस्या का सामना करना पड़ा और पाया कि यह ज़ूकीपर क्लस्टर नोड्स के कारण एक दूसरे के साथ संवाद करने के लिए बंदरगाहों की आवश्यकता है।

server.1=xx.xx.xx.xx:2888:3888 

server.2=xx.xx.xx.xx:2888:3888 

server.3=xx.xx.xx.xx:2888:3888 

एक बार जब मैंने इन बंदरगाहों को सुरक्षा समूह के माध्यम से अनुमति दी और फिर से शुरू किया। सभी मेरे लिए ठीक काम किया

2

मेरे मामले में, मैं config zoo.cfg इस तरह:

server.1=host-1:2888:3888 
server.2=host-2:2888:3888 
server.3=host-3:2888:3888 

लेकिन, मेजबान -1 में, मैं में 127.0.0.1 करने के लिए विन्यास मेजबान -1 संकल्प/etc/hosts :

127.0.0.1 localhost host-1 

जिसके परिणामस्वरूप अन्य होस्ट इसके साथ संवाद नहीं कर सकते हैं। अपने वास्तविक आईपी में मेजबान -1 को हल करें इस समस्या को हल करें।

उम्मीद है कि इससे मदद मिल सकती है।

1

मैं अपनी मशीन में स्टैंडअलोन उदाहरण शुरू करता हूं, और एक ही समस्या का सामना करता हूं। अंत में, मैं आईपी "127.0.0.1" से "लोकलहोस्ट" में बदल जाता हूं और समस्या खत्म हो जाती है।

4

मैंने अभी समस्या हल की है। मैं centos 7. उपयोग कर रहा हूँ और मुसीबत निर्माता firewall.Using है "systemctl रोक firewalld" प्रत्येक सर्वर में यह सब बंद करने के लिए बस problem.Or आप

firewall-cmd --zone=public --add-port=2181/udp --add-port=2181/tcp --permanent" to configure all three ports ,include 2181,2888,3888 in each server.And then "firewall-cmd --reload 

की तरह आदेश का उपयोग कर सकते हैं हल कर सकते हैं अंत में

का उपयोग
zkServer.sh restart 

अपने सर्वर को पुनरारंभ करने और समस्या हल करने के लिए।

1

मेरे पास वही स्थिति है जैसा आपने और मैंने अभी इस समस्या को ठीक कर दिया है।

मेरी conf/zoo.cfg सिर्फ इस तरह:

server.1=10.194.236.32:2888:3888 
server.2=10.194.236.33:2888:3888 
server.3=10.208.177.15:2888:3888 
server.4=10.210.154.23:2888:3888 
server.5=10.210.154.22:2888:3888 

तो मैं सेट इस तरह data/myid फ़ाइल सामग्री:

1  //at host 10.194.236.32 
2  //at host 10.194.236.33 
3  //at host 10.208.177.15 
4  //at host 10.210.154.23 
5  //at host 10.210.154.22 

अंत में चिड़ियाघर संचालक

0

पुनः आरंभ चेक चिड़ियाघर संचालक लॉग (/ var/log/चिड़ियाघर संचालक)। ऐसा लगता है कि एक कनेक्शन स्थापित है, जिसका मतलब है कि इसका एक रिकॉर्ड है।

मेरे पास एक ही स्थिति थी और ऐसा इसलिए था क्योंकि एक प्रक्रिया ने कनेक्शन खोले और उन्हें बंद करने में असफल रहा। यह अंततः प्रति-होस्ट कनेक्शन सीमा पार हो गई और मेरी लॉग

2016-08-03 15:21:13,201 [myid:] - WARN [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]] - Too many connections from /172.31.38.64 - max is 50 

मान लिया जाये कि चिड़ियाघर संचालक सामान्य बंदरगाह पर है के साथ बह निकला थे, तो आप उस के साथ एक चेक कर सकता है:

lsof -i -P | grep 2181 
0

मैं एक ही समस्या का सामना करना पड़ा भी। मेरे मामले में समस्या iptables नियमों के बारे में है।

ज़ूकीपर नोड के साथ संवाद करने के लिए, 2181 पोर्ट को आने वाले अनुरोध को स्वीकार करना होगा, साथ ही ज़ूकीपर नोड्स के बीच आंतरिक संचार के लिए 2888,3888 बंदरगाह आने वाले अनुरोध के लिए खुले रहना चाहिए।

iptables -t nat -I PREROUTING -p tcp -s 10.0.0.0/24 --dport 2181 -j DNAT --to-destination serverIp:2181 
iptables -t nat -I PREROUTING -p udp -s 10.0.0.0/24 --dport 2181 -j DNAT --to-destination serverIp:2181 

iptables -t nat -I PREROUTING -p tcp -s 10.0.0.0/24 --dport 2888 -j DNAT --to-destination serverIp:2888 
iptables -t nat -I PREROUTING -p udp -s 10.0.0.0/24 --dport 2888 -j DNAT --to-destination serverIp:2888 

iptables -t nat -I PREROUTING -p tcp -s 10.0.0.0/24 --dport 3888 -j DNAT --to-destination serverIp:3888 
iptables -t nat -I PREROUTING -p udp -s 10.0.0.0/24 --dport 3888 -j DNAT --to-destination serverIp:3888 

sudo service iptables save 
-1

अभी अभी मैंने एक ही प्रश्न हल किया है और blog पोस्ट किया है।

संक्षेप में, अगर xx के zoo.cfg चाहते:

server.1=xx:2888:3888 
server.2=yy:2888:3888 
server.3=zz:2888:3888 

तो xx के MyID = 1 होगा

0

अगर वहाँ भी कई खुले कनेक्शन हैं तो ऐसा हो सकता है।

maxClientCnxns सेटिंग को बढ़ाने का प्रयास करें।

documentation से

:

maxClientCnxns (कोई जावा प्रणाली संपत्ति)

(सॉकेट स्तर पर) समवर्ती कनेक्शन की संख्या को सीमित करता है कि एक ही ग्राहक, आईपी पते से पहचान, कर सकता है चिड़ियाघर के एक सदस्य का एक सदस्य। इसका उपयोग फाइल डिस्क्रिप्टर थकावट सहित डीओएस हमलों के कुछ वर्गों को रोकने के लिए किया जाता है। इसे 0 पर सेट करना या इसे छोड़कर समवर्ती कनेक्शन पर सीमा को पूरी तरह से हटा दें।

आप कॉन्फ़िगरेशन फ़ाइल में सेटिंग्स संपादित कर सकते हैं। सबसे अधिक संभावना यह /etc/zookeeper/conf/zoo.cfg पर पाया जा सकता है।

आधुनिक ज़ूकीपर संस्करणों में डिफ़ॉल्ट मान 60 है। आप कॉन्फ़िगरेशन फ़ाइल के अंत में maxClientCnxns=4096 लाइन जोड़ कर इसे बढ़ा सकते हैं।

0

यह एक आम मुद्दा है यदि ज़ूकीपर सर्वर नहीं चल रहा है या नहीं चल रहा है (यानी इसे शुरू करने के बाद यह दुर्घटनाग्रस्त हो गया)।

तो सबसे पहले, जांचें कि आपके पास ज़ूकीपर सर्वर चल रहा है। एक आसान तरीका जाँच करने के लिए प्रक्रिया चल grep है:

# ps -ef | grep zookeeper 

(कई बार यह एक जोड़े को चलाते हैं एक ही प्रक्रिया आईडी अभी भी वहाँ है देखने के लिए यह संभव है कि यह एक नई प्रक्रिया ID को पुन: प्रारंभ रहते हैं।।

# ps -ef | grep zookeeper 
root  492  0 0 00:01 pts/1 00:00:00 java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /root/zookeeper-3.5.0-alpha/bin/../build/classes:/root/zookeeper-3.5.0-alpha/bin/../build/lib/*.jar:/root/zookeeper-3.5.0-alpha/bin/../lib/slf4j-log4j12-1.7.5.jar:/root/zookeeper-3.5.0-alpha/bin/../lib/slf4j-api-1.7.5.jar:/root/zookeeper-3.5.0-alpha/bin/../lib/servlet-api-2.5-20081211.jar:/root/zookeeper-3.5.0-alpha/bin/../lib/netty-3.7.0.Final.jar:/root/zookeeper-3.5.0-alpha/bin/../lib/log4j-1.2.16.jar:/root/zookeeper-3.5.0-alpha/bin/../lib/jline-2.11.jar:/root/zookeeper-3.5.0-alpha/bin/../lib/jetty-util-6.1.26.jar:/root/zookeeper-3.5.0-alpha/bin/../lib/jetty-6.1.26.jar:/root/zookeeper-3.5.0-alpha/bin/../lib/javacc.jar:/root/zookeeper-3.5.0-alpha/bin/../lib/jackson-mapper-asl-1.9.11.jar:/root/zookeeper-3.5.0-alpha/bin/../lib/jackson-core-asl-1.9.11.jar:/root/zookeeper-3.5.0-alpha/bin/../lib/commons-cli-1.2.jar:/root/zookeeper-3.5.0-alpha/bin/../zookeeper-3.5.0-alpha.jar:/root/zookeeper-3.5.0-alpha/bin/../src/java/lib/*.jar:/root/zookeeper-3.5.0-alpha/bin/../conf: -Xmx1000m -Xmx1000m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /root/zookeeper-3.5.0-alpha/bin/../conf/zoo.cfg 

इसकी वहाँ नहीं है, तो होती है, तो चिड़ियाघर संचालक में होने की संभावना कुछ: वैकल्पिक रूप से आप 'systemctl स्थिति चिड़ियाघर संचालक' अगर आपके लिनक्स distro समर्थन systemd)

आप प्रक्रिया एक जावा प्रक्रिया के रूप में चल रहा है देखना चाहिए उपयोग कर सकते हैं समस्या को इंगित करने वाली लॉग फ़ाइल।

ज़ूकीपर लॉग फ़ाइल को खोजने के लिए, आपको सबसे पहले यह पता लगाना चाहिए कि यह लॉगिंग के लिए कॉन्फ़िगर किया गया है। मेरे मामले में मैं चिड़ियाघर संचालक मेरी रूट निर्देशिका के तहत स्थापित किया है (यदि आप इसे वहाँ स्थापित सुझाव नहीं):

[[email protected]_zookeeper conf]# pwd 
/root/zookeeper-3.5.0-alpha/conf 

और तुम लॉग इस फाइल में स्थापित करने पा सकते हैं:

[[email protected]_zookeeper conf]# grep "zookeeper.log" log4j.properties 
zookeeper.log.dir=/var/log 
zookeeper.log.file=zookeeper.log 
zookeeper.log.threshold=INFO 
zookeeper.log.maxfilesize=256MB 
zookeeper.log.maxbackupindex=20 

तो Zookeeper के लिए कॉन्फ़िगर है लॉग इन/var/log।

फिर आमतौर पर एक zookeeper.log और/या zookeeper.out फ़ाइल होती है जो आपकी स्टार्टअप त्रुटि को इंगित करनी चाहिए।

0

एक 2 नोड क्लस्टर पर सेटअप के दौरान एक ही त्रुटि थी। मैंने पाया कि मैंने myid फ़ाइल की बनाम server.id = HOST_IP: पोर्ट एंट्री की सामग्री को मिश्रित किया था।

अनिवार्य रूप से, अगर आप जिसके लिए आप

SERVER1 (myid) 
1 

SERVER2 (myid) 
2 

नीचे के रूप में चिड़ियाघर संचालक के लिए DATADIR में "MyID" फ़ाइलें बनाया है दो सर्वर (SERVER1 और server2) अपने zoo.cfg फ़ाइल में प्रवेश सुनिश्चित है प्रत्येक के लिए मेल खाती है के इन यानी server.1 SERVER1 होस्ट नाम और server.2 का उपयोग करना चाहिए के रूप में

SERVER1 (zoo.cfg) 
... (other config omitted) 
server.1=SERVER1:2888:3888 
server.2=SERVER2:2888:3888 

SERVER2 (zoo.cfg) 
... (other config omitted) 
server.1=SERVER1:2888:3888 
server.2=SERVER2:2888:3888 

बस सुनिश्चित करने के लिए नीचे दिए गए server2 होस्ट नाम बंदरगाह के बाद का उपयोग करना चाहिए, मैं भी version- * DATADIR में फ़ोल्डर तो Zookeeper को पुन: प्रारंभ नष्ट कर दिया इसे काम करने के लिए।

संबंधित मुद्दे