初学hadoop文件系统总结

这是自己在学习hadoop权威指南时做的一个总结可能很不全面。

Hadoop有一个抽象的文件系统概念,HDFS只是其中的一个实现,其他文件系统包括:Local HDFS HFTP HAR hfs FT S3 每一种文件系统都是有不同的接口,不仅仅只有java ,c++也可以。这是让我感到比较意外的,因为更多的接口保证了有更多的人可以以自己熟悉的方式来实现自己想要的一个结果这是hadoop开源的火爆的一个体现。 其余多是关于HDFS这个分布式文件系统的理解和学习。分布式系统是架构在网络上的的,因涉及到复杂的网络编程所以,它的结构也是比普通的磁盘系统更加的复杂。对于分布式系统极大的挑战就是容错性。(即节点出故障但不丢失任何的文件与数据)。

HDFS最大的特点是是数据存储以块的模式,存储在节点上,运行计算时直接读取数据减少数据传输来达到提高速率的过程,但是节点不在一个机子上,网络带宽成为了一个主要的限制因素。还有就是块的大小也有自己的设置,不宜过大。原因主要是块大了,任务数就会变少,作业运行速度也就会降低。每次读取时都是下达命令给Datdnode,然后从namenode中获取地址,再根据最近的原则读取最近数据块的内容。 这里namenode和datanode的作用就显现出来了,namenode是进行数据目录的管理而datanode则是对于数据的存储读写。两个节点有设置优势所以可以提高系统的容错性和稳定性,使系统可以及时发现错误块,避免数据在数据写入过程中出现数据丢失。其次是副本存储的布局,即第一个存储随机,第二个副本在另一个机架上随机存储,第三个副本则是在第二个副本的机架上不同于该点随机存储。避免了数据存储在同一个机架上,降低损失。

HDFS的特定接口一个是HTTP和FTP。这两个接口中HTTP可以做为网络接口查看HDFS文件信息但不能对文件进行修改,而FTP接口可以直接上传数据使文件可以在远程登录时实时更新。方便数据的修改。接着就是一些对于HDFS进行的文件操作。这些文件操作包括:写入,删除,修改,目录的一些管理,文件的移动,上传,下载,复制,通配符的使用等等。具体操作时可以用hadoop fs –help 查询各个命令的使用。

还有就是对于数据的写入并不是立刻就可以观察到的因为数据量小,文件长度改变不易被刷新出来而当数据写入超过一个数据块时。是可以立即显示的。

再就是对于数据流这方面的理解的不是那么好,因为这个东西自己不知道如何去实践,有一些过程看过即忘,自己也不知道怎么做,可能是时间太快自己还没有认识到。

再有指南上的一些大段大段的代码主要还是hadoop的源码,自己是突然之间见明白的,JAVA没学过,差点把自己郁闷死。以后学习的东西有很多。

你可能感兴趣的:(初学hadoop文件系统总结)