您的位置:首页 > 运维架构

hadoop 文件系统简介

2014-10-26 21:40 218 查看
       本来是个轻松的周末,却被一天半的讲座填的满满的,除了抱怨之外其实自己所收获的东西着实也有不少。之前一段时间学东西总是有些着急了,是时候静下来慢下来思考和整理一下自己的思维了。

      关于hadoop,之前了解着实有些少,hadoop其实就是一种分布式系统的架构。通过hadoop这个架构可以实现一些任务的分布式计算。hadoop有自己的文件系统称为HDFS,该文件系统具有高度的容错性,适合部署在廉价的极机器上。HDFS能提供较高数据吞吐量,非常适合大规模数据集的应用。

      由于一个HDFS系统可能由成百上千个节点构成,在每个节点中储存着文件系统的部分数据,一旦其中某个节点发生错误就可能造成严重的后果,因此,错误检查,快速和自动恢复是整个系统的核心。同时由于HDFS的目标是大规模数据的访问,因此对于与用户交互的要求可能没有那么高,为了实现大规模数据的传输,对硬件约束方面可能作出一些修改,比如增加block的大小(将block由4k变为16M,减少磁盘寻址的延迟)。另外在分布式系统中一般要求计算跟靠近数据,这样可能会减少甚至避免网络阻塞和延迟,提升数据的吞吐量。

      HDFS采用NameNode和DataNode组织结构,一个节点上运行NameNode,其他的节点上运行DataNode。在nameNode上储存MatarData其中包括文件属性,真实数据储存的DataNode映射等,同时NameNode 也负责文件的打开,读写等操作。另外namenode节点会收到来自其他节点的心跳,当收到心跳的时候表示该节点正常工作。由于HDFS是由java编写的,所以nameNode和DataNode可以运行在普通的linux操作系统中。

     为了保证数据的可靠性,需要在系统中进行一些数据的备份,备份的数量可以由用户自己进行设置。在备份的时候需要选择datanode,对于在同一个局域网中的datanode有更大的可能性同时被损坏,因此在选择datanode的时候应该尽量选择不同的集群的datanode。一般而言,有3个备份的时候,有2个保存在本地集群,其他一个副本放在其他集群中。当进行数据访问的时候应该尽量选择距离较近的节点。

      
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息