共计 2369 个字符,预计需要花费 6 分钟才能阅读完成。
本文源码:GitHub·点这里 || GitEE·点这里
一、HDFS 根本概述
1、HDFS 形容
大数据畛域始终面对的两大外围模块:数据存储,数据计算,HDFS 作为最重要的大数据存储技术,具备高度的容错能力,稳固而且牢靠。HDFS(Hadoop-Distributed-File-System),它是一个分布式文件系统,用于存储文件,通过目录树来定位文件; 设计初衷是治理数成千盈百的服务器与磁盘,让应用程序像应用一般文件系统一样存储大规模的文件数据,适宜一次写入,屡次读出的场景,且不反对文件的批改,适宜做数据分析。
2、基础架构
HDFS 具备主 / 从体系结构,有两个外围组件,NameNode 与 DataNode。
NameNode
负责文件系统的元数据(MetaData)治理,即文件路径名、数据块 ID、存储地位等信息,并配置正本策略,解决客户端读写申请。
DataNode
执行文件数据的理论存储和读写操作,每个 DataNode 存储一部分文件数据块,文件整体散布存储在整个 HDFS 服务器集群中。
Client
客户端,文件切分上传 HDFS 的时候,Client 将文件切分成一个一个的 Block,而后进行上传; 从 NameNode 获取文件的地位信息; 与 DataNode 通信读取或者写入数据; Client 通过一些命令来拜访或治理 HDFS。
Secondary-NameNode
不是 NameNode 的热备,然而分担 NameNode 工作量,比方定期合并 Fsimage 和 Edits,并推送给 NameNode; 在紧急情况下,可辅助复原 NameNode。
3、高容错性
数据块多份复制存储的示意, 文件 /users/sameerp/data/part-0,复制备份设置为 2,存储的 block-ids 别离为 1、3;文件 /users/sameerp/data/part-1,复制备份设置为 3,存储的 block-ids 别离为 2、4、5;任何单台服务器宕机后,每个数据块至多还存在一个备份服务存活,不会影响对文件的拜访,进步整体容错性。
HDFS 中的文件在物理上是分块存储 (Block),块的大小能够通过参数 dfs.blocksize 来配置,块设置太小,会减少寻址工夫;块设置的太大,从磁盘传输数据的工夫会很慢,HDFS 块的大小设置次要取决于磁盘传输速率。
二、根底 Shell 命令
1、根底命令
查看 Hadoop 下相干 Shell 操作命令。
[root@hop01 hadoop2.7]# bin/hadoop fs
[root@hop01 hadoop2.7]# bin/hdfs dfs
dfs 是 fs 的实现类
2、查看命令形容
[root@hop01 hadoop2.7]# hadoop fs -help ls
3、递归创立目录
[root@hop01 hadoop2.7]# hadoop fs -mkdir -p /hopdir/myfile
4、查看目录
[root@hop01 hadoop2.7]# hadoop fs -ls /
[root@hop01 hadoop2.7]# hadoop fs -ls /hopdir
5、剪贴文件
hadoop fs -moveFromLocal /opt/hopfile/java.txt /hopdir/myfile
## 查看文件
hadoop fs -ls /hopdir/myfile
6、查看文件内容
## 查看全副
hadoop fs -cat /hopdir/myfile/java.txt
## 查看开端
hadoop fs -tail /hopdir/myfile/java.txt
7、追加文件内容
hadoop fs -appendToFile /opt/hopfile/c++.txt /hopdir/myfile/java.txt
8、拷贝文件
copyFromLocal 命令和 put 命令雷同
hadoop fs -copyFromLocal /opt/hopfile/c++.txt /hopdir
9、HDFS 文件拷贝到本地
hadoop fs -copyToLocal /hopdir/myfile/java.txt /opt/hopfile/
10、HDFS 内拷贝文件
hadoop fs -cp /hopdir/myfile/java.txt /hopdir
11、HDFS 内挪动文件
hadoop fs -mv /hopdir/c++.txt /hopdir/myfile
12、合并下载多个文件
根底命令 get 和 copyToLocal 命令成果雷同。
hadoop fs -getmerge /hopdir/myfile/* /opt/merge.txt
13、删除文件
hadoop fs -rm /hopdir/myfile/java.txt
14、查看文件夹信息
hadoop fs -du -s -h /hopdir/myfile
15、删除文件夹
bin/hdfs dfs -rm -r /hopdir/file0703
三、源代码地址
GitHub·地址
https://github.com/cicadasmile/big-data-parent
GitEE·地址
https://gitee.com/cicadasmile/big-data-parent
举荐浏览:编程体系整顿
项目名称 |
---|
【Java 形容设计模式, 算法, 数据结构】GitHub==GitEE |
【Java 根底、并发、面向对象、Web 开发】GitHub==GitEE |
【SpringCloud 微服务根底组件案例详解】GitHub==GitEE |
【SpringCloud 微服务架构实战综合案例】GitHub==GitEE |
【SpringBoot 框架根底利用入门到进阶】GitHub==GitEE |
【SpringBoot 框架整合开发罕用中间件】GitHub==GitEE |
【数据管理、分布式、架构设计根底案例】GitHub==GitEE |
【大数据系列、存储、组件、计算等框架】GitHub==GitEE |