热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HDFS简介及其功能

HDFS教程在这个HDFS教程博客中继续前进之前,让我带您介绍一些与HDFS相关的疯狂统计信息:Facebook在2010年声称拥有存储21PB数据的最

HDFS教程

在这个HDFS教程博客中继续前进之前,让我带您介绍一些与HDFS相关的疯狂统计信息:

  • Facebook在2010年声称拥有存储21 PB数据的最大HDFS集群之一。
  • 在2012年,Facebook宣布他们拥有最大的单个HDFS集群,数据量超过100 PB 。
  • 和雅虎!在运行Hadoop的40,000多台服务器上拥有超过100,000个CPU,其最大的Hadoop集群运行4,500个节点。总而言之,雅虎!在HDFS中存储455 PB的数据。
  • 事实上,到了2013年,“财富”50强中的大多数大牌都开始使用Hadoop了。

太难消化?对。正如Hadoop教程中所讨论的,Hadoop有两个基本单元 - S torage和Processing。当我说Hadoop的存储部分时,我指的是代表Hadoop分布式文件系统的HDFS。所以,在这个博客中,我将向您介绍  HDFS。

在这里,我将会谈到:

  • 什么是HDFS?
  • HDFS的优点
  • HDFS的功能

在谈论HDFS之前,让我告诉你,什么是分布式文件系统?

DFS或分布式文件系统:

分布式文件系统讨论管理数据,即跨多台计算机或服务器的文件或文件夹。换句话说,DFS是一种文件系统,允许我们将数据存储在群集中的多个节点或机器上,并允许多个用户访问数据。所以基本上,它与您的机器中可用的文件系统具有相同的用途,例如用于具有NTFS(新技术文件系统)的Windows或用于具有HFS(分层文件系统)的Mac。唯一的区别是,在分布式文件系统的情况下,您将数据存储在多台机器而不是单台机器上。即使文件存储在整个网络中,DFS也可以组织和显示数据,使坐在机器上的用户感觉所有数据都存储在该机器中。

什么是HDFS?

Hadoop分布式文件系统或HDFS是基于Java的分布式文件系统,允许您在Hadoop集群中的多个节点上存储大量数据。因此,如果您安装Hadoop,您将HDFS作为底层存储系统来存储分布式环境中的数据。

我们举个例子来理解它。想象一下,你有十台机器或十台电脑,每台机器上有1TB的硬盘。现在,HDFS表示,如果您将Hadoop作为平台安装在这十台机器上,您将获得HDFS作为存储服务。Hadoop分布式文件系统以这样的方式分发,即每台机器都有自己的存储空间来存储任何类型的数据。

HDFS教程:HDFS的优点

1.分布式存储:

分布式存储 -  HDFS教程 -  Edureka

当您从Hadoop集群中的十台机器中的任何一台访问Hadoop分布式文件系统时,您会感觉到您已经登录到一台具有10 TB存储容量的大型机器(总计存储十台以上的机器)。这是什么意思?这意味着您可以存储一个10 TB的大文件,这个文件将分布在十台机器上(每个1 TB)。所以,它不限于每台机器的物理边界。

2.分布式和并行计算:

并行处理 -  HDFS教程 -  Edureka由于数据在机器上分配,因此我们可以利用分布式和并行计算。让我们通过上面的例子来理解这个概念。假设在一台机器上处理1TB文件需要43分钟。那么,现在告诉我,如果在具有类似配置的Hadoop集群中有10台机器(43分钟或4.3分钟),处理相同的1TB文件需要多长时间?4.3分钟,对!这里发生了什么?每个节点并行处理1TB文件的一部分。因此,前四三分钟的工作,现在只需要四点三分钟完成,因为工作分了十几台机器。

3.水平可伸缩性:

水平可伸缩性和垂直可伸缩性 -  HDFS教程 -  Edureka

最后但并非最不重要的,让我们来讨论 一下Hadoop中的  横向扩展或扩展。有两种缩放比例:垂直和水平。在垂直缩放(放大)中,增加系统的硬件容量。换句话说,您购买更多的RAM或CPU,并将其添加到您的现有系统,使其更强大,更强大。但是,垂直缩放或扩大方面存在挑战:

  • 总是有一个限制,你可以增加你的硬件容量。所以,你不能继续增加机器的RAM或CPU。
  • 在垂直缩放中,您首先停止您的机器。然后增加内存或CPU,使其成为一个更强大的硬件堆栈。增加硬件容量后,重新启动机器。停机时停机成为一个挑战。

