HDFS
HDFS(Hadoop Distributed File System ),意为:
Hadoop
分布式文件系统
。
是Apache Hadoop核心组件之一,作为
大数据生态圈最底层
的分布式存储服务而存在。也可以说大数据首先要解 决的问题就是海量数据的存储问题。
HDFS主要是
解决大数据如何存储问题的。分布式意味着是HDFS是横跨在多台计算机上的存储系统。
HDFS是一种能够在普通硬件上运行的分布式文件系统,它是高度容错的,适应于具有大数据集的应用程序,它非
常适于存储大型数据 (比如 TB 和 PB)。
HDFS使用多台计算机存储文件, 并且提供统一的访问接口, 像是访问一个普通文件系统一样使用分布式文件系统。
适用场景:
大文件、
数据流式访问、
一次写入多次读取、
低成本部署、廉价PC、
高容错
HDFS shell操作 hadoop fs [generic options]
hadoop
fs -ls file:///
#
操作本地文件系统
hadoop
fs -ls hdfs://node1:8020/
#
操作
HDFS
分布式文件系统
hadoop
fs -ls /
#
直接根目录,没有指定协议 将加载读取
fs.defaultFS
值
hadoop fs -mkdir [-p] <path> ... -p会沿着路径创建父目录
hadoop fs -ls [-h] [-R] [<path> ...] -h
人性化显示文件大小 -R递归查看指定目录及其子目录
hadoop fs -put [-f] [-p] <localsrc> ... <dst>
-f 覆盖目标文件(已存在下)
-p 保留访问和修改时间,所有权和权限。
上传
hadoop fs -cat <src> ... 查看hdfs文件内容,对于大文件读取要慎重
hadoop fs -get [-f] [-p] <src> ... <localdst>
-f 覆盖目标文件(已存在下)
-p 保留访问和修改时间,所有权和权限。
下载
hadoop fs -cp [-f] <src> ... <dst> -f覆盖
拷贝
hadoop fs -appendToFile <localsrc> ... <dst>
追加 小文件合并
![](https://img-blog.csdnimg.cn/28e20ca487614ccb8a1543d5d7b3def6.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bKB5pyI5LiN6Z2Z5aW9NDU2,size_15,color_FFFFFF,t_70,g_se,x_16)
hadoop fs -mv <src> ... <dst>
移动
重命名
![](https://img-blog.csdnimg.cn/7ef84be99d4d4103ac95772e0970c980.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bKB5pyI5LiN6Z2Z5aW9NDU2,size_20,color_FFFFFF,t_70,g_se,x_16)
HDFS工作流程与机制
主角色:namenode:
NameNode是Hadoop分布式文件系统的核心,架构中的主角色。
NameNode维护和管理文件系统元数据,包括名称空间目录树结构、文件和块的位置信息、访问权限等信息。
从角色:
datanode:
DataNode是Hadoop HDFS中的从角色,负责具体的数据块存储。
DataNode的数量决定了HDFS集群的整体数据存储能力。通过和NameNode配合维护着数据块
核心概念
--Pipeline
管道
核心概念
--ACK
应答响应
![](https://img-blog.csdnimg.cn/3c3b7f4aac3c4374b4b9f457b7b5541a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bKB5pyI5LiN6Z2Z5aW9NDU2,size_20,color_FFFFFF,t_70,g_se,x_16)
核心概念--默认3副本存储策略
第一块副本:优先客户端本地,否则随机
第二块副本:不同于第一块副本的不同机架。
第三块副本:第二块副本相同机架不同机器。