2021-10-14 大数据应用继续学习(二)

三HDFS分布式文件系统

HDFS系统结构 、HDFS存储原理,与数据读写过程

3.1 HDFS简介

HDFS: Hadoop distributed file system
两大核心(分布存储与分布处理)技术之一

分布式文件系统
单机无法存储,借助集群来存储
在这里插入图片描述
计算机集群基本架构
在这里插入图片描述
文件系统结构
在这里插入图片描述
设计目标
在这里插入图片描述
hdfs自身局限性

在这里插入图片描述

3.2HDFS相关概念

块:64-128M

在这里插入图片描述
在这里插入图片描述
缺点:

在这里插入图片描述
设计优点:
1.切块存储大文件
2.简化系统设计
3.对数据备份
在这里插入图片描述

HDFS 两大组件
NameNode 与 DataNode
在这里插入图片描述

元数据
一个hdfs节点称为元数据
在这里插入图片描述

名称节点:

FsImage :系统文件数
EditLog:对数据创建、删除、重命名

在这里插入图片描述

fsImage不维护信息在哪里储存,单独保存,铜鼓名称节点与数据节点实时沟通来维护这个信息。在这里插入图片描述
运行流程在这里插入图片描述
导致EditLog不断增大,引入secondaryNode

在这里插入图片描述

对editlog处理

在这里插入图片描述
第二节点定期与名称节点进行通信
在这里插入图片描述
停止写旧的editlog后,名称节点创建新的edit.new,第二节点获取http get方式获取FsIamge与EditLog在这里插入图片描述
第二节点会和平成新的FSImage传给名称节点在这里插入图片描述
名称节点最后将Edit.new 更改为新的EditLog
在这里插入图片描述
数据节点
在这里插入图片描述

3.3 HDFS体系结构

在这里插入图片描述
命名空间与文件类似,层次目录
在这里插入图片描述
HDFS通信协议
在这里插入图片描述
局限性

1.所有数据保存在内存中,内存有上限
2. 吞吐受到单节点限制
3. 隔离空间问题,只有一个命名空间
4. 集群单点故障
5.
在这里插入图片描述
在这里插入图片描述
为了改进HDFS2.0,做出了热备与名称节点
在这里插入图片描述

3.4HDFS存储原理

  1. 冗余数据保存
  2. 数据保存策略
  3. 数据恢复
    在这里插入图片描述
    廉价机器容易出问题,一块保存三块(默认)可以设置为1,2,3,4
    伪分布式:名称节点和数据节点放同一机器上,冗余因子为1

好处:
1.加快传输速度
2.容易检查数据错误
3.数据可靠性
在这里插入图片描述
块: 节点为机器,

在这里插入图片描述
数据存储:

第一块来了后,复制为3份
第一副本:哪个要就放到哪个节点,外部请求则选不满数据,处理不忙的节点上

第二副本:放在不同一副本节点上面去,

第三节点:放在一副本相同节点不同datanode上
在这里插入图片描述
数据读取:就近原则

HDFS提供API确定数据节点所属机架的ID,客户端可调用API获取自己所属机架ID
在这里插入图片描述
数据错误和恢复

名称节点出错
在这里插入图片描述

数据节点出错:
定期向NameNode发送消息,不发送消息则出故障
在这里插入图片描述
负载均衡

数据本身出错:校验码校验

在这里插入图片描述

3.5 HDFS数据的读写

代码示意在这里插入图片描述

背后原理:

Hadoop 中有FileSyetem 父类 派生子类
在这里插入图片描述
定义类加载配置文件在这里插入图片描述

1,2,3在这里插入图片描述

4,5,6

在这里插入图片描述
7,在这里插入图片描述

3.6hdfs编程实践

利用设立了命令与HDFS进行交互
1. hadoop fs:
适用于任何不同文件系统,比如本地文件系统和HDFS文件系统
2. hadoop dfs
只适用于HDFS文件系统
3. hdfs dfs
只适用于hdfs文件系统

正常开启Hadoop 进入安装文件/usr/local/hadoop
./sbin/start-dfs.sh 进行启动

使用jps 查看启动情况
在这里插入图片描述

第一步为Hadoop创建家目录,在上一步的操作目录下使用以下命令

./bin/hdfs  dfs  -mkdir -p /user/hadoop
# -p  为创建多层目录
#然后查看创建情况
./bin/hdfs dfs -ls /
#   在hadoop家目录  (/user/hadoop/   可以使用  “."  来代替)    
直接使用 ./bin/hdfs dfs mkdir  **  相当于在家目录下创建子目录**)

删除命令

#删除命令  和上面 -mkdir相似  替换成 -rm
./bin/hdfs dfs -rm -r /user/hadoop 
加-r 表示删除文件夹

hdfs与本地文件系统传递文件
将ubantu 本地桌面文件传入到Hadoop中去

# 进入Hadoop工作目录(设置环境变量可省略此步)
./bin/hdfs dfs -put  ~/Desktop/mylocalfile 
# 查看结果
./bin/hdfs dfs -ls  .

在这里插入代码片

在这里插入图片描述

** 从 hdfs 中文件下载到本地**

./bin/hdfs dfs -get  /user/hadoop/mylocalfile  ~/Desktop
#第一目录为hdfs目录,第二为本地文件目录

** 在hdfs中进行文件移动复制**

# 在hadoop 操作目录下
./bin/hdfs dfs -cp  + 源文件地址   目的地址

3.7 hdfs web UI界面管理

默认端口为 9870
在浏览器 输入 127.0.0.1:9870 即可打开

在这里插入图片描述

在此界面可以查看相应的信息。

猜你喜欢

转载自blog.csdn.net/huangdxian/article/details/120771149