2.HDFS操作

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正常的读写服务请求。
因此在实际工作中 事先根据数据的重要性在上传之前就决定该文件的备份数是多少 避免线上修改。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值