Hadoop中hdfs的文件的读写流程以及常用指令

Hadoop中hdfs的文件的读写流程以及常用指令 1.HDFS数据的写入流程client向namenode发送写入文件请求namenode收到请求确认节点存活状态满足条件则返回确认。client向namenode发送请求namenode返回将block写入哪几个节点。client向datanode发送写入请求node1收到请求后继续调用node2以及node3建立信息通道node1node2node3逐级应答clientclient往node1上传第一个blocknode1收到后会传到node2再传到ndoe3当一个block传输完成后客户端再次请求Namenode上传第二个block到服务器直到写完释放资源2.HDFS数据的读入流程client通过分布式文件系统向NameNode请求文件清单NameNode通过元数据找到文件所在的datanode地址client通过过FSDataIutputStream计算各个节点位置挑选Datanode服务器就近原则读取数据Datanode传输数据给客户直到读完释放资源3.HDFS常用的39个命令1. appendToFile - 将服务器本地的文件追加到HDFS指定的文件中如果多次运行相同的参数则会在 HDFS 的文件中追加多行相同的内容 hadoop fs -appendToFile data.txt /data/data.txt 2. cat - 主要用来查看 HDFS 中的非压缩文件的内容 hadoop fs -cat /data/data.txt 3. checksum - 查看 HDFS 中文件的校验和 hadoop fs -checksum /data/data.txt 4. chgrp - 改变 HDFS 中文件或目录的所属组-R 选项可以改变目录下所有子目录的所属组执行此命令的用户必须是文件或目录的所有者或超级用户 hadoop fs -chgrp hadoop /data/data.txt 5. chmod - 修改 HDFS 中文件或目录的访问权限-R 选项可以修改目录下的所有子目录的访问权限执行此命令的用户必须是文件或目录的所有者或超级用户 hadoop fs -chmod 700 /data/data.txt 6. chown - 修改文件或目录的所有者-R选项可以修改目录下所有子目录的所有者此命令的用户必须是超级用户 hadoop fs -chown alice:alice /data/data.txt 7. copyFromLocal - 将本地服务器上的文件复制到HDFS中 hadoop fs -copyFromLocal a.txt /data/ 8. copyToLocal - 将 HDFS 中的文件复制到服务器本地 hadoop fs -copyToLocal /data/data.txt /home/hadoop/input 9. count - 显示目录下的子目录数、文件数、占用字节数、所有文件和目录名-q 选项显示目录和空间的配额信息 hadoop fs -count /data/ 10. cp - 复制文件或目录如果源文件或目录有多个则目标必须为目录 hadoop fs -cp /data/data.txt /data/data.tmp 11. createSnapshot - 为HDFS中的文件创建快照 hdfs dfsadmin -allowSnapshot /sn hadoop fs -createSnapshot /sn s1 12. deleteSnapshot - 删除 HDFS 中的文件快照 hadoop fs -deleteSnapshot /sn sn1 13. df - 查看 HDFS 中目录空间的使用情况 hadoop fs -df -h /data 14. du - 查看 HDFS 或目录中的文件大小 hadoop fs -du -h -s -x /data 15. expunge - 清空HDFS中的回收站 hadoop fs -expunge 16. find - 查找 HDFS 中指定目录下的文件 hadoop fs -find /data /data/data.txt 17. get - 将 HDFS 中的文件复制到本地服务器 hadoop fs -get /data/data.txt /home/hadoop/input 18. getfacl - 查看HDFS中指定目录下的文件的访问控制列表-R 选项可以查看所有子目录下的文件访问控制列表 hadoop fs -getfacl /data 19. getfattr - 查看 HDFS 上的文件扩展属性信息-R 选项可以查看当前目录下所有子目录中的文件扩展属性信息或子目录下文件的扩展属性信息 hadoop fs -getfattr -R -d /data 20. getmerge - 将 HDFS 中的多个文件合并为一个文件复制到本地服务器 hadoop fs -getmerge /data/a.txt /data/b.txt /home/hadoop/input/data.local 21. head - 以head方式查看 HDFS 中的文件此命令后面的文件只能为文件不能为目录 hadoop fs -head /data/data.txt 22. help - 查看 Hadoop 具体命令的帮助信息 hadoop fs -help cat 23. ls - 列出 HDFS 中指定目录下的信息 hadoop fs -ls /data 24. mkdir - 在 HDFS 上创建目录 hadoop fs -mkdir /test/data 25. moveFromLocal - 移动本地服务器上的某个文件到 HDFS 中 hadoop fs -moveFromLocal /home/hadoop/input/data.local /data/ 26. moveToLocal - 移动 HDFS 中的文件到本地服务器的某个目录下 hadoop fs -moveToLocal /data/data.txt /home/hadoop/input/ 27. mv - 在 HDFS 中移动文件或目录 hadoop fs -mv /data/data.local /test 28. put - 将本地文件复制到 HDFS 中 hadoop fs -put /home/hadoop/input/data.local /data 29. renameSnapshot - 重命名 HDFS 目录的快照 hadoop fs -mkdir /sn 30. rm - 删除 HDFS 中的文件或目录 hadoop fs -rm /data/data.local 31. rmdir - 删除 HDFS 中的空目录 hadoop fs -rmdir /test 32. setrep - 设置 HDFS 文件的目标副本数-R 递归-w 等待生效 hadoop fs -setrep 5 /data/data.txt 33. stat - 查看文件或目录的统计信息支持自定义格式。格式参数%b 文件所占块数%g 所属组%n 文件名%o 块大小%r 副本数%u 所属用户%y 修改时间 hadoop fs -stat %b,%g,%n,%o,%r,%u,%y /data 34. tail - 查看文件末尾数据默认最后 1KB-f 实时追加监听 hadoop fs -tail /data/data.txt 35. test - 检测文件或目录的属性返回状态码 0 或 1。选项说明-d 是否为目录-e 是否存在-f 是否为文件-s 是否大于0字节-w 是否有写权限-r 是否有读权限-z 是否为0字节 hadoop fs -test -d /data 36. text - 查看文件内容支持压缩文件cat 不支持压缩 hadoop fs -text /data/data.txt 37. touch - 在 HDFS 上创建空文件若文件已存在则更新修改时间 hadoop fs -touch /data/data.touch 38. truncate - 将 HDFS 文件截断到指定长度字节 hadoop fs -truncate 26 /data/data.txt 39. usage - 查看指定命令的使用格式 hadoop fs -usage cat