大数据学习(3)- 分布式文件系统HDFS

文章目录

  • 目录
    • 1.分布式文件系统
      • 1.1 计算机集群概念
      • 1.2 分布式文件系统结构
    • 2.HDFS简介
      • 2.1 HDFS设计的目标
      • 2.2HDFS的局限性
      • 2.3 块的概念
      • 2.4 HDFS主要组件及其功能
        • 2.4.1 名称节点
        • 2.4.2 第二名称节点
        • 2.4.3 数据节点
    • 3.HDFS体系结构
      • 3.1 HDFS体系结构介绍
      • 3.2 HDFS体系结构的局限性
    • 4.HDFS存储原理
      • 4.1 冗余数据保存
      • 4.2 数据存取策略
      • 4.3 数据错误和恢复
        • 4.3.1 名称节点出错
        • 4.3.2 数据节点出错
        • 4.3.3 数据出错
    • 5.HDFS数据读写过程
      • 5.1 数据读取过程
      • 5.2 数据存储过程
      • 5.3 读写介绍![在这里插入图片描述](https://img-blog.csdnimg.cn/20190329165747536.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbmd6aTExMTExMTEx,size_16,color_FFFFFF,t_70)
        • 5.3.1 读数据过程
        • 5.3.2 写数据过程
    • 6.HDFS编程实践
      • 6.1 HDFS常用命令
      • 6.2 HDFS的web界面

目录

1.分布式文件系统

1.1 计算机集群概念

在这里插入图片描述

Hadoop的分布式文件存储,使得文件的存储不在依赖于计算机性能,普通的计算机也可以组件集群。

1.2 分布式文件系统结构

在这里插入图片描述

2.HDFS简介

2.1 HDFS设计的目标

  • 兼容廉价的硬件设备
  • 流数据的读写
  • 大数据集的存储于管理
  • 简单的文件模型
  • 强大的跨平台性能

2.2HDFS的局限性

  • 不适合低延迟的数据访问(HBASE支持实时访问)
  • 无法高效的存储大量的小文件(nameNode节点的存储有限,如果小文件过多,元数据就多)
  • 不支持多用户写入及任意修改

2.3 块的概念

在这里插入图片描述

2.4 HDFS主要组件及其功能

在这里插入图片描述

2.4.1 名称节点

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

2.4.2 第二名称节点

在这里插入图片描述

2.4.3 数据节点

  • 数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索,并且向名称节点定期发送自己所存储的块的列表
  • 每个数据节点中的数据会被保存在各自节点的本地Linux文件系统中

3.HDFS体系结构

3.1 HDFS体系结构介绍

在这里插入图片描述

  • HDFS的命名空间包含目录、文件和块
  • 在HDFS1.0体系结构中,在整个HDFS集群中只有一个命名空间,并且只有唯一一个名称节点,该节点负责对这个命名空间进行管理
  • HDFS使用的是传统的分级文件体系,因此,用户可以像使用普通文件系统一样,创建、删除目录和文件,在目录间转移文件,重命名文件等
    在这里插入图片描述
    在这里插入图片描述

3.2 HDFS体系结构的局限性

在这里插入图片描述

4.HDFS存储原理

4.1 冗余数据保存

在这里插入图片描述

4.2 数据存取策略

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

4.3 数据错误和恢复

HDFS具有较高的容错性,可以兼容廉价的硬件,它把硬件出错看作一种常态,而不是异常,并设计了相应的机制检测数据错误和进行自动恢复,主要包括以下几种情形:名称节点出错、数据节点出错和数据出错。

4.3.1 名称节点出错

  • 名称节点保存了所有的元数据信息,其中,最核心的两大数据结构是FsImage和Editlog,如果这两个文件发生损坏,那么整个HDFS实例将失效。因此,HDFS设置了备份机制,把这些核心文件同步复制到备份服务器SecondaryNameNode上。当名称节点出错时,就可以根据备份服务器SecondaryNameNode中的FsImage和Editlog数据进行恢复。

4.3.2 数据节点出错

在这里插入图片描述

4.3.3 数据出错

  • 网络传输和磁盘错误等因素,都会造成数据错误
  • 如何判断数据出错:HDFS在创建每个文件的时候,都默认给出了一个校验码,在读取文件的时候,会比对校验码,如果校验码没有错,则数据没有出错。
  • 在文件被创建时,客户端就会对每一个文件块进行信息摘录,并把这些信息写入到同一个路径的隐藏文件里面
  • 当客户端读取文件的时候,会先读取该信息文件,然后,利用该信息文件对每个读取的数据块进行校验,如果校验出错,客户端就会请求到另外一个数据节点读取该文件块,并且向名称节点报告这个文件块有错误,名称节点会定期检查并且重新复制这个块

5.HDFS数据读写过程

HDFS支持两种方式的交互,我们可以自由的选择shell和java的方式。

5.1 数据读取过程

在这里插入图片描述

5.2 数据存储过程

在这里插入图片描述

5.3 读写介绍在这里插入图片描述

5.3.1 读数据过程

在这里插入图片描述

5.3.2 写数据过程

在这里插入图片描述

6.HDFS编程实践

参考链接:http://dblab.xmu.edu.cn/blog/290-2/
在这里插入图片描述
在这里插入图片描述

6.1 HDFS常用命令

  • hadoop fs -ls :显示指定的文件的详细信息
  • hadoop fs -mkdir :创建指定的文件夹
  • hadoop fs -cat :将指定的文件的内容输出到标准输出(stdout)
  • hadoop fs -copyFromLocal :将本地源文件复制到路径指定的文件或文件夹中

6.2 HDFS的web界面

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445367.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 图片转简单字符画

字符画是一系列字符的组合,我们可以把字符看作是比较大块的像素,一个字符能表现一种颜色(暂且这么理解吧),字符的种类越多,可以表现的颜色也越多,图片也会更有层次感。 灰度值:指黑…

大数据学习(4)--分布式数据库HBase

文章目录目录1.HBase概述1.1BigTable1.2 HBase简介1.3 HBase和传统的关系型数据库之间的区别2.HBase访问接口3.HBase数据模型3.1 数据模型概述3.2 数据模型相关概念3.3 数据坐标3.4 概念视图3.5 物理视图3.6 面向列的存储4.HBase的实现原理4.1 HBase功能组件4.2 表和region4.3 …

servlet中的数据存储

在servlet基础中,我们: 用以下几种方式实现数据存储和共享: 1)在客户端页面和服务器端程序之间,用request中的getParameter()方法共享数据 2)在请求和请求之间,可以用get/setAttribute方法来共…

