Hadoop分布式文件系统(HDFS)

HDFS

HDFS (Hadoop分布式文件系统)是主要的存储系统由Hadoop应用程序使用。这种开源框bob下载地址架是通过迅速节点之间传输数据。它常常被公司需要处理和存储大数据。HDFS许多Hadoop系统是一个关键组成部分,因为它提供了一种方法来管理大数据,以及支持大数据分析。

有许多公司在全球范围内,使用HDFS,那么它到底是什么,为什么需要它?让我们来深入了解HDFS是什么和为什么它可能是有用的企业。

HDFS是什么?

HDFS代表Hadoop分布式文件系统。HDFS运行作为一个分布式文件系统设计的硬件上运行。

HDFS容错和设计是部署在低成本、商品硬件。HDFS提供高吞吐量数据访问应用程序数据,适用于大型数据集,使流媒体应用程序访问文件系统中的数据Apache Hadoop

所以,Hadoop是什么?从HDFS如何变化?核心区别Hadoop的HDFS是Hadoop是开源框架,它可以存储,处理和分析数据,而HDFS的Hadoop文件系统提供对数据的bob下载地址访问。这基本上意味着Hadoop的HDFS是一个模块。

让我们看看HDFS架构:

hdsarchitecture形象

正如我们所看到的,它关注namenode, datanode。NameNode是包含GNU / Linux操作系统的硬件和软件。Hadoop分布式文件系统充当主服务器可以管理文件,控制客户的访问文件,和海外文件重命名等操作流程,打开和关闭文件。

一个DataNode硬件的GNU / Linux操作系统和DataNode软件。对于在HDFS集群中的每个节点,您将找到一个DataNode。这些节点帮助控制他们的数据存储系统,因为他们可以在文件系统上执行操作,如果客户端请求,以及创建、复制和块文件当NameNode指示。

HDFS的意义和目的是实现以下目标:

  • 管理大型数据集——组织和存储数据集可以是一个很难处理的讨论。HDFS被用来管理应用程序必须处理巨大的数据集。为此,HDFS应该数百每个集群节点。
  • 检测故障——HDFS应该技术来扫描和检测故障快速、有效,因为它包含大量的商品硬件。失败的组件是一个常见的问题。
  • 硬件效率——当涉及大型数据集可以减少网络流量,提高处理速度。

HDFS的历史

Hadoop的起源是什么?HDFS的设计是基于Google文件系统。最初是作为Apache Nutch基础设施建造的web搜索引擎项目但已经成为的一员Hadoop生态系统

在早些年的互联网,网络爬虫开始流行,人们搜索web页面上的信息。这创造了各种搜索引擎如雅虎和谷歌。

它还创建了另一个搜索引擎Nutch,想同时分发数据跨多个计算机和计算。Nutch然后搬到雅虎,并分为两个。Apache Hadoop火花,现在自己的独立的实体。Hadoop是设计用于处理批处理,火花是有效地处理实时数据。

如今,Hadoop的结构和框架由Apache软件基金会管理这是一个全球社区的软件开发人员和贡献者。

