(三)HDFS常用指令

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qinshi965273101/article/details/83047491

HDFS常用指令:

hadoop fs -mkdir /park 在hdfs 的根目录下,创建 park目录
hadoop fs -ls / 查看hdfs根目录下有哪些目录
hadoop fs -lsr / 递归查看某个目录下的所有文件
hadoop fs -put /root/1.txt /park 将linux操作系统root目录下的1.txt放在hdfs的park目录下
hadoop fs -get /park/jdk /home 把hdfs文件系统下park目录的文件下载到linux的home目录下
hadoop fs -rm /park/文件名  删除hdfs 的park目录的指定文件
hadoop fs -rmdir /park 删除park目录,但是前提目录里没有文件
hadoop fs -rmr /park 删除park目录,即使目录里有文件
hadoop fs -cat /park/a.txt 查看park目录下的a.txt文件内容
hadoop fs -tail /park/a.txt 查看park目录下a.txt文件末尾的数据
hadoop fs –mv /park02  /park01 将HDFS上的park02目录重命名为park01
hadoop fs -mv /park02/1.txt  /park01 将park02目录下的1.txt文件移动到/park01目录下
hadoop fs -touchz /park/2.txt  创建一个空文件
hadoop fs -getmerge /park  /root/tmp 将park目录下的所有文件内容合并成一个文件,并下载到/root/tmp目录。
hadoop jar abc.jar 执行指定jar包
hadoop fsck /park/test.txt  -files -blocks -locations -racks 查看test.txt文件的block信息以及机架信息
  • hadoop2.0默认的切块大小是128M,若上传的文件大于128M,则会切成多块存储
  • 切块是以文件为单位的,不同的文件,不能共用一个文件块。此外,文件块多大,在磁盘就占多大。
  • HDFS不适合存储海量的小文件,因为会占用namenode节点大量的内存空间。因为每一条元数据大约占用150字节。
  • HDFS对于已上传的文件,是不允许修改的,但允许数据追加

hadoop dfsadmin -rollEdits 手动合并操作记录和镜像文件
  • 源数据会根据配置文件 core-site.xml里的hadoop.tmp.dir属性的路径来存储。
  • Edits文件的作用:记录每个HDFS的操作。
  • Fsimage文件的作用:元数据(namenode)的镜像文件
hadoop namenode -format 格式化
  • 此指令的本质作用是生成新的 Fsimage文件 和 Edits 文件。
  • 这个指令很危险,因为会清掉原来的信息。可以通过配置文件,让hadoop namenode -format 失效
  • 初次使用hadoop,需要先格式化
hadoop dfsadmin -safemode enter 手动进入安全模式

hadoop dfsadmin -safemode leave

手动退出安全模式
  • 安全模式的特点:HDFS只能对外提供读服务,不能提供写服务。
  • 每次HDFS启动时,每台datanode都会namenode汇报自身文件块的存储情况。namenode收到这些信息后,会检测和统计文件块的数量是否满足要求,以及副本数量,以及文件数据是否损坏。如果检测有问题,会进行修复,在修复的过程中,HDFS会进入安全模式。
  • 如果是伪分布式模式,副本数量要设置1。如果>1,会导致副本数量一直不能达到要求,会一直处于安全模式
hadoop fs - mv /user/root/.Trash/Current/park/test.txt  /park 把test.txt 从回收站还原
  • 删除了文件后,可以使用递归查询去回收站查找:hadoop fs -lsr /user/root/.Trash
  • 找到文件路径后使用mv指令恢复即可

猜你喜欢

转载自blog.csdn.net/qinshi965273101/article/details/83047491