Hadoop知识点(四)-HDFS

HDFS

  • 1.snn流程
  • 2.Hadoop fs 指令操作
    • 2.1查看文件(ls)
    • 2.2Hadoop文件下载到Hadoop
    • 2.3查看文件大小(du)
    • 2.4其他(生产中应用最多的)
  • 3.hdfs指令操作
    • 3.1安全模式
    • 3.2各节点
    • 3.3单个dn的多块磁盘的数据平衡

1.snn流程

**fsimage:**在nn启动是对整个文件系统的快照。
作用:就是Hadoop文件系统元数据的一个永久的检查点,其中包含Hadoop文件系统中的所有目录和文件idnode的序列化信息。

editlog: nn启动后,对文件系统的系列操作,都会存储在editlog中。
作用:存放Hadoop文件系统的虽有跟新操作的路径,文件系统客户端执行的所有写操作首先会被记录到edits文件中。

作用:

在nn启动的时候,nn会将fsimage文件中的内容加载到内存中,之后再执行edits文件中的各项操作,使得内存中的元数据和实际的同步,存在内存中的元数据支持客户端的读操作。

其中fsimage和edits存放的目录在tmp/dfs/name/current

snn就是合并fsimage和edits,之后再将合并后的fsimage推送给nn,在nn中生成fsimage。其中edits中显示inprogress,表示正在写的状态

2.Hadoop fs 指令操作

bin:可执行脚本 命令
sbin:放置HDFS的启动 停止 重启脚本
etc:配置文件夹 也有的叫conf/config
lib:lib目录 放置jar包
logs:放置日志
share:源码的编译文件
主要关心bin etc lib

说明:

cd bin #后缀为.cmd这种都可以删除不要,是win中的应用脚本

2.1查看文件(ls)

hadoop fs -ls /==hdfs dfs -ls /

2.2Hadoop文件下载到Hadoop

hadoop fs -get /1.log ./2.log #./表示当前路径并重新命名

-get  -copyToLocal  #这两个等价,是相同的
-put  -copyFromLocal

2.3查看文件大小(du)

hadoop fs -du /

2.4其他(生产中应用最多的)

hadoop fs  #这个是下面命令都需要带的前缀
如:hadoop fs -ls /  #查看hadoop中的根目录文件
-get   #下载
-put   #上传
-ls    #查看文件夹
-mkdir #创建文件夹
-mv    #移动 
-cp    #拷贝  为了保险起见,一般都是用拷贝,尽量不用移动
-rm   #删除  -rm -rf   r:表示删除文件夹 f:表示强制删除
---------------------------------------------
cd bin/hadoop
hadoop checknative  #查看是否支持压缩的格式
如果需要,则在hadoop编译进行设置压缩格式
-rm [-f] [-r|-R] [[-skipTrash] <scr>...]  #-skipTrash:是一个回收站,在生产上是必须要开启,因为一旦删除,就无法恢复,其中再生产中,一般回收机制设置为7天。
配置:
cd app/hadoop/etc/hadoop
vi core-site.xml
configuration>
    <property>
        <name>fs.trash.interval</name>
        <value>10080</value>  
    </property>
</configuration>
------------------------------
备注:1>单位是minutes
      2>默认的是0,表示回收站被禁用了
      3>生产中回收机制一定要开启
      4>慎用-skipTrash, 不要加这个!!!
 配置完以后,需要重启HDFS
 sbin/stop-dfs.sh
 sbin/start-dfs.sh     

3.hdfs指令操作

3.1安全模式

安全模式:可以查看,不能进入写模式

su - hadoop
hdfs dfsadmin  #查看
hdfs dfsadmin -report  #查看系统的健康状况,查看子节点是否存活,达到监控的目的
【-safeadmin <enter | leave | get | wait>】
安全模式:当hdfs进入安全模式,别人是不能进入写模式,但是可以进入读模式,其实也就是一种自我保护。
hdfs dfsadmin -safemode enter  #进入安全模式
hdfs dfs -put 1.log /  #则无法将linux文件放置到hadoop环境当中
错误: Name node is in safe mode
解决方法: hdfs dfs -safemode leave
应用场景:什么时候会安全模式
1.hdfs故障 检查nn的log日志  #故障场景
解决:根据错误去看看尝试是否能够解决,并尝试先手动查看安全模式
2>业务场景
集群在维护时,就让nn进入安全模式
hdfs安全模式的维护窗口的场景一般选择hdfs的下游,尽量选择最小化的窗口维护。

3.2各节点

cd app/hadoop/sbin
./start-balancer.sh   #默认threshold=10
每个节点的磁盘使用率-平均的磁盘使用率<10%
1.生产上,./start-balance.sh -threshold 10.0 放到业务低估比如凌晨,去做平衡操作。定时每天的
2.调整平衡的网络宽带 hdfs-site.xml
dfs.datanode.balance.bandwidthPerSec 10m==>50m

3.3单个dn的多块磁盘的数据平衡

在投产中使用
这里暂时我先不学

你可能感兴趣的:(Hadoop)