HFDS源码

HDFS下载数据之源码分析-FileSystem.get(conf)_block02

柔情痞子 提交于 2020-03-05 20:45:24
接block01 来自分割线4 , 调用NameNodeProxies.createNNProxyWithClientProtocol(InetSocketAddress address, Configuration conf, UserGroupInformation ugi, boolean withRetries)方法 private static ClientProtocol createNNProxyWithClientProtocol(InetSocketAddress address, Configuration conf, UserGroupInformation ugi, boolean withRetries) throws IOException { // 设置一个RPC protocol, 使用非默认的RpcEngine RPC.setProtocolEngine(conf, ClientNamenodeProtocolPB.class, ProtobufRpcEngine.class); // 获取配置文件中默认的RetryPolicy final RetryPolicy defaultPolicy = RetryUtils.getDefaultRetryPolicy( conf, DFSConfigKeys.DFS_CLIENT_RETRY_POLICY

HDFS下载数据之源码分析-FileSystem.get(conf)_block01

只谈情不闲聊 提交于 2020-03-05 20:39:32
首先来看一下, FileSystem(org.apache.hadoop.fs.FileSystem), 这是一个抽象类, 是所有文件系统的父类. 而我们要从HDFS(Hadoop Distributed FileSystem)下载数据, 应该获取一个 DistributedFileSystem 的实例,那么如何获取一个 DistributedFileSystem 的实例呢? FileSystem fs = FileSystem.get(new Configuration()); 在FileSystem中有3个重载的get()方法 // 1.通过配置文件获取一个FileSystem实例 public static FileSystem get(Configuration conf) // 2.通过指定的FileSystem的URI, 配置文件获取一个FileSystem实例 public static FileSystem get(URI uri, Configuration conf) // 3.通过指定的FileSystem的URI, 配置文件, FileSystem用户名获取一个FileSystem实例 public static FileSystem get(final URI uri, final Configuration conf, final String user