第四次课 hdfs采用Master和Slave主从架构来存储数据,由4部分组成: HDFS ?Client:客户端 文件按块切分,与Namenode交互获取文件的位置,与DataNode交互,读取或写入数据,提供访问hdfs的命令 NameNode:管理者 ?管理hdfs的名称空间,数据块的位置信息,配置副本请求,处理客户端的读写请求 DataNode:具体操作者 存储文件 执行数据块的读写操作 Secondary NameNode:辅助元数据 对NameNode的辅助 对镜像进行定期合并 HDFS的功能: 1.命名空间管理,命名空间包括目录,文件和块的信息 2.块的存储和物理存储
HDFS的工作机制: ? ? NameNode负责管理整个文件的命名信息和块信息 ? ? DataNode负责管理用户的文件数据块 DataNode会定期向NameNode汇报自身所保存的文件的块信息 客户端请求HDFS会向NameNode申请来进行访问 SecondaryNameNode会进行镜像备份和对日志与镜像进行定期合并
HDFS的写入数据的流程: 1.客户端向NameNode通信请求上传文件,NameNode检查文件是否存在,目录是否存在,向客户端返回是否可以上传 2.客户端请求第一个块应该传输到哪些DataNode服务器上,NameNode返回3个DataNode服务器的地址 3.客户端向三台DataNode 服务器中的一台来上传数据,上传完成后第一台DataNode会向第二台DataNode上传数据 上传数据以packet为单位(64KB),第一台DataNode也会向第三台DataNode上传数据
HDFS的读取数据的流程: 1.客户端和NameNode通信查询元数据的信息,找出块所在的DataNode服务器 2.挑选一台最近的DataNode请求建立socket通信 3.DataNode开始发送数据,以packet(64KB)为单位进行发送和校验 4.客户端以packet(64KB)为单位接收,先保存在本地缓存,然后写入到目标文件。
解压文件:
yarn jar /opt/wordcount0801.jar com.zr.WordCountDriver /word.txt /output0801 jar包 驱动类? 文件 新文件名 可以实现用hdfs解压eclipse中的javajar包
查看文件内容
?
|