DataNode CLOSE_WAIT

在這裏插入圖片描述
最近發一下一個問題就是用netstat -anpt直徑去查看服務器,出現大量的CLOSE_WAIT。
剛開始挺懵逼的,一桶亂排查,最終還是沒有定位到問題,後來冷靜下來最終把問題解決,現在我來說一下我的思路

tcp的原理不說了,現在出現這種狀況其實就是客戶端沒有關閉連接,造成大量的CLOSE_WAIT
因爲我的程序是hdfs共享到ftp,首先想到的是ftp的連接沒有正常釋放,可仔細看完代碼,發現ftp不可能會有那麼多的連接,並且使用完之後都已經正常的歸還了。再看ftp服務器的端口也不是1004,因此排除ftp的問題。

其次查找1004端口發現,1004端口是DataNode的對外服務端口,DataNode又是存放數據文件的主機,hdfs文件讀取的原理
在這裏插入圖片描述 因此讀取hdfs文件的時候,客戶端是要和DataNode進行交互的。 好了,到現在問題已經很明朗了,去看程序代碼,發現獲取hdfs文件的輸入流在使用完之後沒有被關閉。 問題迎刃而解。