在水平缩放(横向扩展)的情况下,您可以向现有集群添加更多节点,而不是增加单个机器的硬件容量。而最重要的是,你可以添加更多的机器, 即不停止系统。因此,在扩大规模的同时,我们没有任何停机时间或绿色地带,没有任何类似的东西。在一天结束时,您将有更多的机器并行工作,以满足您的要求。

HDFS教程:  HDFS的功能

当我们将在下一个HDFS教程博客中探索HDFS体系结构时,我们将详细了解这些功能。但是,现在让我们来看看HDFS的特性:

  • 成本:  一般来说,HDFS部署在商用硬件上,例如您每天使用的台式机/笔记本电脑。所以,在项目的拥有成本方面是非常经济的。因为我们使用的是低成本的商品硬件,所以您无需花费大量资金来扩展Hadoop集群。换句话说,增加更多的节点到你的HDFS是成本效益的。
  • 数据的种类和数量:  当我们谈论HDFS的时候,我们谈论的是存储巨大的数据,即TB级和PB级的数据和不同类型的数据。所以,您可以将任何类型的数据存储到HDFS中,无论是结构化的,非结构化的还是半结构化的。
  • 可靠性和容错性:  当您将数据存储在HDFS上时,它会将给定的数据内部分割为数据块,并以分布的方式将其存储在Hadoop集群中。关于哪个数据块位于哪个数据节点上的信息被记录在元数据中。NameNode管理元数据, DataNode负责存储数据。
    名称节点也复制数据,即维护数据的多个副本。数据的这种复制使得HDFS非常可靠和容错。因此,即使任何节点失败,我们也可以从驻留在其他数据节点上的副本中检索数据。默认情况下,复制因子为3.因此,如果将1 GB的文件存储在HDFS中,则最终将占用3 GB的空间。名称节点定期更新元数据并保持复制因子一致。
  • 数据完整性:  数据完整性将讨论存储在我的HDFS中的数据是否正确。HDFS不断检查存储的数据的完整性与其校验和。如果发现任何错误,它会向名称节点报告。然后,名称节点创建额外的新副本,因此删除损坏的副本。
  • 高吞吐量:吞吐量是单位时间内完成的工作量。它讨论了如何从文件系统访问数据的速度。基本上,它给你一个关于系统性能的见解。正如你在上面的例子中看到的那样,我们共用十台机器来增强计算。在那里我们能够将处理时间从 43分钟缩短到只有  4.3分钟,因为所有的机器都在并行工作。因此,通过并行处理数据,我们大大减少了处理时间,从而实现了高吞吐量。 
  • 数据局部性: 数据局部性讨论的是将处理单元移动到数据而不是数据到处理单元。在我们的传统系统中,我们曾经把数据带到应用层,然后进行处理。但是现在,由于数据的体系结构和庞大的数据量,把数据带到应用层会使网络性能显着降低。因此,在HDFS中,我们将计算部分带到数据所在的数据节点。因此,你不移动数据,你正在把程序或处理部分的数据。 

所以现在,您对HDFS及其功能有一个简单的概念。但请相信我,这仅仅是冰山一角。在我的下一个HDFS教程博客中,我将深入探索HDFS 体系结构,并将揭开HDFS成功背后的秘密。我们将一起回答所有在你脑海中琢磨的问题,例如:

    • 在Hadoop分布式文件系统中读取或写入数据时,幕后会发生什么?
    • 像机架感知这样的算法是什么使得HDFS具有如此容错性?
    • Hadoop分布式文件系统如何管理和创建副本?
    • 什么是块操作?

转载于:https://www.cnblogs.com/cbliu/p/10399166.html


推荐阅读
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 【Windows】实现微信双开或多开的方法及步骤详解
    本文介绍了在Windows系统下实现微信双开或多开的方法,通过安装微信电脑版、复制微信程序启动路径、修改文本文件为bat文件等步骤,实现同时登录两个或多个微信的效果。相比于使用虚拟机的方法,本方法更简单易行,适用于任何电脑,并且不会消耗过多系统资源。详细步骤和原理解释请参考本文内容。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
author-avatar
懿切瀡纟彖_639
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有