谈到大数据,离不开google的三剑客:big table、mapreduce、gfs。作为该体系的开源版本,主要是hbase、mapreduce和hdfs。今天主要谈一谈大数据处理最基础的hdfs,hadoop data file system。hdfs主要用于对在低廉的pc服务器上实现高可靠的数据存储,满足大数据处理的底层数据存储需求。
一、HDFS相比传统的本地磁盘的数据存储,主要有几大区别:
1、数据高可靠:默认三副本存储,可灵活配置。当其中不同的服务器任意两块硬盘故障,均不会影响业务的使用。
2、数据访问快:同时向多块数据盘进行数据的读写,加快速度。
3、管理轻松:支持服务器的灵活增加、删除,并自动根据存储数据量进行存储量的均衡化部署。
二、下面简要介绍hdfs的原理
如图,hdfs分为client客户端、namenode数据管理端(master节点)、datanode数据存储端(slave节点)。client进行数据存储时,需调用hdfs的sdk的开发包。进行数据读取时,向namenode请求数据在datanode的访问路径,client收到访问路径后直接向datanode发起数据访问请求(hdfs中,默认每个数据块为64M,分别放在不同的datanode)。
三、接下来,我们用一些图帮助大家理解。
不同的client、namenode、datanode的形象表达
当某用户有数据读取请求,client程序收到这个指令。
先联系namenode,获取文件的存储位置
client程序从datanode中不断顺序取出数据