Linux(2)-tar,find,grep,xargs

常用命令1. 打包压缩/解包解压缩 tar1.1 打包 tar -czvf xxx.tar.gz xxx1.2 解压 tar -xzvf xxx.tar.gz2.文件/目录搜索2.1 find文件/目录查找2.2 grep文本匹配3. 复合命令3.1 > 重定向3.2 | 管道.shutdown1. 打包压缩/解包解压缩 tar tar和gzip是对黄金搭档:ta…

Event Recommendation Engine Challenge(基础版)---代码

第一步:统计user和event相关信息 #查看train_csv的数据 import pandas as pd df_train pd.read_csv(train.csv) df_train.head()usereventinvitedtimestampinterestednot_interested03044012191877122502012-10-02 15:53:05.75400000:000013044012150228424802012…

servlet——三兄弟的另外两个:过滤器/监听器

过滤器 我们写多了servlet会发现,很多代码和功能是重复的,比如:解决中文乱码问题、权限验证、日志的记录等,他们的特点是:代码相同或相似、分散在不同位置、不利于维护。 过滤器就是他们的解决办法。 过滤器是请求到…

矩阵论-线性变换的特征值与特征变换

线性空间与线性变换综述1.2 线性变换及其矩阵1.2.3 特征值与特征向量综述 本系列博文主要总结学习矩阵论的心得笔记,参考数目《矩阵论》–张凯院;整个文章的整理体系参照行书过程。 1.2 线性变换及其矩阵 1.2.3 特征值与特征向量 本节讨论如何选择线…

Python(1)-源起、设计目标、设计哲学、特点

