久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何解決Hadoop文件系統多次關閉的問題

178次閱讀
沒有評論

共計 1620 個字符,預計需要花費 5 分鐘才能閱讀完成。

丸趣 TV 小編給大家分享一下如何解決 Hadoop 文件系統多次關閉的問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

今天我犯了一個 BUG。在我讀寫文件的時候,Hadoop 拋異常說文件系統已經關閉。

2013-05-20 17:39:00,153 ERROR com.sunchangming.searchlog.CopyAppLogs: err on 2013051918_api_access_65.gz 
java.io.IOException: Filesystem closed 
at org.apache.hadoop.hdfs.DFSClient.checkOpen(DFSClient.java:319) 
at org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:1026) 
at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:524) 
at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:768) 
at com.sunchangming.searchlog.CopyAppLogs.copyFile(CopyAppLogs.java:51) 
at com.sunchangming.searchlog.CopyAppLogs.access$000(CopyAppLogs.java:18) 
at com.sunchangming.searchlog.CopyAppLogs$1.run(CopyAppLogs.java:194) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
at java.lang.Thread.run(Thread.java:722)

然后我就查,為什么呢。我剛剛用 final FileSystem dfs = FileSystem.get(getConf()); 得到它啊。

后來發現,我是一個多線程的程序。FileSystem.get(getConf()) 返回的可能是一個 cache 中的結果,它并不是每次都創建一個新的實例。這就意味著,如果每個線程都自己去 get 一個文件系統,然后使用,然后關閉,就會有問題。因為你們關閉的可能是同一個對象。而別人還在用它!

所以 *** 是在 main 函數中就創建好 filesystem 對象然后在不同函數之間來回傳遞吧。在 main 函數用用 try hellip;finally 關閉它。

多線程程序中,如果你確保在你的 get 和 close 之間不會有別人調用 get,也沒問題。

以上是“如何解決 Hadoop 文件系統多次關閉的問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計1620字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 金坛市| 长阳| 大关县| 辽中县| 简阳市| 潢川县| 永德县| 泾源县| 望谟县| 崇阳县| 桑植县| 普陀区| 左云县| 灵丘县| 安福县| 准格尔旗| 介休市| 故城县| 上林县| SHOW| 梁河县| 偏关县| 桂林市| 东安县| 钟山县| 扶风县| 南宁市| 成都市| 宜川县| 高尔夫| 湟源县| 乌鲁木齐市| 洪湖市| 抚顺县| 澄城县| 崇左市| 昆山市| 隆德县| 江孜县| 南阳市| 卢氏县|