需要在数据节点上维护复制因子
Need of maintaining replication factor on datanodes
如果这个问题提早了,请原谅,因为我找不到任何相关的问题。
1) 我想知道为什么在集群中的数据节点和名称节点之间保持相同的复制因子(或任何配置)很重要?
2) 当我们上传任何文件到HDFS时,管理存储的不就是namenode吗?
3) 仅在名称节点上维护配置是否足够?
4) 在 namenode 和 datanode 之间配置不同的含义是什么?
非常感谢任何帮助。谢谢! :)
Hadoop 旨在处理大型数据集。将大型数据集存储在一台机器上不是一个好主意,因为如果您的存储系统或硬盘崩溃,您可能会丢失所有数据。
在Hadoop出现之前,人们使用传统系统来存储大量数据,但是传统系统的成本非常高。在分析来自传统系统的大型数据集时也存在挑战,因为从传统系统读取数据是一个耗时的过程。考虑到这些因素,设计了 Hadoop 框架。
在 hadoop 框架中,当您加载大量数据时,它会将数据拆分为小块,称为块。这些块基本上用于将数据放入分布式集群中的数据节点,并且在分析数据时也会使用它们。
数据拆分背后的区域是并行处理和分布式存储(即:您可以将数据存储在多台机器上,当您要分析它时,可以通过并行分析来完成)。
现在回答您的问题:
原因:Hadoop是一个允许分布式存储和计算的框架。换句话说,这意味着您可以将数据存储到多台机器上。它具有复制功能,这意味着您可以保留相同数据的多个副本(基于复制因子)。
Ans1: Hadoop 设计用于 运行 在商用硬件上,故障在商用硬件上很常见,所以假设您将数据存储在一台机器上,什么时候您的机器崩溃了,您将丢失所有数据。但是在 hadoop 集群中,您可以从另一个复制中恢复数据(如果您的复制因子大于 1),因为 hadoop 不会将数据的复制副本存储在处理原始复制 resides.These 事情的同一台机器上来自 hadoop 本身。
Ans2: 当你在HDFS上上传文件时,你的实际数据会进入datanode,而NameNode会保存你数据的元数据信息。 NameNode 元数据信息包含块名称、块位置、文件名、文件的目录位置。
Ans3: 您需要维护与您的 hadoop 集群相关的整个配置。维护一个配置文件是不够的,而且您可能会面临其他问题。
Ans4: NameNode 配置属性与 NameNode 功能相关,如名称 space 服务元数据位置等,处理所有客户端请求的 RPC 地址 Datanode 配置属性与DataNode 执行的服务,如 DataNode 卷之间的存储平衡、可用磁盘 space、DataNode 服务器地址和数据传输端口
请检查此 link 以了解有关不同配置的更多信息 属性。
如果您想了解更多信息,请对问题 3 和问题 4 提供更多说明。
我将尝试以复制为例来回答你的问题。
需要记住的几点-
数据总是驻留在数据节点上,Namenode 从不处理数据或存储数据,它只保留有关数据的元数据。
复制因子是可配置的,您可以为每个文件副本更改它,例如 file1 的复制因子可能为 2,而 file2 的复制因子可能为 3,以类似的方式也可以配置其他一些属性执行时间。
2)当我们上传任何文件到HDFS时,管理存储的不就是namenode吗?
我不确定 namenode 管理存储的确切含义,这里是文件上传到 hdfs 的执行方式 -
1) Client sends a request to Namenode for file upload to hdfs
2) Namenode based on the configuration(if not explicitly specified by the client application) calculates the number of blocks data will be broken into.
3) Namenode also decides which Datanodes will store the blocks, based on the replication factor specified in configuration(if not explicitly specified by the client application)
4) Namenode sends information calculated in step #2 and #3 to the client
5) Client application will break the file into blocks and write each block to 'a' Datanode say DN1.
6) Now DN1 will be responsible to replicate the received blocks to other Datanodes as chosen by the Namenode in #3; It will initiate replication when Namenode instructs it.
对于您的问题 #3 和 #4,重要的是要了解任何分布式应用程序都需要一组可用于每个节点的配置,以便能够相互交互并按照预期执行指定任务。 如果每个节点都选择拥有自己的配置,协调的基础是什么? DN1 的复制因子为 5,而 DN2 的复制因子为 2 如何实际复制数据?
更新开始
hdfs-site.xml 包含许多其他配置规范以及名称节点、数据节点和辅助名称节点、一些客户端和 hdfs 特定设置,而不仅仅是复制因子。
现在假设有一个 50 节点的集群,您想在每个节点上进行配置还是只复制一个预配置的文件?
更新结束
如果将所有配置保存在一个位置,则每个节点在每次必须执行操作时都需要连接到该共享资源以加载配置,除了 consistency/synchronization 问题,以防任何配置 属性 被更改。
希望这对您有所帮助。
如果这个问题提早了,请原谅,因为我找不到任何相关的问题。
1) 我想知道为什么在集群中的数据节点和名称节点之间保持相同的复制因子(或任何配置)很重要?
2) 当我们上传任何文件到HDFS时,管理存储的不就是namenode吗?
3) 仅在名称节点上维护配置是否足够?
4) 在 namenode 和 datanode 之间配置不同的含义是什么?
非常感谢任何帮助。谢谢! :)
Hadoop 旨在处理大型数据集。将大型数据集存储在一台机器上不是一个好主意,因为如果您的存储系统或硬盘崩溃,您可能会丢失所有数据。
在Hadoop出现之前,人们使用传统系统来存储大量数据,但是传统系统的成本非常高。在分析来自传统系统的大型数据集时也存在挑战,因为从传统系统读取数据是一个耗时的过程。考虑到这些因素,设计了 Hadoop 框架。
在 hadoop 框架中,当您加载大量数据时,它会将数据拆分为小块,称为块。这些块基本上用于将数据放入分布式集群中的数据节点,并且在分析数据时也会使用它们。
数据拆分背后的区域是并行处理和分布式存储(即:您可以将数据存储在多台机器上,当您要分析它时,可以通过并行分析来完成)。
现在回答您的问题:
原因:Hadoop是一个允许分布式存储和计算的框架。换句话说,这意味着您可以将数据存储到多台机器上。它具有复制功能,这意味着您可以保留相同数据的多个副本(基于复制因子)。
Ans1: Hadoop 设计用于 运行 在商用硬件上,故障在商用硬件上很常见,所以假设您将数据存储在一台机器上,什么时候您的机器崩溃了,您将丢失所有数据。但是在 hadoop 集群中,您可以从另一个复制中恢复数据(如果您的复制因子大于 1),因为 hadoop 不会将数据的复制副本存储在处理原始复制 resides.These 事情的同一台机器上来自 hadoop 本身。
Ans2: 当你在HDFS上上传文件时,你的实际数据会进入datanode,而NameNode会保存你数据的元数据信息。 NameNode 元数据信息包含块名称、块位置、文件名、文件的目录位置。
Ans3: 您需要维护与您的 hadoop 集群相关的整个配置。维护一个配置文件是不够的,而且您可能会面临其他问题。
Ans4: NameNode 配置属性与 NameNode 功能相关,如名称 space 服务元数据位置等,处理所有客户端请求的 RPC 地址 Datanode 配置属性与DataNode 执行的服务,如 DataNode 卷之间的存储平衡、可用磁盘 space、DataNode 服务器地址和数据传输端口
请检查此 link 以了解有关不同配置的更多信息 属性。
如果您想了解更多信息,请对问题 3 和问题 4 提供更多说明。
我将尝试以复制为例来回答你的问题。
需要记住的几点-
数据总是驻留在数据节点上,Namenode 从不处理数据或存储数据,它只保留有关数据的元数据。
复制因子是可配置的,您可以为每个文件副本更改它,例如 file1 的复制因子可能为 2,而 file2 的复制因子可能为 3,以类似的方式也可以配置其他一些属性执行时间。
2)当我们上传任何文件到HDFS时,管理存储的不就是namenode吗? 我不确定 namenode 管理存储的确切含义,这里是文件上传到 hdfs 的执行方式 -
1) Client sends a request to Namenode for file upload to hdfs
2) Namenode based on the configuration(if not explicitly specified by the client application) calculates the number of blocks data will be broken into.
3) Namenode also decides which Datanodes will store the blocks, based on the replication factor specified in configuration(if not explicitly specified by the client application)
4) Namenode sends information calculated in step #2 and #3 to the client
5) Client application will break the file into blocks and write each block to 'a' Datanode say DN1.
6) Now DN1 will be responsible to replicate the received blocks to other Datanodes as chosen by the Namenode in #3; It will initiate replication when Namenode instructs it.
对于您的问题 #3 和 #4,重要的是要了解任何分布式应用程序都需要一组可用于每个节点的配置,以便能够相互交互并按照预期执行指定任务。 如果每个节点都选择拥有自己的配置,协调的基础是什么? DN1 的复制因子为 5,而 DN2 的复制因子为 2 如何实际复制数据?
更新开始 hdfs-site.xml 包含许多其他配置规范以及名称节点、数据节点和辅助名称节点、一些客户端和 hdfs 特定设置,而不仅仅是复制因子。
现在假设有一个 50 节点的集群,您想在每个节点上进行配置还是只复制一个预配置的文件?
更新结束
如果将所有配置保存在一个位置,则每个节点在每次必须执行操作时都需要连接到该共享资源以加载配置,除了 consistency/synchronization 问题,以防任何配置 属性 被更改。
希望这对您有所帮助。