簡體   English   中英

提交時出現java.io.FileNotFoundException

[英]java.io.FileNotFoundException while submitting

我導入的項目在代碼中有兩個文件oov和config.properties文件,這兩個文件都是真實路徑,但是當我開始提交拓撲時,出現了此異常:

提交拓撲時此終端

java.io.FileNotFoundException: config.properties (No such file or 
directory)

這在日志文件中

2015-12-15 04:21:50 STDIO [INFO] java.io.FileNotFoundException: oov.txt   
(No such file or directory)

編碼

FileInputStream finputstream = new FileInputStream(
                "/home/user/workspace/imported-project/config.properties");

這是其編碼器為oov寫的

conf.put("PATH_TO_OOV_FILE", prop.getProperty("PATH_TO_OOV_FILE"));

我將其更改為

conf.put("/home/user/workspace/imported-project/oov.txt", prop.getProperty("/home/user/workspace/imported-project/oov.txt"));

但這沒用。

但是,當我提交config.propertied的拓撲內容時,我發現了! 它如何讀取它並同時引發異常?

這個項目有一個名為config.properties的文件,包含這樣的文件

PATH_TO_QUERY_FILE=tweets.txt
PATH_TO_OOV_FILE=oov.txt

PATH_TO_OUTPUT_FILE=results.txt 

,,,,我應該用我擁有的真實路徑替換此路徑還是讓它們

您嘗試加載客戶端本地屬性文件。 因此,為FileInputStream指定絕對路徑應該可行!

對於oov.txt的路徑,您需要在集群中工作計算機上指定路徑(而不是客戶端本地路徑),即在config.properties指定PATH_TO_OOV_FILE=/use/woker/node/path/oov.txt config.properties文件。 然后, conf.put("PATH_TO_OOV_FILE", prop.getProperty("PATH_TO_OOV_FILE")); 應該可以正常工作。

當然,您需要確保/use/woker/node/path/oov.txt在執行拓撲的群集中的工作節點上存在。

或者,您也可以將其指定為conf.put("PATH_TO_OOV_FILE", "/user/worker/node/path/oov.txt"); 第一個參數是關鍵 ,不應更改-只能更改值。

此外,使用

conf.put("/home/user/workspace/imported-project/oov.txt", prop.getProperty("/home/user/workspace/imported-project/oov.txt"));

也沒有道理。 您需要為conf.put(<key>,<value>)指定一個密鑰,並為prop.getProperty(<key>)指定一個密鑰。 您在config.properties使用的密鑰是PATH_TO_OOV_FILE ,因此您需要將其用於prop.getProperty("PATH_TO_OOV_FILE")

目錄/home/user/workspace/imported-project/在您的部署中將不存在。 應用程序使用的文件應全部以分發的形式包含在應用程序中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM