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指令恢复即可