HDFS是一个分布式文件系统,采用分而治之的设计思想,将大文件、大批量文件,分布式存放在大量服务器上,为各类分布式运算框架(MapReduce,spark,tez等)提供数据存储服务。首先,它是一个文件系统,用于存储文件,通过统一的命名空间目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。
适合用来做数据分析,并不适合用来做网盘应用,因为,不便修改,延迟大,网络开销大,成本太高
// 列出文件
hadoop fs -ls /
// 创建目录
hadoop fs -mkdir 目录名称
// 查看文件
hadoop fs -cat 文件名称
// 删除文件或文件夹
hadoop fs -rm -r /aaa/bbb/
// 从本地文件系统中拷贝文件到hdfs路径去
hadoop fs -copyFromLocal ./jdk.tar.gz /aaa/
// 上传,等同于copyFromLocal
hadoop fs -put /aaa/jdk.tar.gz /bbb/jdk.tar.gz.2
// 从hdfs拷贝到本地
hadoop fs -copyToLocal /aaa/jdk.tar.gz
// 从hdfs下载文件到本地,等同于copyToLocal
hadoop fs -get /aaa/jdk.tar.gz
// 统计文件系统的可用空间信息
hadoop fs -df -h /
// 统计文件夹的大小信息
hadoop fs -du -s -h /aaa/*
// 统计一个指定目录下的文件节点数量
hadoop fs -count /aaa/
// 设置hdfs中文件的副本数量,这里设置的副本数只是记录在nameNode的元数据中,是否真的会有这么多副本,还得看dataNode的数量
hadoop fs -setrep 3 /aaa/jdk.tar.gz