Hadoop分布式文件系统HDFS介绍

HDFS全称是Hadoop Distributed File System。hdfs中的block的大小默认128MB(hadoop2.x,1.x是64MB),文件占用的大小不到128也占用128M。默认每个block有3个备份(dfs.replication可设),备份在一个rack(机架)上的不同节点,备份和原文件一般不在一个机架。如果一个节点宕掉,其中的block会生成新的到其他节点(宕机的启动后,会多一个备份,不会删除)。分的多个块的备份不一定在相同的节点上(尽量均衡)。

HDFS就像是一个分鱼(有的写成余)展的大硬盘,分是数据分块存储,鱼是数据冗余(备份),展是动态扩展(增加机器配置好即可)。

读取文件时就近原则(路由最近)。hadoop fs和hdfs dfs命令一样。

HDFS海量小文件不适合(小文件少点可以),一个Map任务处理一个小文件,导致Map任务过多。小文件过多导致metadata过多,占用内存。HDFS适合高吞吐量,不适合低时间延迟的访问。 流式读取的方式,不适合多用户写入,以及任意位置写入。Reduce的输出可以多路输出(一个reduce输出多个文件,多个reduce输出到一个文件),一般一个reduce输出一个文件。

HDFS组成:

  1. NameNode:hadoop服务,一般放在master节点,存储文件系统元数据,包括文件目录结构,分块情况,块位置权限等。也就是存储了hdfs文件中block所在的节点和路径,这里只存文件名。
  2. DataNode:hadoop服务,一般放在slave节点,存储具体的block文件数据。
    一个节点中,datanode和namenode服务都安装了,启动时需要选择。
  3. SecondaryNode:备用namenode。更合适的名字叫CheckpointNode(检查节点)。帮助检查用的,而不是备用。
  4. JournalNode:多个namenode之间数据通信可以通过Linux系统的Network FileSystem(操作系统层级)通信和共享数据,也可以通过Hadoop自己的JournalNode方式。

物理结构与逻辑结构:master管理多个slave。master上跑NameNode,slave跑DataNode。

你可能感兴趣的:(大数据,hadoop,hdfs,namenode,datanode,JournalNode)