首先我们先认识到一个问题,零基础想要涉足大数据领域,肯定是有一定难度的,但有句话说的好“当你感觉特别累的时候,也就是说明你在走上坡路”。虽然困难,但只要你想学习,万事皆有可能。
下面总结的一些技术知识点,大家也可以先看看关于大数据技术知识,看看自己是否真的有兴趣一直学习下去!
以下是HDFS的读取过程,分析如下:
1.客户端或者用户通过调用 FileSystem 对象的 open()方法打开需要读取的文件,这对 HDFS 来说是常见一个分布式文件系统的一个读取实例。
2.FileSystem 通过远程协议调用 NameNode 确定文件的前几个 Block 的位置。对于每一个 Block,NameNode 返回一含有那个 Block 拷贝的“元数据”,即文件基本信息;接下来,DataNode 按照上文定义的距离值进行排序,如果 Client 本身就是一个 DataNode,那么优先从本地 DataNode 节点读取数据。HDFS 实例做完以上工作后,返回一个 FSDataInputStream给客户端,让其从 FSDataInputStream 中读取数据。FSDataInputStream 接着包装一个DFSInputStream,用来管理 DataNode 和 NameNode 的 I/O。
3.NameNode向客户端返回一个包含数据信息的地址,客户端根据地址创建一个FSDataInputStream 开始对数据进行读取。
4.FSDataInputStream 根据开始时存放的前几个 Blocks 的 DataNode 的地址,连接到最近的 DataNode 上对数据开始从头读取。客户端反复调用 read()方法,以流式方式从DataNode 读取数据。
5.当读到 Block 的结尾的时候,FSDataInputStream 会关闭到当前 DataNode 的链接,然后查找能够读取下一个 Block 的最好的 DataNode。这些操作对客户端是透明的,客户端感觉到的是连续的流,也就说读取的时候就开始查找下一个块所在的地址。
6.读取完成调用 close()方法,关闭 FSDataInputStream。
以上就是 HDFS 对数据进行读取的整个流程。郑州大数据开发好学吗?这个主要是看自己的选择了,专业的学习方式会帮助更快进入学习氛围中,再就是看自己的学习能力和感兴趣程度了。