Hadoop是大数据开发使用核心的一个框架,是一个允许使用简单编程模型跨计算机集群分布式处理大型数据集的系统。核心模块主要为:HDFS,YARN,MapReduce,当然还有与之息息相关的其他系统,比如 Zookeeper,Flume等等。
如今我正在学习Hadoop的各类模块,已经学习了HDFS,Hbase,Hive,YARN,MapReduce以及Flume,容我一一道来。
HDFS:又称Hadoop分布式分件系统,可以对海量数据进行储存与管理。但请注意,hdfs遵循一致性模型,一次写入,多次读取,只能在末尾追加内容。
HDFS工作原理:客户端发出读取请求,namenode接受请求,并获取需要被操作的文件的文件名,文件大小等信息,namenode会将文件信息记录到本地,并验证客户端的读取权限,最后才将文件数据块的储存位置信息返回给客户端,从而使客户端找到文件,并写入数据,再最后,被写入数据的文件,需要备份到另外两个数据节点。
HDFS各类组件:
Client,namenode,datanode,secondarynamenode
数据块(block)
1, 数据块:hdfs中一个文件被物理切割为多个大小为128MB的数据块,并由三个备份,存放再不同的数据节点。
2, Datanode:相当于本地磁盘,数据真正储存的位置
3, Namenode:记录文件相关信息的数据,也就是元数据。
4, Secondarynamenode:协助namenode管理元数据,主要是fsimage与edits文件。
5, Fsimage文件:储存元数据(文件系统中所有目录,文件以及数据块的索引)。
6, Edits文件:日志文件,记录着所有的操作记录!
7, Fsimage与edits文件协调:
在namenode中的edits与fsimage文件,会在secondarynamenode中进行合并
为fsimage,而被修改后的edits替换旧edits。这样保证了edits的数量不增。
Hdfs基本命令:
一,