客戶端鏈接ZK服務器,而後即行ls /curator_sample,報錯以下: java
從網上搜索到一篇文章:http://stackoverflow.com/questions/10249579/zookeeper-cli-failing-ioexception-packet-len12343123123-is-out-of-range 服務器
其中有個回答: 大數據
我去看了下報錯的位置在ClientCnxnSocket.java的112行。代碼以下: spa
發現packetLen的大小是4096*1024, io
原來是返回的數據大小超過了了4096*1024。 集羣
ls 操做是要查看全部的子節點名稱列表。因此要返回的數據大小大概是:節點名稱和節點數的乘積大概超過了4096*1024。因此節點名稱要儘可能小,這樣纔可能建立較多的節點數。固然不多狀況下會在一個節點的子節點下會有大理的子節點,通常都是層層嵌套的。 cli
解決方案:能夠經過參數jute.maxbuffer來設置一個更大的參數便可。用於配置單個數據節點上能夠存儲的最大數據量大小。須要注意的是在變動該參數的時候,須要在zookeeper集羣中的全部機器以及全部的客戶端上均設置才能生效。
zookeeper