电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOCX文档下载
分享到微信 分享到微博 分享到QQ空间

光环大数据 Hadoop之HDFS原理及文件上传下载源码分析_光环大数据培训

  • 资源ID:50740325       资源大小:58.30KB        全文页数:8页
  • 资源格式: DOCX        下载积分:0金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要0金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

光环大数据 Hadoop之HDFS原理及文件上传下载源码分析_光环大数据培训

光环大数据光环大数据-大数据培训知名品牌大数据培训知名品牌http:/hadoop.aura.cn 光环大数据光环大数据 http:/hadoop.aura.cn光环大数据光环大数据 HadoopHadoop 之之 HDFSHDFS 原理及文件上传下载源码分析原理及文件上传下载源码分析_ _光环大数据培训光环大数据培训光环大数据培训光环大数据培训认为,将继续介绍 hdfs 文件上传、下载源解析。文件上传文件上传先上文件上传的方法调用过程时序图:其主要执行过程:1.FileSystem 初始化,Client 拿到 NameNodeRpcServer 代理对象,建立与 NameNode的 RPC 通信(楼主上篇已经介绍过了)2.调用 FileSystem 的 create()方法,由于实现类为 DistributedFileSystem,所有是调用该类中的 create()方法3.DistributedFileSystem 持有 DFSClient 的引用,继续调用 DFSClient 中的 create()方法4.DFSOutputStream 提供的静态 newStreamForCreate()方法中调用NameNodeRpcServer 服务端的 create()方法并创建 DFSOutputStream 输出流对象返回5.通过 hadoop 提供的 IOUtil 工具类将输出流输出到本地下面我们来看下源码:首先初始化文件系统,建立与服务端的 RPC 通信1 HDFSDemo.java2 OutputStream os = fs.create(new Path(“/test.log“);调用 FileSystem 的 create()方法,由于 FileSystem 是一个抽象类,这里实际上是调用的该类的子类 create()方法1 /FileSystem.java2 public abstract FSDataOutputStream create(Path f,3 FsPermission permission,4 boolean overwrite,5 int bufferSize,6 short replication,7 long blockSize,8 Progressable progress) throws IOException;光环大数据光环大数据-大数据培训知名品牌大数据培训知名品牌http:/hadoop.aura.cn 光环大数据光环大数据 http:/hadoop.aura.cn前面我们已经说过 FileSystem.get()返回的是 DistributedFileSystem 对象,所以这里我们直接进入 DistributedFileSystem:1 /DistributedFileSystem.java 2 Override 3 public FSDataOutputStream create(final Path f, final FsPermission permission, 4 final EnumSet cflags, final int bufferSize, 5 final short replication, final long blockSize, final Progressable progress, 6 final ChecksumOpt checksumOpt) throws IOException 7 statistics.incrementWriteOps(1); 8 Path absF = fixRelativePart(f); 9 return new FileSystemLinkResolver() 10 Override11 public FSDataOutputStream doCall(final Path p)12 throws IOException, UnresolvedLinkException 13 final DFSOutputStream dfsos = dfs.create(getPathName(p), permission,14 cflags, replication, blockSize, progress, bufferSize,15 checksumOpt);16 /dfs为 DistributedFileSystem 所持有的 DFSClient 对象,这里调用 DFSClient 中的 create()方法 17 return dfs.createWrappedOutputStream(dfsos, statistics);18 19 Override20 public FSDataOutputStream next(final FileSystem fs, final Path p)21 throws IOException 22 return fs.create(p, permission, cflags, bufferSize,23 replication, blockSize, progress, checksumOpt);24 25 .resolve(this, absF);26 DFSClient 的 create()返回一个 DFSOutputStream 对象:1 /DFSClient.java 2 public DFSOutputStream create(String src, 3 FsPermission permission, 4 EnumSet flag, 5 boolean createParent, 6 short replication, 7 long blockSize, 8 Progressable progress, 9 int buffersize,10 ChecksumOpt checksumOpt,11 InetSocketAddress favoredNodes) throws IOException 12 checkOpen();13 if (permission = null) 14 permission = FsPermission.getFileDefault();15 16 FsPermission masked = permission.applyUMask(dfsClientConf.uMask);17 if(LOG.isDebugEnabled() 18 LOG.debug(src + “: masked=“ + masked);19 20 /调用 DFSOutputStream 的静态方法 newStreamForCreate,光环大数据光环大数据-大数据培训知名品牌大数据培训知名品牌http:/hadoop.aura.cn 光环大数据光环大数据 http:/hadoop.aura.cn返回输出流 21 final DFSOutputStream result = DFSOutputStream.newStreamForCreate(this,22 src, masked, flag, createParent, replication, blockSize, progress,23 buffersize, dfsClientConf.createChecksum(checksumOpt),24 getFavoredNodesStr(favoredNodes);25 beginFileLease(result.getFileId(), result);26 return result;27 我们继续看下 newStreamForCreate()中的业务逻辑:1 /DFSOutputStream.java 2 static DFSOutputStream newStreamForCreate(DFSClient dfsClient, String src, 3 FsPermission masked, EnumSet flag, boolean createParent, 4 short replication, long blockSize, Progressable progress, int buffersize, 5 DataChecksum checksum, String favoredNodes) throws IOException 6 TraceScope scope = 7 dfsClient.getPathTraceScope(“newStreamForCreate“, src); 8 try 9 HdfsFileStatus stat = null;10 boolean shouldRetry = true;11 int retryCount = CREATE_RETRY_COUNT;12 while (shouldRetry) 13 shouldRetry = false;14 try 15 /这里通过 dfsClient 的 NameNode 代理对象调用 NameNodeRpcServer 中实现的 create()方法 16 stat = dfsClient.namenode.create(src, masked, dfsClient.clientName,17 new EnumSetWritable(flag), createParent, replication,18 blockSize, SUPPORTED_CRYPTO_VERSIONS);19 break;20 catch (RemoteException re) 21 IOException e = re.unwrapRemoteException(22 AccessControlException.class,23 DSQuotaExceededException.class,24 FileAlreadyExistsException.class,25 FileNotFoundException.class,26 ParentNotDirectoryException.class,27 NSQuotaExceededException.class,28 RetryStartFileException.class,29 SafeModeException.class,30 UnresolvedPathException.class,31 SnapshotAccessControlException.class,32 UnknownCryptoProtocolVersionExcept

注意事项

本文(光环大数据 Hadoop之HDFS原理及文件上传下载源码分析_光环大数据培训)为本站会员(gua****an)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。

分享当前资源【光环大数据 Hadoop之HDFS原理及文件上传下载源码分析_光环大数据培训】到朋友圈,您即可以免费下载此资源!
微信扫一扫分享到朋友圈
二维码
操作提示:任选上面一个二维码,打开微信,点击“发现”使用“扫一扫”,即可将选择的网页分享到朋友圈
您可能感兴趣的------------------------------------------------------------------------------------------------------



关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.