大数据Hadoop之HDFS模块《二》

   上篇我们介绍了hdfs的一些概念和优缺点那么我们这篇便来说说hdfs的读写流程和一些常用的命令:
  《一》读写流程
   	一、hdfs 读流程(下载文件)

   	 1) client向namenode发出下载请求,namenode查询元数据信息,找到文件块所在的datanode,返回给client。  
   	 2) client从返回的datanode中选择(就近原则,再随机)一个,请求下载。  
   	 3) datanode开始传输数据给clent(从磁盘读取数据到输入流,并以packet为单位做校验)。  	   
   	 4) client以packet为单位接收文件(先在本地内存中缓存,然后再写入本地磁盘的目标文件)。
        二、hdfs 写流程(上传文件) 
           
         1)  client将文件切分为block(默认128M),向namenode发出文件上传请求,namenode检查文件是否存在,父目录是否存在,返回是否可以上传。  
         2)  client请求第一个block上传,namenode分配上传的datanode信息(dn1,dn2,dn3)。  
         3)client请求其中一个datanode进行文件上传(dn1),dn1收到请求与其余datanode之间建立通信管道,dn1, dn2, dn3依次向客户端返回确认可以上传。  
         4)client 开始往dn1上传第一个block(先从磁盘读取到本地内存缓存),以packet为单位,dn1收到一个packet会传给dn2,dn2传给dn3,dn1每次传一个packet会放入一个应答队列等待应答。  
         5)第一个block上传完成之后,开始进行第二个block上传。

《二》常用命令
hdfs 命令
hadoop fs 和 hdfs dfs 差不多hadoop fs 不仅可以在hdfs 使用,使用面广,可以操作所有文件系统hadoop dfs 和 hdfs dfs 都是用于hdfs 文件系统中,但是hadoop dfs 已经过时了
hdfs dfs -help 参数 查看命令的用法
hdfs dfs -ls 文件 查看文件
hdfs dfs -touchz 文件 在hdfs 上新建文件
hdfs dfs -mkdir -p /aa/bb/cc 创建多层文件夹
hdfs dfs -put wcinput/wc.input /aa 上传文件
hdfs dfs -get /aa/wc.input input 下载
hdfs dfs -ls -R 文件 等同于 hdfs dfs -lsr 文件 递归查看文件夹中所有文件
hdfs dfs -moveFromlocal linux文件 hdfs文件 从本地移除到 hdfs文件
hdfs dfs -cat 文件 显示文件内容
hdfs dfs -appendToFile linux上的b.txt hdfs上的 a.txt 在文件末尾追加 ,把linux上的b.txt追加到 hdfs上的a.txt上
hdfs dfs -tail -f b.txt 滚动查看b.txt中的内容
hdfs dfs -chmod 755 /user/a.txt 修改文件权限
hdfs dfs -chown 用户a:组名b user/a.txt 修改文件的 组为b 和用户为a
hdfs dfs -copyFromLocal linux文件 hdfs文件 相当于 -put 从linux上拷贝一份文件到hdfs文件系统中
hdfs dfs -copyToLocal hdfs文件 linux文件 从hdfs拷贝一份到linux中 相当于 -get
hdfs dfs -cp 从hdfs的一个目录拷贝到另一个目录
hdfs dfs -mv 可以重命名 。可以移动
hdfs dfs -rm -p 递归删除
hdfs dfs -getmerge 把两个文件合并到一起 ,并下载下来有关磁盘命令:
hdfs dfs -getmerge a.txt b.txt ./ 合并a.txt和b.txt 到当前目录,查看磁盘的使用情况
hdfs dfs -df :统计系统文件的可用空间 加 -h 转化成 兆M K
hdfs dfs -du : 显示文件夹的 的使用情况 加 -s显示 总文件夹总共的大小
hdfs dfs -setrep : 设置某个文件的副本数
hdfs dfs -setrep 1 /user/a.txt 设置a.txt的副本数为1
hdfs dfsadmin -report 查看当前所有的节点及状态

关于HDFS的流程和命令先给大家介绍这么多吧,也不知道是否对大家有所帮助,如果觉得对你有所帮助,请分享给更多的朋友,谢谢!

你可能感兴趣的:(Hadoop)