2.HDFS操作
1.HDFS基础知识
2.HDFS操作
3.HDFS读写流程
2.1 shell command(和linux保持一致)
hadoop操作指令
hadoop fs 支持操作多种文件系统
hadoop fs file:// 本地文件系统
hadoop fs gfs:// 谷歌文件系统
hadoop fs tfs:// 阿里文件系统
hadoop fs / 配置文件中设置,默认本地
hdfs dfs(老版本)等同于 hadoop fs(新版本)
# 查看指定目录下信息
hadoop fs -ls [-h] [-R] <args>
-h 人性化显示
-R 递归显示
#创建文件夹
hadoop fs -mkdir [-p] <paths>
-p 创建父目录
#上传文件
hadoop fs -put src dst
将单个 src 或多个 srcs 从本地文件系统复制到目标文件系统
#src代表的是本地目录 所谓的本地指的是客户端所在的机器
#dst代表的是HDFS
-p:保留访问和修改时间,所有权和权限。
-f:覆盖目的地(如果已经存在)
hadoop fs -put file:///root/itcast.txt hdfs://node1:8020/itcast
hadoop fs -put itcast.txt /itcast
#下载文件
hadoop fs -get src localdst
#将文件复制到本地文件系统。
hadoop fs -get hdfs://node1:8020/itcast/itcast.txt file:///root/
hadoop fs -get /itcast/itcast.txt ./
(./表示当前目录)
#追加内容到文件尾部 appendToFile 上传中合并
#(>>追加,>覆盖)
[root@node3 ~]# echo 1 >> 1.txt
[root@node3 ~]# echo 2 >> 2.txt
[root@node3 ~]# echo 3 >> 3.txt
[root@node3 ~]# hadoop fs -put 1.txt /
[root@node3 ~]# hadoop fs -cat /1.txt
1
[root@node3 ~]# hadoop fs -appendToFile 2.txt 3.txt /1.txt
[root@node3 ~]# hadoop fs -cat /1.txt
1
2
3
[root@node3 ~]#
#追加的用途:把本地的小文件上传中合并成为大文件 解决小文件场景的。
#合并下载 getmerge
#合并下载多个文件 其功能和appendToFile相反的动作
[root@node3 ~]# hadoop fs -mkdir /small
[root@node3 ~]# hadoop fs -put *.txt /small
[root@node3 ~]# hadoop fs -getmerge /small/* ./merge.txt
[root@node3 ~]# cat merge.txt
#文件内容的查看
cat 适合小文件
tail 将文件的最后一千字节内容显示到stdout
-f参数支持实时追踪查看
#权限 拥有者 所属组修改
hdfs在设计的时候 借鉴模仿着linux权限管理模式
也有所谓的读写执行 user group others 777
chgrp 修改所属组
chmod 修改权限
cgown 修改拥有者
hadoop fs -chmod 755 /1.txt
#文件移动 复制 删除
mv
cp
rm [-r]递归删除
#统计HDFS可用空间 指定目录大小
[root@node3 ~]# hadoop fs -df -h /
Filesystem Size Used Available Use%
hdfs://node1:8020 111.1 G 5.0 M 98.3 G 0%
#统计内存
[root@node1 ~]# free -h
total used free shared buff/cache available
Mem: 3.7G 318M 3.2G 11M 171M 3.2G
Swap: 3.9G 0B 3.9G
#修改文件的副本数(慎用,修改的时候会影响性能)
hadoop fs -setrep -w N(数字) -R N就是修改之后的副本数
-w wait等待 修改副本客户端是否等待修改完毕再推出
[root@node3 ~]# hadoop fs -setrep 2 /small/1.txt
Replication 2 set: /small/1.txt
[root@node3 ~]# hadoop fs -setrep -w 2 /small/2.txt
Replication 2 set: /small/2.txt
Waiting for /small/2.txt ...
WARNING: the waiting time may be long for DECREASING the number of replications.
. done
#企业中避免使用setrep修改文件的副本数。
副本的修改操作可能会影响hdfs正常的读写服务请求。
因此在实际工作中 事先根据数据的重要性在上传之前就决定该文件的备份数是多少 避免线上修改。