Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提交时java.io.FileNotFoundException_Java_Apache Storm - Fatal编程技术网

提交时java.io.FileNotFoundException

提交时java.io.FileNotFoundException,java,apache-storm,Java,Apache Storm,我导入的项目在代码中有两个文件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

我导入的项目在代码中有两个文件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 

,,,,,我应该用我拥有的实际路径替换此路径还是让它们

目录/home/user/workspace/imported project/不会出现在您的部署中。应用程序使用的文件应全部包含在分发的应用程序中。

部署中将不存在目录
/home/user/workspace/imported project/
。应用程序使用的文件应全部包含在应用程序中作为分布式文件。

您尝试加载客户端本地属性文件。因此,为
FileInputStream
指定绝对路径应该是可行的

对于
oov.txt
的路径,您需要指定集群中工作计算机上的路径(不是客户端本地路径),即在
config.properties
文件中指定
path\u to\u oov\u FILE=/use/woker/node/path/oov.txt
。然后,
conf.put(“路径到路径文件”),prop.getProperty(“路径到路径文件”)应能正常工作

当然,您需要确保执行拓扑的集群中的工作节点上存在
/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(,)
指定一个键,并为
prop.getProperty()
指定一个键。在
config.properties
中使用的键是
PATH\u TO\u OOV\u FILE
,因此您需要将其用于
prop.getProperty(“PATH\u TO\u OOV\u FILE”)

尝试加载客户端本地属性文件。因此,为
FileInputStream
指定绝对路径应该是可行的

对于
oov.txt
的路径,您需要指定集群中工作计算机上的路径(不是客户端本地路径),即在
config.properties
文件中指定
path\u to\u oov\u FILE=/use/woker/node/path/oov.txt
。然后,
conf.put(“路径到路径文件”),prop.getProperty(“路径到路径文件”)应能正常工作

当然,您需要确保执行拓扑的集群中的工作节点上存在
/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(,)
指定一个键,并为
prop.getProperty()
指定一个键。您在
config.properties
中使用的键是
PATH\u TO\u OOV\u FILE
,因此您需要将其用于
prop.getProperty(“PATH\u TO\u OOV\u FILE”)

我不明白您的最后一个问题。。。你能重新措辞吗?如果您尝试读取一个文件,则执行代码的工作进程将尝试本地读取。我假设您正在集群中运行;因此,您需要确保该文件在集群中的所有节点上都可用(因为您不知道Storm将把代码调度到哪个节点)。是的,这是对的,我正在集群上运行,但如何检查我是否将从aal节点读取?我还有一个问题可能会有帮助,但我想确定。我将用其他信息编辑这篇文章,我的意思是最后一个问题,当我提交拓扑时,它在config.proprites中获得了数据,如阈值和如何接收mant tweets等,但同时它抛出了Exception,所以它如何在同一时间生成两个案例?你无法控制(以简单的方式)将在哪个节点上执行.operator。因此,您应该使用分布式文件系统(可能是HDFS)并从中读取。对于测试目的和小文件,将文件复制到所有节点也可以。不确定是否存在异常问题。你能分享你的代码吗?当然,我现在会用代码编辑这篇文章。我刚刚研究了一下——之前我这边有一些误解。见下面的答案。我不明白你的最后一个问题。。。你能重新措辞吗?如果您尝试读取一个文件,则执行代码的工作进程将尝试本地读取。我假设您正在集群中运行;因此,您需要确保该文件在集群中的所有节点上都可用(因为您不知道Storm将把代码调度到哪个节点)。是的,这是对的,我正在集群上运行,但如何检查我是否将从aal节点读取?我还有一个问题可能会有帮助,但我想确定。我将用其他信息编辑这篇文章,我的意思是最后一个问题,当我提交拓扑时,它在config.proprites中获得了数据,如阈值和如何接收mant tweets等,但同时它抛出了Exception,所以它如何在同一时间生成两个案例?你无法控制(以简单的方式)将在哪个节点上执行.operator。因此,您应该使用分布式文件系统(可能是HDFS)并从中读取。对于测试目的和小文件,将文件复制到所有节点也可以。不确定是否存在异常问题。你能分享你的代码吗?当然,我现在会用代码编辑这篇文章。我刚刚研究了一下——之前我这边有一些误解。看见