在Java应用程序中设置HDFS连接超时

时间:2016-06-17 08:25:16

标签: hadoop timeout hdfs timeoutexception socket-timeout-exception

我使用Hadoop的FileSystem类来删除一些HDFS文件。现在的问题是,客户端在持续时间过长后获得连接超时,我需要缩短等待超时的时间,以便用户获得更快的响应,如果他/她在网络之外! 这是我的代码片段:

try {
    System.setProperty("HADOOP_USER_NAME", "test");
    Configuration conf = new Configuration();
    File csvFile = new File(pathCsvFile);
    FileSystem hdfs = FileSystem.get(new URI(csvFile.getPath(), conf);
    if(hdfs.exists(new Path(filterValuesPath))) {
        hdfs.delete(new Path(filterValuesPath), true);
        setInfo("File deleted!");
    } else {
        setInfo("No file to delete!");
    }
} catch (Exception ex) {         // the timeout is too high!!!
    ex.printStackTrace();
    setInfo("No connection or no files to delete!");
}

我在哪里以及如何设置应用程序的超时?我不想在任何Hadoop配置文件中更改它,只在本地为我的Java应用程序。谢谢!

0 个答案:

没有答案