大数据学习6:HDFS的一些理解

HDFS的一些理解

---------------------------------

一、HDFS 的3个部分

二、jps命令

三、文件的读写流程:

四、进程

五、几个hdfs常用命令:

---------------------------------

一、HDFS 的3个部分
namenode 作用
(1)类似于维护文件系统,名字,时间,大小
(2)文件划分哪些block块,block块分到哪些机器上

datanode 作用
(1)存储数据块
(2)存放数据的校验和
(3)3秒一个心跳,每10个心跳向namenode发送一个block report

secondary namenode 作用:
存储: fsimgage+editlog
作用:每隔1小时 checkpoint 去namenode 的fsimage+editlog,合并成fsimage.ckpt的文件,推送给namenode,进行覆盖,类似于定时备份。
在官网文档中由这个参数控制
参数:dfs.namenode.checkpoint.period 
解释:The number of seconds between two periodic checkpoints.

例子:
namenode 11点运行到11点59分宕机,此时secondary namenode在11点时进行了合并,工作正常,该如何处理?
答:
(1)如果namenode进程挂了,文件路径还在(fsimage+editlog等文件),重启namenode,重新加载信息到内存即可恢复。
(2)如果namenode机器挂了,文件路径丢失(磁盘,文件损坏)。用secondary namenode的fsimage来进行恢复到namenode上,时间为11点。此时,59分钟数据虽然存在于datanode上,但是editlog丢失,所以59分钟数据丢失。
注意:secondary namenode 不是一般想象中的热备节点,仅是一个定时备份节点,无法承担生产业务。


二、jps
1、jps命令为java命令 ,一般在JAVA_HOME/bin下
2、jsp 能展示本机的hdfs相关进程
[hadoop@hadoop001 ~]$ jps
43474 Jps
41330 DataNode
26232 ResourceManager
41195 NameNode
41499 SecondaryNameNode
26333 NodeManager
或者
[hadoop@hadoop001 ~]$ jps -l
41330 org.apache.hadoop.hdfs.server.datanode.DataNode
43490 sun.tools.jps.Jps
26232 org.apache.hadoop.yarn.server.resourcemanager.ResourceManager
41195 org.apache.hadoop.hdfs.server.namenode.NameNode
41499 org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode
26333 org.apache.hadoop.yarn.server.nodemanager.NodeManager
其实,jps读取的目录为这个文件下的文件:
[hadoop@hadoop001 tmp]$ cd hsperfdata_hadoop/
[hadoop@hadoop001 hsperfdata_hadoop]$ ll
total 160
-rw-------. 1 hadoop hadoop 32768 Aug 18 10:39 26232
-rw-------. 1 hadoop hadoop 32768 Aug 18 10:39 26333
-rw-------. 1 hadoop hadoop 32768 Aug 18 10:40 41195
-rw-------. 1 hadoop hadoop 32768 Aug 18 10:39 41330
-rw-------. 1 hadoop hadoop 32768 Aug 18 10:40 41499


注意:当机器异常中断后,进程全部停止后,jps发现还有残留信息,那么我们要去这个目录下将残留信息删除,再次jps 后正常。


三、文件的读写流程:
写文件流程
[hadoop@hadoop001 bin]$ hadoop fs -put wxk.log /
流程为:


client ->- FileSystemm ->- namenode
   |
FSData OnputStream
   |
datanode1 --- datanode2 --- datanode3 
(1)client 调用 FileSystem 的方法去和namenode通讯【RPC通信】
(2)namenode 检查文件是否存在,是否有权限,创建一个新文件,此文件不关联任何block块和信息,返回空对象给客户端。
(3)客户端调用一个对象FSData OutputStream ,write方法,写入datanode 产生a1。
(4)有a1 的 datanode 会向其他datanode写入a1块。
(5)最后datanode会反馈 ack package 包 写操作成功,逐层反馈 到 FSData outputStream 传递一个close 到 


client。
(6)client 通过 FfileSystem 方法 向namenode 报告 complete 。
(7)这时,namenode 中就包含了 block块信息,还有操作log。


读文件流程:


HDFS Client--rpc--open->--FileSystem对象----rpc------->---------namenode
|   |                                                                                                           |
|   |---read----> FSdataInputStream对象<------返回该文件的block块以及datanode(部分)地址列表           
|                 | |            |_________
|----<--close-----| |read               |read
                  | |                              |
                  Datanode1 ---- Datanode2 ---- Datanode3


四、进程
每个进程都会生成一个pid
pid 文件存在:
(1)进程ok
(2)进程死掉了,pid文件残留,下次启动服务时,报pid已存在,需手动删除。
[hadoop@hadoop001 tmp]$ cat hadoop-hadoop-namenode.pid 
41195
[hadoop@hadoop001 tmp]$ jps
41330 DataNode
43763 Jps
26232 ResourceManager
41195 NameNode
41499 SecondaryNameNode
26333 NodeManager


五、几个hdfs常用命令:
1、[hadoop@hadoop001 bin]$ hadoop jar //运行jar 包


2、[hadoop@hadoop001 bin]$ hadoop fs 和 hdfs dfs 是一样的,因为调用同一个类
mkdir , cat ,ls ,rm ,mv 等命令与Linux类似。


3、[hadoop@hadoop001 bin]$ hdfs dfsadmin -report // 这条命令与web界面看到的信息是一样的。


Configured Capacity: 40028807168 (37.28 GB)
Present Capacity: 27428790272 (25.55 GB)
DFS Remaining: 27428302848 (25.54 GB)
DFS Used: 487424 (476 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0
Pending deletion blocks: 0
-------------------------------------------------
Live datanodes (1):
Name: 192.168.137.11:50010 (hadoop001)
Hostname: hadoop001
Decommission Status : Normal
Configured Capacity: 40028807168 (37.28 GB)
DFS Used: 487424 (476 KB)
Non DFS Used: 10566672384 (9.84 GB)
DFS Remaining: 27428302848 (25.54 GB)
DFS Used%: 0.00%
DFS Remaining%: 68.52%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Fri Aug 18 11:57:05 CST 2017

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值