HDFS 是 Hadoop 自带的一个分布式文件系统,作用是专门存储超大型数据文件,为整个Hadoop生态圈提供基础的存储。
今天给大家介绍一些HDFS的特点、试用场景和常用命令,让大家更快学会分布式文件系统HDFS。
(java类,java类,java类,java类,java类,java类,java类,java类,java类,java类)
1. HDFS 文件系统专门为大数据存储设计,具备这 3个特点:
1) HDFS文件系统可存储超大文件
2) 一次写入,多次读取
3) 可在普通廉价的机器上运行
2. HDFS 有以下 5个 不适用 的场景:
1) 低延迟
HDFS不适用于实时查询这种对延迟要求高的场景
2) 大量小文件
小文件通常定义为远小于HDFS的block size(默认64MB)的文件
3) 数据量不大
通常Hadoop适用于TB、PB数据
4) 结构化数据
HDFS适合存储半结构化和非结构化数据
5) 多用户更新
为了保证并发性,HDFS需要一次写入多次读取,目前不支持多用户写入
(java类,java类,java类,java类,java类,java类,java类,java类,java类,java类)
3. 操作 HDFS 需要掌握这 10个基础命令
1) 打印文件列表(ls)
标准写法:
简写:
hadoop fs -ls / #默认是HDFS系统下的根目录
打印指定子目录:
hadoop fs -ls /package/test/ #HDFS系统下某个目录
2) 上传文件、目录(put、copyFromLocal)
put用法:
上传新文件:
hdfs fs -put file:/root/test.txt hdfs:/
#上传本地test.txt文件到HDFS根目录,HDFS根目录须无同名文件,否则“File exists”
hdfs fs -put test.txt /test2.txt
#上传并重命名文件。
hdfs fs -put test1.txt test2.txt hdfs:/
#一次上传多个文件到HDFS路径。
上传文件夹:
hdfs fs -put mypkg /newpkg
#上传并重命名了文件夹。
覆盖上传:
hdfs fs -put -f /root/test.txt /
#如果HDFS目录中有同名文件会被覆盖
copyFromLocal用法:
上传文件并重命名:
hadoop fs -copyFromLocal file:/test.txt hdfs:/test2.txt
覆盖上传:
hadoop fs -copyFromLocal -f test.txt /test.txt
3) 下载文件、目录(get、copyToLocal)
get用法:
拷贝文件到本地目录:
hadoop fs -get hdfs:/test.txt file:/root/
拷贝文件并重命名,可以简写:
hadoop fs -get /test.txt /root/test.txt
copyToLocal用法
拷贝文件到本地目录:
hadoop fs -copyToLocal hdfs:/test.txt file:/root/
拷贝文件并重命名,可以简写:
hadoop fs -copyToLocal /test.txt /root/test.txt
4) 拷贝文件、目录(cp)
从本地到HDFS,同put
hadoop fs -cp file:/test.txt hdfs:/test2.txt
从HDFS到HDFS
hadoop fs -cp hdfs:/test.txt hdfs:/test2.txt
hadoop fs -cp /test.txt /test2.txt
5) 移动文件(mv)
hadoop fs -mv hdfs:/test.txt hdfs:/dir/test.txt
hadoop fs -mv /test.txt /dir/test.txt
(hadoop组,hadoop组,hadoop组,hadoop组,hadoop组,hadoop组,hadoop组,hadoop组,hadoop组,hadoop组,hadoop组)
6) 删除文件、目录(rm)
删除指定文件
hadoop fs -rm /a.txt
删除全部txt文件
hadoop fs -rm /*.txt
递归删除全部文件和目录
hadoop fs -rm -R /dir/
7) 读取文件(cat、 tail )
hadoop fs -cat /test.txt #以 字节码 的形式读取
hadoop fs -tail /test.txt
8) 创建空文件(touchz)
hadoop fs – touchz /newfile.txt
9) 创建文件夹(mkdir)
hadoop fs -mkdir /newdir /newdir2
#可以同时创建多个
hadoop fs -mkdir -p /newpkg/newpkg2/newpkg3
#同时创建父级目录
10) 获取逻辑空间文件、目录大小(du)
hadoop fs – du /
#显示HDFS根目录中各文件和文件夹大小
hadoop fs -du -h /
#以最大单位显示HDFS根目录中各文件和文件夹大小
hadoop fs -du -s /
#仅显示HDFS根目录大小。即各文件和文件夹大小之和
(hadoop组,hadoop组,hadoop组,hadoop组,hadoop组,hadoop组,hadoop组,hadoop组,hadoop组,hadoop组)
自己对于学Hadoop的一点建议
我最开始是自己看书学Hadoop,但是效率很低,找不到方向和学习的重点。
后来在论坛认识了某渡的哥们,他给了我一套视频。从0基础入门Hadoop,到Hadoop生态圈中各个组件的讲解都很详细。最重要的还是有很多真实的案例。
我也是跟着视频学会的Hadoop,把这个经历告诉大家,希望大家少走弯路尽早学会Hadoop。
需要视频的同学可以去 蓬、有、圈 , 你们可以在 gan,shi,yu,1026 找到这哥们的跟班拿(没逗号)。