一.HDFS分布式文件系统

  1. 元数据:描述数据的数据
  2. 分布式存储:横向扩展,无感添加,数据查询的便捷:借助元数据记录(留一台主机专门记录存储位置namenode);大文件传输慢:分块存储;数据丢失:副本机制(同一文件多存几份);查询视觉统一:namespace;(牺牲了容量提高安全)
  3. HDFS简介:使用多台计算机存储文件,并且提供统一的访问接口
  4. HDFS设计目标:
    能够进行故障监测快速恢复,保障吞吐量,适合存储大文件 ,写入后不需要修改
  5. 使用场景:存储大文件;基于流的数据访问;只支持对文件追加修改,不支持随机修改;高容错;为数据存储提供扩展能力
  6. 不适合的应用场景:低延时,吃内存,大量小文件,多方读写(元数据150字节)
  7. HDFS重要特性
    7.1 主从架构:一般一个HDFS是一个NA,enode和一定数目的Datanode组成,Namenode是主节点,Datanode是从节点
    7.2 HDFS的四个基本组件:HDFS Client,NameNode,Datanode,Secondary NameNode
    7.2.1cllient就是客户端。(shell,java)完成文件上传切分为block(上传命令 hadoop fs -put 文件名 /),与namenode交互,与datanode交互,
    7.2.2 namenode:就是master一个主管,管理者(管理HDFS的名称空间,管理数据块block映射信息,配置副本策略,处理客户端的读写请求)
    7.2.3datanode就是slave。namenode下达命令,datanode执行实际操作,存储实际数据块,执行数据块的读写,定时向namenode汇报block信息
    7.2.4Secondary NameNode:辅助namenode分担其工作量,定期合并fsimage和fsedits并推送给namenode,在紧急情况下辅助恢复namenode
    7.3分块机制:HDFS的文件在物理上是分块存储的,块的大小可以通过参数配置,参数在hdfs-default.xml中dfs.blocksize默认128m。block属于逻辑单位,最小无所谓。

    7.4副本机制:为了容错,所以block都会有副本,每个文件的block大小和副本系数都是可配置的。在dfs.replication的值是3

    linux创建随意大小文件:dd if=/dev/zero of=test.log bs=1M count=300
    7.5namespace:命名空间:hadfs://node1:8020/dir/a.sh,可以通过代码访问
    7.6元数据管理:hadoop-2.7.5/hadoopDatas/ namenodeDatas/current7.7HDFS副本放置策略
    第一副本:优先放置到离写入客户端最近的datanode如果上传节点就是则直接上传到该节点,如果是集群外则随机调一台磁盘不太满,cpu不太忙的节点
    第二副本:放置在与第一副本不同的机架节点上
    第三副本:与第二副本相同机架的不同节点