Hadoop Distributed File System( HDFS)

HDFS是Hadoop Distribute File System 的简称,也就是Hadoop的一个分布式文件系统。
分布式文件系统就是管理网络计算机上存储的文件。基于网络存储和分布计算带来的挑战比传统的文件系统更加复杂,例如某个节点失败导致数据丢失的问题。

HDFS优点
1. 成本很低。运行在普通廉价的服务器上。
2. 线性增长。
3. 自动数据冗余。

HDFS设计思想
1. 硬件错误作为一种常态,因此要提供数据冗余。
2. 流式数据读取。批量读取而非随机读写。
3. 大规模的数据。


HDFS被设计用普通的机器组成的集群,按照流式数据读取的模式存储大型的文件。
1. 非常大的文件, 意味着存储数百上千G,T级别的数据,现在hadoop集群能存储P级别的数据
Byte --> KB --> MB --> GB --> TB --> PB --> EB --> ZB
2. 最高效的访问模式是 一次写入、多次读取(流式数据访问)
3. 运行在普通廉价的服务器上

HDFS基本概念
数据块(block)是每次读或写的数据量,传统的单硬盘块大小是512 bytes, HDFS是64M。可以减少查询的时间。
NameNode 用来保存文件树和元数据,以name space image和edit log的形式在本地保存起来
DataNode 用来保存数据,和client master交互来提取数据

由于单点的master带来的问题是如果namenode当机,所有的文件会丢失因为分布式系统不知道如何从多个datanode组织文件。
第一种解决方法是备份元数据文件,可以备份到本地或者远程的机器上去,所有的备份操作都是同步和原子化的。
第二种解法方法是运行secondary namenode, 用来合并namespace image和edit log, 目的是创建check point


HDFS架构
Hadoop Distributed File System( HDFS) - spring8743 - 我的博客
 
Rack 是指机柜的意思,一个block的三个副本通常会保存到两个或者两个以上的机柜中(当然是机柜中的服务器),这样做的目的是做防灾容错,因为发生一个机柜掉电或者一个机柜的交换机挂了的概率还是蛮高的。

NameNode:
1. 管理文件系统的命名空间
2. 记录数据块在datanode上和副本上的位置
3. 协调客户端对文件的访问

DataNode:
1. 负责所在物理节点的存储管理


HDFS读写流程
Hadoop Distributed File System( HDFS) - spring8743 - 我的博客
 
HDFS常用的shell command

cat

Usage: hadoop fs -cat URI [URI …]

Copies source paths to stdout.

Example:

  • hadoop fs -cat hdfs://nn1.example.com/file1 hdfs://nn2.example.com/file2
  • hadoop fs -cat file:///file3 /user/hadoop/file4

copyFromLocal

Usage: hadoop fs -copyFromLocal <localsrc> URI

Similar to put command, except that the source is restricted to a local file reference.

copyToLocal

Usage: hadoop fs -copyToLocal [-ignorecrc] [-crc] URI <localdst>

Similar to get command, except that the destination is restricted to a local file reference.

ls

Usage: hadoop fs -ls <args>
hadoop fs -ls /user/hadoop/file1

mkdir

Usage: hadoop fs -mkdir <paths> 

Takes path uri's as argument and creates directories. The behavior is much like unix mkdir -p creating parent directories along the path.

Example:

  • hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值