HDFS出生,旨在取代硬件存储解决方案与一个更好的,更有效的方法——虚拟文件系统。当它第一次到现场,MapReduce是唯一的分布式处理引擎,可以使用HDFS。最近,替代Hadoop数据服务组件(比如HBase和Solr还利用HDFS来存储数据。

HDFS的大数据是什么?

那么,什么是大数据和HDFS如何进入呢?“大数据”一词指的是所有的数据难以储存,处理和分析。HDFS大数据是数据组织成HDFS文件系统。

我们现在知道,Hadoop是一个框架,通过使用并行处理和分布式存储工作。这可以用来存储大数据,因为它不能存储在传统的生产方式。

事实上,它是最常用的软件来处理大数据,并使用Netflix等公司Expedia,英国航空公司(British Airways)有积极的人使用Hadoop的关系数据存储。HDFS在大数据是至关重要的,因为这是现在许多企业选择如何存储数据。

有五个核心元素的大数据由HDFS服务:

  • 速度生成速度数据,整理和分析。
  • 体积生成的数据量。
  • 各种的数据类型,这可能是结构化、非结构化等。
  • 真实性——数据的质量和准确性。
  • 价值——如何使用这些数据将一个洞察你的业务流程。

Hadoop分布式文件系统的优点

内的一个开源bob下载地址子项目Hadoop, HDFS提供五个核心利益在处理大数据:

  1. 容错。HDFS被设计来检测故障并自动恢复迅速确保连续性和可靠性。
  2. 速度,因为它的集群架构,它可以维持每秒2 GB的数据。
  3. 对更多类型的数据的访问,特别是流媒体数据。因为它的设计来处理大量数据的批处理它允许高数据吞吐率使它理想流数据的支持。
  4. 兼容性和可移植性。HDFS被设计为跨多种硬件设置和移植兼容多个底层操作系统最终用户提供可选性使用HDFS自己定制的设置。这些优势尤为重要在处理大数据,用特定的方式HDFS处理数据成为可能。

    这个图展示了一个本地文件系统和HDFS的区别。

    hadoop的hdfs

  5. 可伸缩的。您可以扩展资源根据您的文件系统的大小。HDFS包括垂直和水平可伸缩性的机制。
  6. 数据本地化。在Hadoop文件系统,数据驻留在数据节点,而不是数据移动到计算单元的位置。通过缩短之间的距离数据和计算过程,减少网络拥塞,使系统更加有效和高效。
  7. 成本效益。最初,我们认为数据时我们可能认为昂贵的硬件和带宽占用。硬件故障发生时,它可以是非常昂贵的修复。HDFS,数据存储廉价的虚拟,可大大减少文件系统元数据和文件系统名称空间数据存储成本。更重要的是,因为HDFS是开源的,企业不需要担心需要支付许bob下载地址可费用。
  8. 存储大量的数据。数据存储是HDFS是什么——这意味着数据的所有品种和大小——尤其是大量数据从企业正在努力储存它。这包括结构化和非结构化数据。
  9. 灵活的。不像其他更传统的存储数据库,不需要处理数据之前收集存储它。你能够存储你想要尽可能多的数据,有机会决定你想做什么以及如何使用它。这也包括非结构化数据如文本、视频和图片。

如何使用HDFS

那么,如何使用HDFS吗?HDFS与一个主要NameNode和多个其它datanode所有商品硬件集群上。这些节点在同一个地方组织在数据中心内。接下来,它的分解成块分布在多个datanode用于存储。为了减少数据丢失的可能性,块往往跨节点复制。这是一个备份系统数据应该丢失。

让我们看看namenode。NameNode是集群中的节点知道数据包含什么,阻止它属于什么,块大小,它应该去的地方。namenode也用于访问控制文件包括当有人能写,读,创建、删除和复制数据在各种数据笔记。

实时集群也可以适应在必要时,根据服务器容量时——这可能是有用的数据激增。节点可以在必要时添加或带走。

现在,datanode上。datanode在不断的交流与namenode确定他们是否需要开始和完成一项任务。这一致的协作流意味着NameNode是敏锐地意识到每个datanode的地位。

当一个DataNode指出不会操作它应该的方式,namemode能够自动重新分配任务到另一个功能节点在同一个datablock。同样,datanode也能够相互通信,这意味着他们可以合作在标准文件操作。因为NameNode知道datanode和他们的表现,他们在维护系统至关重要。

Datablocks复制多个datanotes NameNode和访问。

使用HDFS需要安装和设置一个Hadoop集群。这可能是一个单独的节点设置,哪个更适合第一次使用或集群设置大型分布式集群。你需要熟悉HDFS命令,如以下,操作和管理系统。

命令

描述

rm

删除文件或目录

- ls

列表文件权限和其他细节

mkdir

创建一个名为路径的目录在HDFS

显示文件的内容

删除文件夹

删除一个目录

——

上传一个文件或文件夹从本地磁盘到HDFS

-rmr

删除文件的路径或文件夹和子文件夹

在闲暇

移动文件或文件夹从HDFS到本地文件

计数的文件数量,数量的目录和文件大小

df

显示了自由空间

-getmerge

在HDFS合并多个文件

修改文件权限

修改文件权限

-copyToLocal

将文件复制到本地系统

统计

打印文件或目录统计信息

——头

显示第一个千字节的文件

使用

返回一个单独的命令的帮助

乔恩

分配一个新文件的所有者和组

HDFS是如何工作的呢?

如前所述,HDFS使用namenode和datanode。HDFS允许快速计算节点之间传输的数据。HDFS接收数据时,它能够将信息分解成块,分发给不同的集群中的节点。

数据分解成块,分布在datanode存储,这些块也可以跨节点复制它允许高效的并行处理。你可以访问、移动通过各种命令和视图数据。HDFS DFS选项等“-”“——”允许您检索和移动数据。

更重要的是,HDFS被设计成高度警觉和可以快速检测故障。文件系统使用数据复制,确保每一块数据多次保存,然后分配在各个节点,保证至少有一份是比其他副本不同的架子上。

这意味着当一个DataNode NameNode不再发送信号,它消除了DataNode的集群和运营没有它。如果这个数据节点然后回来,它可以被分配给一个新的集群。加上,因为datablocks跨几个datanode复制,删除一个不会导致任何类型的任何文件错误了。

HDFS组件

重要的是要知道Hadoop有三个主要组成部分。Hadoop的HDFS, Hadoop MapReduce和Hadoop纱。让我们来看看这些组件将Hadoop:

  • Hadoop的HDFSHadoop分布式文件系统(HDFS) Hadoop的存储单元。
  • Hadoop MapReduce——Hadoop MapReduce是Hadoop的处理单元。此软件框架用于编写应用程序来处理大量的数据。
  • Hadoop纱——Hadoop Hadoop的纱是一种资源管理组件。流,批处理流程和运行数据交互和图形处理——所有这一切都是存储在HDFS中。

如何创建一个HDFS文件系统

想知道如何创建HDFS文件系统?遵循以下步骤将指导您如何创建系统,编辑它,如果需要删除它。

清单你HDFS

你的清单应该HDFS/ user / yourUserName。要查看HDFS的主目录的内容,输入:

hdfs dfs - ls

当你刚刚开始,你将无法看到任何在这个阶段。当你想要查看一个非空目录的内容,输入:

hdfs dfs- - - - - -ls/用户

你可以看到的名字其他Hadoop用户的主目录。

在HDFS中创建一个目录

您现在可以创建一个测试目录,我们叫它testHDFS。它将会出现在你的HDFS。只要输入以下:

hdfs dfs mkdir testHDFS

现在你必须验证时输入的目录存在通过使用命令清单你的HDFS。您应该看到testHDFS目录列出。

验证一遍使用HDFS HDFS完整路径名。输入:

hdfs dfs- - - - - -ls/用户/yourUserName

仔细检查,这是在你工作的下一个步骤。

复制一个文件

从您的本地文件系统复制一个文件到HDFS,首先创建一个文件你想复制。要做到这一点,输入:

回声“HDFS测试文件”> >测试文件

这将创建一个新文件称为测试文件,包括字符HDFS测试文件。为了验证这一点,输入:

ls

然后创建验证文件,输入:

猫测试文件

然后,您将需要将文件复制到HDFS。从Linux到HDFS复制文件,您需要使用:

hdfs dfs -copyFromLocal测试文件

请注意,您必须使用该命令“-copyFromLocal”因为命令“- cp”用于在HDFS中复制文件。

现在你只需要确认文件正确复制。通过输入以下:

代码> hdfs dfs - lshdfs dfs猫测试文件

移动和复制文件

当复制测试文件放入基地主目录。现在你可以移动它到testHDFS目录中你已经创建。使用以下:

hdfs dfs mv测试文件testHDFShdfs dfs - lshdfs dfs - ls testHDFS /

第一部分搬到你的测试文件从HDFS测试创建一个主目录。这个命令之后的第二部分告诉我们,它不再是HDFS主目录,和第三部分证实,现在已经搬到测试HDFS目录。

复制一个文件,输入:

hdfs testHDFS dfs - cp /测试文件testHDFS / testFile2hdfs dfs - ls testHDFS /

检查磁盘使用情况

检查磁盘空间是非常有用的,当你使用HDFS。要做到这一点,你可以输入以下命令:

hdfs dfs在

这将会让你看到你在HDFS使用多少空间。您还可以查看多少空间可以在HDFS跨集群通过输入:

hdfs dfs df

删除一个文件/目录

可能会有一段时间当你需要HDFS中删除一个文件或目录。这可以通过命令来实现:

hdfs dfs rm testHDFS /测试文件hdfs dfs - ls testHDFS /

你会发现你还有testHDFS目录,testFile2吃剩的创建。删除目录通过输入:

hdfs dfs删除文件夹testhdfs

它会弹出一个错误信息——但不要恐慌。好像会读“删除文件夹:testhdfs:目录非空”。目录需要空才能被删除。您可以使用“rm”命令来绕过这和删除一个目录包括所有它所包含的文件。输入:

hdfs dfs rm - r testHDFShdfs dfs - ls

如何安装HDFS

安装Hadoop,你需要记住,有一个singlenode和多节点。取决于您需要,您可以使用singlenode或多节点集群。

单个节点集群意味着只有一个DataNode正在运行。它将包括NameNode, DataNode,资源管理器,一台机器上和节点管理器。

对某些行业来说,这是所有我需要做的。例如,在医疗领域,如果你进行研究,需要收集,分类,和过程数据序列,你可以使用一个singlenode集群。这可以很容易地处理数据规模较小,相对于数据分布在许多数以百计的机器。安装一个singlenode集群,遵循这些步骤:

  1. 下载Java 8包。保存这个文件在您的主目录。
  2. 提取Java Tar文件。
  3. Hadoop 2.7.3包下载。
  4. 提取Hadoop tar文件。
  5. 在bash中添加Hadoop和Java路径文件(. bashrc)。
  6. Hadoop编辑配置文件。
  7. 开放的核心位点。xml和编辑属性。
  8. 编辑hdfs-site.xml和编辑属性。
  9. 编辑mapred-site.xml文件和编辑属性。
  10. 编辑yarn-site.xml和编辑属性。
  11. 编辑hadoop-env.sh并添加Java路径。
  12. NameNode Hadoop主目录和格式。
  13. hadoop-2.7.3 / sbin目录和所有守护进程的开始。
  14. 检查所有Hadoop服务正在运行。

你拥有它,你现在应该有一个成功安装的HDFS。

如何访问HDFS文件

将不足为奇安全紧张在HDFS,鉴于我们处理数据。HDFS虚拟存储技术,它跨越集群所以你只能看到在您的文件系统的元数据,您无法查看实际的具体数据。

访问HDFS文件可以下载“罐子”从HDFS文件到你的本地文件系统。您还可以访问HDFS使用它的web用户界面。只是打开你的浏览器和类型“localhost: 50070”搜索栏。从这里,您可以看到HDFS的web用户界面和移动工具选项卡在右边。然后点击“浏览文件系统,“这显示了一个完整的列表的文件位于您的HDFS。

HDFS DFS的例子

下面是一些最常见的Hadoop命令的例子。

一个例子

删除一个目录您需要应用以下(注意:这个只能如果文件是空的):

Hadoop美元fs删除目录/目录- name

hdfs美元dfs删除目录/目录- name

例B

当你有多个文件在一个HDFS中,您可以使用一个“-getmerge”命令。这将多个文件合并成一个文件,你可以下载到你的本地文件系统。你可以用以下:

Hadoop fs美元- - - - - -getmerge [- - - - - -问)//当地的- - - - - -目的地

hdfs dfs美元- - - - - -getmerge [- - - - - -问)//当地的- - - - - -目的地

示例C

当你想要从HDFS本地上传文件,您可以使用“——”命令。你指定你想复制的地方,什么文件你想复制到HDFS。使用以下:

Hadoop fs美元- - - - - -/当地的- - - - - -文件- - - - - -路径/hdfs- - - - - -文件- - - - - -路径

hdfs dfs美元- - - - - -/当地的- - - - - -文件- - - - - -路径/hdfs- - - - - -文件- - - - - -路径

例D

伯爵命令用来跟踪目录的数量,在HDFS文件和文件大小。您可以使用以下:

Hadoop fs计数/ hdfs-file-path美元

hdfs dfs计数/ hdfs-file-path美元

例如E

“乔恩”命令可以用来改变文件的所有者和组。激活,使用以下:

Hadoop fs美元- - - - - -乔恩(- - - - - -R][所有者][:(集团]]hdfs- - - - - -文件- - - - - -路径

hdfs dfs美元- - - - - -乔恩(- - - - - -R][所有者][:(集团]]hdfs- - - - - -文件- - - - - -路径

HDFS存储是什么?

我们现在知道,HDFS数据存储在称为块。这些模块是数据的最小单位,可以存储的文件系统上。文件处理和分解成这些块,然后采取跨集群和分布式,也为安全复制。通常,每一块可以被复制三次。这个图表显示了大数据,以及它如何可以存储在HDFS。

主要qimg

第一个DataNode上你会发现,第二个是存储在一个单独的DataNode在集群中,三分之一是存储在一个DataNode在不同的集群。这就像一个三重保护安全的步骤。因此,如果最坏的应该发生,一个副本失败,数据不是一去不复返了。

NameNode保留重要的信息,如块的数量和副本存储的地方。相比之下,一个DataNode存储实际数据,并可以创建模块,删除模块,和复制命令块。它看起来像这样:

在hdfs-site.xmldfs.NameNode.name.dirfile:/ Hadoop /hdfs / NameNode
dfs.DataNode.data.dir文件:/ Hadoop /hdfs / DataNodeDfs.DataNode.data.dir

这决定了datanode应该存储块。

HDFS存储数据如何?

HDFS文件系统由一组主服务(NameNode,二级NameNode, datanode)。NameNode和二级NameNode HDFS元数据管理。datanode主机底层HDFS数据。

NameNode追踪哪些datanode包含在HDFS给定文件的内容。HDFS文件分为块和DataNode商店每一块。多个datanode与集群。NameNode然后分发这些跨集群数据块的副本。它还指示用户或应用程序在哪里找到想要的信息。

什么是Hadoop分布式文件系统(HDFS)用于处理?

简单地说,当问“什么是Hadoop分布式文件系统设计来处理?”The answer is first and foremost - big data. This can be invaluable to large corporations that would otherwise struggle to manage and store data from their business and customers.

使用Hadoop,您可以存储和统一数据,无论是事务性、科学、社会媒体,广告,和机器。这也意味着你可以回到这个数据和业务性能的有价值的见解和分析。

用来存储数据,HDFS还可以处理原始数据常用的科学家或那些在医疗领域来分析这些数据。这些被称为数据湖泊。它允许他们应对更加困难的问题没有限制。

更重要的是,因为Hadoop主要是设计来处理大量数据以不同的方式,它也可以用来运行算法进行分析。这意味着它可以帮助企业更有效地处理和分析数据,使他们能够发现新的趋势和异常。某些数据集甚至被从数据仓库和搬到Hadoop删除。它只是让它更容易存储一切都放在一个方便的地方。

当涉及到事务数据,Hadoop还具备处理数以百万计的事务。由于其存储和处理能力,它可以用来存储和分析客户数据。你也可以深入探究数据发现新兴的趋势和模式来帮助业务目标。别忘了,Hadoop是不断更新最新数据,你可以比较新老数据看到发生了什么变化,及其原因。

考虑与HDFS

默认情况下,HDFS是配置了3 x复制这意味着数据集将有两个额外的副本。虽然这可以提高局部数据在处理的可能性,它引入的开销存储成本。

  • HDFS配置了本地连接的存储时效果最好。这样可以确保文件系统的最佳性能。
  • 增加HDFS的能力需要添加新的服务器(计算、内存、磁盘),不仅仅是存储介质。

HDFS与云对象存储

如上所述,HDFS能力是紧密耦合的计算资源。增加存储容量需要增加CPU资源,尽管后者不是必需的。HDFS当添加更多的数据节点,重新平衡操作需要将现有的数据分发给新添加的服务器。

这个操作可能要花费一些时间。扩展Hadoop集群在本地环境中也可以从成本和空间角度是很困难的。HDFS使用本地连接的存储提供IO性能优势假设纱线可以提供处理服务器上存储的数据被处理。

与大量利用环境,可能大多数数据读/写操作将通过网络与本地。云湖对象存储Azure等包括技术数据存储,AWS S3,或者谷歌云存储。独立的计算资源,访问它,因此顾客可以在云存储的数据量更大。

客户正在寻找价值pb的数据存储在云对象存储可以很容易地这样做。然而,所有针对云存储的读和写操作将在网络上。因此,重要的是,应用程序可以访问其数据尽可能利用缓存或包括逻辑最小化IO操作。

额外的资源

回到术语表