python简介1. python的起源2. 解释器3. python 语言的设计目标4. python 语言的设计哲学5. Python 特点人生苦短,我用python–吉多范罗苏姆(Guido van Rossum)1. python的起源 1989年吉多在圣诞节想写一个新的解释程序作为ABC语言的继承者。…

kaggle(05)---Event Recommendation Engine Challenge(基础版)

文章目录目录1.比赛相关介绍1.1 比赛介绍1.2 数据集介绍1.3 评价标准介绍1.4 个人理解2. 解决方案2.1 统计用户和event信息2.2 计算用户相似度2.3 用户社交关系信息处理2.4 构建event和event相似度数据2.5 活跃度/event热度数据2.6 构建特征2.7 模型构建和预测3. 遇到的问题4. …

多校一道KMP+DP的题

难啊,多校当时根本不会做 题目描述 White Cloud has a rectangle carpet of n*m. Grid (i,j) has a color colorA[i][j] and a cost costA[i][j]. White Rabbit will choose a subrectangle B of p*q from A and the color of each grid is colorB[0...p-1][0..…

Python(2)-第一个python程序、执行python程序三种方式

第一个Python 程序1. 第一个Python 程序2. 常用两Python个版本3. 程序执行的三种方式3.1 解释器3.2 交互式运行Python程序3.3 IDE(集成开发环境)-pycharm1. 第一个Python 程序 Python 源程序就是一个特殊格式的文本文件,所以可以采用任意的文…

推荐算法---FM,协同过滤

文章目录目录1.FM算法产生背景2.FM算法模型3.FM算法VS其他算法4.推荐算法总结目录 1.FM算法产生背景 在传统的线性模型如LR中,每个特征都是独立的,如果需要考虑特征与特征直接的交互作用,可能需要人工对特征进行交叉组合;非线性…

借助桶排序思想完成的一道题

问题: 数组排序之后的相邻数的最大差值; 嗯,你可以排序,然后找相邻的最大差值。 但是你觉得这么简单我写他干啥。 最优解:时间复杂度O(N),空间O(1) 那我们开始说这种方法: 1)遍…

Python(3)-Pycharm基本使用技巧

初识Pycharm1.界面2.恢复初始设置3.第一次打开Pycharm4.打开一个项目5.设置解释器的版本。6.新建项目7.编辑器、控制台的字体设置Pycharm–适合于开发管理大型项目,项目是用以解决复杂功能的软件。1.界面 导航区–主要有什么文件 编辑区–编辑具体的文件 控制台窗口…

推荐算法概述(01)

1.什么是推荐系统 用户没有明确的需求,你需要的是一个自动化的工具,它可以分析你的历史兴趣,从庞大的电影库中找到几部符合你兴趣的电影供你选择。这个工具就是个性化推荐系统。 推荐系统的主要任务 推荐系统的任务就是联系用户和信息&…

CSDN-Markdown编辑器使用小技巧

Markdown编辑器使用小技巧1.图片无法显示1.图片无法显示 1.检查图片的命名格式是否正确,数字不能作为图片名称开头,虽然window操作系统下能够识别,但是导入图片的时候会造成无法显示的错误。

何为布隆过滤器

问题的提出 我们有一个不安全网页的黑名单,包含了100亿个黑名单网页的URL,每个网页URL最多占用64B.。 现在我们要设计一个网页过滤系统,这个系统要判断该网页是否在黑名单里,但是我们的空间有限,只有30GB. 允许有万分之一的判断…

推荐算法--利用用户行为数据(02)

文章目录目录1.什么是用户行为数据?1.1用户行为分类2.用户行为数据如何使用?2.1 用户活跃度和物品流行度的分布2.2 用户活跃度和物品流行度的关系2.3 协同过滤算法3.实验设计和算法评测4.基于邻域的的推荐算法4.1 基于用户的协同过滤算法4.2 基于物品的协…

《Head First设计模式》第九章(2)组合模式

组合模式 ​ 基于前一篇迭代模式的案例进行需求更新,餐厅的菜单管理系统需要有煎饼屋菜单和披萨菜单。现在希望在披萨菜单中能够加上一份餐后甜点的子菜单。 在迭代模式中,披萨菜单是用数组维护的,我们需要让披萨菜单持有一份子菜单&#xf…