Hadoop 深入浅出学习记录1

目前活跃的项目有:

  • Common
  • Avro
  • MapReduce
  • HDFS
  • Pig
  • Hive
  • Hbase
  • ZooKeeper
  • Sqoop
  • Oozie

HDFS设计目标

  • very large files
    单个文件的大小可以很大,可以达到几百G,文件总的大小可以到T和P级别。

  • streaming 数据获取
    一次写,多次读,可以向文件结尾添加新的内容,不允许在中间修改内容

  • commodity hardware
    不需要非常昂贵的硬件,hadoop也可以运行在廉价的系统上(普通的硬件设备)。

不适合的场景

  • 低延迟的数据获取,因为Hadoop设计目标是支持大文件,如果需要读取一个文件当中很小的一部分,并且得到很快的响应,则并不适合。
  • lots of small files
  • 多次写入,对文件内容任意的修改

HDFS架构

在Hadoop中一个文件被分为大小固定的多个文件快,分别存储在集群中的节点中。块大小的默认值为64M。

  • 一台主机支持的容量有限,多台主机使得可以存储的容量曾江。
  • 文件分块存储,读取速度可以提高。
  • 硬件出错的情况是很正常的,所以同一个文件块会在不同的节点上进行冗余的存储。
  • 我们将文件分块存储到不同节点后,也需要知道文件的分块信息
    一个文件多少个块,一个块有多少个副本,每个人副本存储的位置。
    这些信息是保存在namenode中(namenode 中保存整个文件系统的目录信息,文件信息以及文件相应的分块信息)。

所以就涉及到namenode的备份问题,对namenode的备份最开始的备份措施是冷备份,就是关键信息存储到磁盘中,或者同步到冗余节点中,需要手动去恢复,在最新的版本Hadoop2.x中,facebook做了一个布丁,会有两个namenode,一个为active,一个为standby的,active的namenode失败后,standby会自动切换为activenode。(HDFS的HA策略)

你可能感兴趣的:(hadoop)