本文源码:GitHub·点这里 || GitEE·点这里java
大数据领域一直面对的两大核心模块:数据存储,数据计算,HDFS做为最重要的大数据存储技术,具备高度的容错能力,稳定并且可靠。HDFS(Hadoop-Distributed-File-System),它是一个分布式文件系统,用于存储文件,经过目录树来定位文件;设计初衷是管理数成百上千的服务器与磁盘,让应用程序像使用普通文件系统同样存储大规模的文件数据,适合一次写入,屡次读出的场景,且不支持文件的修改,适合作数据分析。c++
HDFS具备主/从体系结构,有两个核心组件,NameNode与DataNode。git
NameNodegithub
负责文件系统的元数据(MetaData)管理,即文件路径名、数据块ID、存储位置等信息,并配置副本策略,处理客户端读写请求。算法
DataNodespring
执行文件数据的实际存储和读写操做,每一个DataNode存储一部分文件数据块,文件总体分布存储在整个HDFS服务器集群中。shell
Client编程
客户端,文件切分上传HDFS的时候,Client将文件切分红一个一个的Block,而后进行上传;从NameNode获取文件的位置信息;与DataNode通讯读取或者写入数据; Client经过一些命令来访问或管理HDFS。设计模式
Secondary-NameNode服务器
不是NameNode的热备,可是分担NameNode工做量,好比按期合并Fsimage和Edits,并推送给NameNode;在紧急状况下,可辅助恢复NameNode。
数据块多份复制存储的示意,文件/users/sameerp/data/part-0,复制备份设置为2,存储的block-ids分别为一、3;文件/users/sameerp/data/part-1,复制备份设置为3,存储的block-ids分别为二、四、5;任何单台服务器宕机后,每一个数据块至少还存在一个备份服务存活,不会影响对文件的访问,提升总体容错性。
HDFS中的文件在物理上是分块存储(Block),块的大小能够经过参数dfs.blocksize来配置,块设置过小,会增长寻址时间;块设置的太大,从磁盘传输数据的时间会很慢,HDFS块的大小设置主要取决于磁盘传输速率。
一、基础命令
查看Hadoop下相关Shell操做命令。
[root@hop01 hadoop2.7]# bin/hadoop fs [root@hop01 hadoop2.7]# bin/hdfs dfs
dfs是fs的实现类
二、查看命令描述
[root@hop01 hadoop2.7]# hadoop fs -help ls
三、递归建立目录
[root@hop01 hadoop2.7]# hadoop fs -mkdir -p /hopdir/myfile
四、查看目录
[root@hop01 hadoop2.7]# hadoop fs -ls / [root@hop01 hadoop2.7]# hadoop fs -ls /hopdir
五、剪贴文件
hadoop fs -moveFromLocal /opt/hopfile/java.txt /hopdir/myfile ## 查看文件 hadoop fs -ls /hopdir/myfile
六、查看文件内容
## 查看所有 hadoop fs -cat /hopdir/myfile/java.txt ## 查看末尾 hadoop fs -tail /hopdir/myfile/java.txt
七、追加文件内容
hadoop fs -appendToFile /opt/hopfile/c++.txt /hopdir/myfile/java.txt
八、拷贝文件
copyFromLocal命令和put命令相同
hadoop fs -copyFromLocal /opt/hopfile/c++.txt /hopdir
九、HDFS文件拷贝到本地
hadoop fs -copyToLocal /hopdir/myfile/java.txt /opt/hopfile/
十、HDFS内拷贝文件
hadoop fs -cp /hopdir/myfile/java.txt /hopdir
十一、HDFS内移动文件
hadoop fs -mv /hopdir/c++.txt /hopdir/myfile
十二、合并下载多个文件
基础命令get和copyToLocal命令效果相同。
hadoop fs -getmerge /hopdir/myfile/* /opt/merge.txt
1三、删除文件
hadoop fs -rm /hopdir/myfile/java.txt
1四、查看文件夹信息
hadoop fs -du -s -h /hopdir/myfile
1五、删除文件夹
bin/hdfs dfs -rm -r /hopdir/file0703
GitHub·地址 https://github.com/cicadasmile/big-data-parent GitEE·地址 https://gitee.com/cicadasmile/big-data-parent
推荐阅读:编程体系整理
序号 | 项目名称 | GitHub地址 | GitEE地址 | 推荐指数 |
---|---|---|---|---|
01 | Java描述设计模式,算法,数据结构 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆☆ |
02 | Java基础、并发、面向对象、Web开发 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆ |
03 | SpringCloud微服务基础组件案例详解 | GitHub·点这里 | GitEE·点这里 | ☆☆☆ |
04 | SpringCloud微服务架构实战综合案例 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆☆ |
05 | SpringBoot框架基础应用入门到进阶 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆ |
06 | SpringBoot框架整合开发经常使用中间件 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆☆ |
07 | 数据管理、分布式、架构设计基础案例 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆☆ |
08 | 大数据系列、存储、组件、计算等框架 | GitHub·点这里 | GitEE·点这里 | ☆☆☆☆☆ |