hdfs

hdfs

简介

hdfs是大名鼎鼎的hadoop的两大基础组件之一:分布式文件系统,为hadoop分布式系统提供存储服务,是google三大篇中gfs的开源实现;

特点

  1. 支持超大文件(单个文件大,且总存储空间为PB级别);
  2. 流式数据访问,基于一次写入、多次读取模型设计,;
  3. 廉价硬件即可;

不足

  1. 延迟较大;
  2. 小文件支持不好;
  3. 不支持多写;
  4. 不支持随机写;
  5. namenode无法扩展;

基本概念

  • 块(Block):hdfs 上的文件被分成大小(默认:64MB)相等的块,作为hdfs的基本存储单元。大块可减小namenode内存占用,减小寻址开销;
  • namenode:
  • datanode:

架构

基准测试

1
2
3
4
5
6
7
# hdfs write test
$HADOOP_HOME/bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.6-tests.jar TestDFSIO -write -nrFiles 100 -fileSize 100MB  -bufferSize 67108864


# hdfs read test
$HADOOP_HOME/bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.6-tests.jar TestDFSIO -clean #
$HADOOP_HOME/bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.6-tests.jar TestDFSIO -read -nrFiles 100 -fileSize 100MB  -bufferSize 67108864
updatedupdated2024-05-152024-05-15