Hadoop之HDFS基本应用
1. HDFS基本命令
1. 查看帮助
hadoop fs -help
2. 创建目录
hadoop fs -mkdir /test
3. 查看文件列表
hadoop fs -ls /test
hadoop fs -ls -R /test 查看子目录
hadoop fs -lsr /test 上面的命令简写
4. 上传文件到HDFS
hadoop fs -put /root/install.log /test
5. 复制文件到HDFS
hadoop fs -copyFromLocal msg2.txt /test
hadoop fs -moveFromLocal /tmp/1.xml /test 剪切复制到hdfs上,本地的文件会被删除
6. 下载文件到本地
hadoop fs -get /test/stop-dfs.cmd /tmp 第一个为HDFS上的文件,第二个为本地目录
7. 复制文件到本地
hadoop fs -copyToLocal /test/stop-dfs.cmd /tmp
8. 查看文件内容
只有文本才能正常看,其它文件显示乱码
hadoop fs -cat /test/stop-dfs.cmd
hadoop fs -text /test/stop-dfs.cmd
hadoop fs -tail /test/stop-dfs.cmd
9. 删除HDFS文件
hadoop fs -rm /test/stop-dfs.cmd
hadoop fs -rm /test 删除空目录
hadoop fs -rmr 删除目录,包含子目录
10. 将hdfs下的文件先合并,再下载
hadoop fs -getmerge /test/msg*.txt /tmp/5.txt
11. hdfs内的文件复制
hadoop fs -cp /test/msg1.txt /test/msg3.txt
12. hdfs内的文件移动
hadoop fs -mv /test/msg1.txt /
13. 统计hdfs的文件信息
hadoop fs -count /test
1 4 488796 /test
1 表示目录
4 表示目录下的文件数
488796 表示总字节数
14. 统计hdfs的文件详细信息
hadoop fs -du /test
15. 查看HDFS集群的信息
hdfs dfsadmin -report
2. 远程操作hdfs
hadoop fs -put /tmp/root hdfs://172.16.1.229:9000/test 上传本地的/tmp/root目录到远程的hdfs的/test目录下
3. Java API操作hdfs
略
4. HDFS的高级特性
1. 回收站
默认回收站是关闭的
1. 开启回收站
在core-site.xml文件,添加以下内容
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
2. 查看回收站
hadoop fs -lsr /user/hadoop/.Trash/Current
3. 从回收站恢复数据文件
hadoop fs -cp /user/hadoop/.Trash/Current/test/1.xml /test
4. 清空回收站
hadoop fs -expunge
2. 快照
1. 应用场景
防止用户的误操作
备份
测试
灾难恢复
2. 操作
1. 开启快照功能
hdfs dfsadmin -allowSnapshot /test
2. 创建快照
hdfs dfs -createSnapshot /test bk_input_20220706_01
3. 删除快照
4. 对比快照
hdfs snapshotDiff /test bk_input_20220706_01 bk_input_20220706_02
M .
+ ./2.xml
5. 重命名快照
hdfs dfs -renameSnapshot /test bk_input_20220706_02 bk_input_20220706_03
6. 查看哪些目录开启快照
hdfs lsSnapshottableDir
7. 查看某个目录下有几个快照
hadoop fs -ls -r /test/.snapshot
也可以通过web UI查看快照的使用情况
3. 配额管理
1. 名称配额
1. 设置某个目录的名称配额为3
hdfs dfsadmin -setQuota 3 /yangjianbo
2. 当上传的文件超出配额会有下面的报错
The NameSpace quota (directories and files) of directory /yangjianbo is exceeded: quota=3 file count=4
3. 清除配额
hdfs dfsadmin -clrQuota /yangjianbo
2. 空间配额
1. 设置某个目录的空间配额
hdfs dfsadmin -setSpaceQuota 1M /yangjianbo
2. 当上传的文件超过1M以后会有下面的报错
The DiskSpace quota of /yangjianbo is exceeded: quota = 52428800 B = 50 MB but diskspace consumed = 268462894 B = 256.03 MB
对目录的配额不能小于数据块的大小
3. 清除配额
hdfs dfsadmin -clrSpaceQuota /yangjianbo
4. 安全模式
HDFS的一种保护机制
1. 查看安全模式
[hadoop@master hadoop]$ hdfs dfsadmin -safemode get
Safe mode is OFF
2. 开启安全模式
[hadoop@master hadoop]$ hdfs dfsadmin -safemode enter
Safe mode is ON
3. 开启安全模式后,HDFS进入只读状态
mkdir: Cannot create directory /test/1.txt. Name node is in safe mode.
4. 关闭安全模式
[hadoop@master hadoop]$ hdfs dfsadmin -safemode leave
Safe mode is OFF
5. 权限管理
与linux文件系统权限管理类似
5. HDFS联盟
1. 联盟的作用
让HDFS支持多个命名空间,并由不同的namenode维护
2. 联盟的架构
3. 联盟的部署
1. 配置两台namenode
2. 配置ViewFS的路由规则
6. HDFS的底层通信方式RPC
客户端通过RPC调用namenode
4. 在Hadoop集群中运行程序
1. MapRedue示例程序
hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar pi 10 10

浙公网安备 33010602011771号