《大数据基础——基于Hadoop与Spark》课后习题——第四章部分答案

仅用于我个人的学习。书籍为人民邮电出版社的《大数据技术基础——基于Hadoop与Spark》。课后习题选择是我个人认为有用的。记录下来是为了督促我学习:)
共好

1.比较以下4种不同的HDFS API的区别

libhdfs;HFTP;WebHDFS;JavaAPI

API 功能
libhdfs Hadoop为C语言提供HDFS文件操作和文件系统管理的访问接口
HFTP 提供从远程HDFS集群读数据的能力
WebHDFS 使集群外的客户机不用配置环境就可以对集群内进行访问
JavaAPI 支持打开文件、读写文件、删除文件等操作

2.简述WebHDFS和HttpFS之间的区别

3.简述基于HDFS客户端读取HDFS文件的过程

在这里插入图片描述

  • HDFS客户端(Client)通过调用FileSystem对象的open方法打开文件,这个对象是分布式文件系统的一个实例==(步骤一)==
  • DistributedFileSystem负责向远程的元数据节点发起RPC调用,得到文件的数据块信息==(步骤二)==

RPC(Remote Procedure Call)远程过程调用,两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。

  • NameNode视情况返回文件的部分或全部数据块列表,对于每个数据块,NameNode都会返回该数据块及其副本的数据节点DataNode的地址
  • DistributedFileSystem返回一个FSDataInputStream对象给客户端,用来读取数据。FSDataInputStream对象转而封装DFSInputStream对象(该对象负责NameNode和DataNode的通信)
  • 客户端调用FSDataInputStream对象的read方法开始读取数据==(步骤三)==
  • DFSInputStream对象连接保存此文件第一个数据块的最近的数据节点
  • 通过对数据流反复调用read方法,把数据从数据节点传输到客户端==(步骤四)==。
  • 当此数据块读取完毕时,DFSInputStream关闭连接,然后连接此文件下一个数据块的最近的数据节点==(步骤五)==
  • 当客户端读取完时,调用FSDataInputStrea
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值