java - URL 类中 setURLStreamHandlerFactory 的用途

标签 java hadoop hdfs

任何人都可以向我解释 URL 类中 setURLStreamHandlerFactory 的用途和工作方式吗?

我有一个简单的代码片段可以使用 Java 中的 URL 类连接到我的 HDFS,我已经在 hadoop 权威指南中完成了它。

这是我写的代码:

public class HadoopFileSystemConnect {

    static {
        URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
    }

    public static void main(String[] args) throws IOException {
        URL url = new URL("hdfs://localhost:9000/employee_data.txt");
        InputStream in = url.openStream();
        IOUtils.copyBytes(in, System.out,4096,false);
    }
}

任何人都可以向我解释静态 block 中语句的目的和工作方式吗?

最佳答案

Java 有一个默认类 (sun.net.www.protocol.http.Handler),用于在您调用 URL.openStream() 时处理流。静态 block 中的方法将默认的 java 处理程序替换为 Hadoop 一个,仅此而已。

关于java - URL 类中 setURLStreamHandlerFactory 的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18844098/

相关文章:

java - 给定多只股票最大化股票利润

java - Autowiring 类返回空值

performance - Hadoop中的UDF优化

java - Hadoop作业控制

hadoop - Hadoop存档命令

sorting - Map Reduce Programming中reducer中洗牌和排序阶段的目的是什么?

hadoop - 模拟节点故障时,Hadoop集群中是否出现NoRouteToHostException?

Java Regular Expression 适用于在线测试,但在实践中不起作用

java - 设置 StaticClass 以将我当前的 Button 设置为 Visible with GUI Handler

hadoop - HDFS 是否提供异步写入?