Hadoop(4)hadoop的shell命令、hdfs的安全模式
hdfs的shell命令操作
hdfs的shell命令操作的主要类型:
1、对hdfs的操作命令
2、获得一些配置相关的命令
3、管理员相关的命令
4、文件系统检查相关的命令
hdfs命令(对hdfs的基础操作)
HDFS命令有两种风格,hadoop fs开头的和hdfs dfs开头的,两种命令均可使用,效果相同。
1.如何查看hdfs或hadoop子命令的帮助信息,如ls子命令
hdfs dfs -help ls
hadoop fs -help ls #两个命令等价
2.查看hdfs文件系统中指定目录的文件列表。对比linux命令ls
hdfs dfs -ls /
hadoop fs -ls /
hdfs dfs -ls -R /
3.在hdfs文件系统中创建文件
hdfs dfs -touchz /edits.txt
4.向HDFS文件中追加内容
hadoop fs -appendToFile edit1.xml /edits.txt
#将本地磁盘当前目录的edit1.xml内容追加到HDFS根目录 的edits.txt文件
5.查看HDFS文件内容
hdfs dfs -cat /edits.txt
6.从本地路径上传文件至HDFS
#用法:hdfs dfs -put /本地路径 /hdfs路径
hdfs dfs -put /linux本地磁盘文件 /hdfs路径文件
hdfs dfs -copyFromLocal /linux本地磁盘文件 /hdfs路径文件
#跟put作用一样
hdfs dfs -moveFromLocal /linux本地磁盘文件 /hdfs路径文件
#跟put作用一样,只不过,源文件被拷贝成功后,会被删除
7. 在hdfs文件系统中下载文件
hdfs dfs -get /hdfs路径 /本地路径
hdfs dfs -copyToLocal /hdfs路径 /本地路径 #根get作用一样
8. 在hdfs文件系统中创建目录
hdfs dfs -mkdir /shell
9. 在hdfs文件系统中删除文件
hdfs dfs -rm /edits.txt
hdfs dfs -rm -r /shell
10. 在hdfs文件系统中修改文件名称(也可以用来移动文件到目录)
hdfs dfs -mv /xcall.sh /call.sh
hdfs dfs -mv /call.sh /shell
11. 在hdfs中拷贝文件到目录
hdfs dfs -cp /xrsync.sh /shell
12. 递归删除目录
hdfs dfs -rmr /shell
13. 列出本地文件的内容(默认是hdfs文件系统)
hdfs dfs -ls file:///home/hadoop/
14. 查找文件
linux find命令
find . -name 'edit*'
HDFS find命令
hadoop fs -find / -name part-r-00000 # 在HDFS根目录中,查找part-r-00000文件
15.总结
- 输入hadoop fs 或hdfs dfs,回车,查看所有的HDFS命令
- 学会举一反三,许多命令与linux命令有很大的相似性
- 学会使用help,查看命令使用说明:hadoop fs -help ls
- 绝大多数的大数据框架的命令,也有类似的help信息
hdfs与getconf结合(获取配置信息)
1.获取NameNode的节点名称(可能有多个)
hdfs getconf -namenodes
2. 获取hdfs配置信息
hdfs getconf -confKey dfs.namenode.fs-limits.min-block-size
hdfs getconf -confKey dfs.blocksize
用相同命令可获取其他的属性值
3. 查找hdfs的NameNode的RPC地址
RPC(RemoteProcedureCall,远程过程调用)
hdfs getconf -nnRpcAddresses
hdfs与dfsadmin结合(管理员相关命令)
1. 同样要学会借助帮助信息
hdfs dfsadmin -help safemode
2. 查看hdfs dfsadmin的帮助信息
hdfs dfsadmin
3. 查看当前的模式
hdfs dfsadmin -safemode get
4. 进入/退出安全模式
hdfs dfsadmin -safemode enter # 进入安全模式
hdfs dfsadmin -safemode leave #退出安全模式
hdfs与fsck结合(系统检查)
fsck指令显示HDFS块信息
hdfs fsck /02-041-0029.mp4 -files -blocks -locations # 查看文件02-041-0029.mp4的块信息
其他命令
1. 检查压缩库本地安装情况
hadoop checknative
2. 格式化名称节点(慎用,一般只在初次搭建集群,使用一次;格式化成功后,不要再使用)
hadoop namenode -format
- 执行自定义jar包
hadoop jar /kkb/install/hadoop-2.6.0-cdh5.14.2/share/hadoop/
mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar pi 10 10
hdfs的安全模式
安全模式是HDFS所处的一种特殊状态,在这种状态下,文件系统只接受读数据请求,而不接受删除、修改等变更请求。在NameNode主节点启动时,HDFS首先进入安全模式,DataNode在启动的时候会向namenode汇报可用的block等状态(通过心跳heartbeat向namenode汇报,如果99%的block的块的副本数>=1,就可以退出安全模式),当整个系统达到安全标准时,HDFS自动离开安全模式。
如果HDFS处于安全模式下,则文件block不能进行任何的副本复制操作,因此达到最小的副本数量要求是基于datanode启动时的状态来判定的,启动时不会再做任何复制(从而达到最小副本数量要求),hdfs集群刚启动的时候,默认30s的时间是出于安全期的,只有过了30s之后,集群脱离了安全期,然后才可以对集群进行操作
通过shell命令进入和退出安全模式:
[hadoop@node01 hadoop]$ hdfs dfsadmin -safemode
Usage: hdfs dfsadmin [-safemode enter | leave | get | wait]