什么是本地DataNode?
What is local DataNode?
我正在阅读https://developer.yahoo.com/hadoop/tutorial/module2.html yahoo 制作的hadoop 模块,这里提到了它"local DataNode" 我想知道究竟什么是本地DataNode。我的猜测是一台既是 NameNode 又是 DataNode 的机器,但我想确定它到底是什么。
在 Hadoop 中,默认情况下,每个数据块被复制 3 次(复制因子为 3)。
为确保数据的可用性和持久性,Hadoop 将副本放置在 3 个不同的数据节点中:
- 本地数据节点:客户端发起写入的数据节点(例如使用
hadoop fs -cp
命令)。第一个副本放在这里。如果客户端正在从集群外部写入数据,则该节点是随机选择的。 这是写入第一个副本的节点。
- Off-rack 数据节点:数据节点,存在于另一个机架上。第二个副本放在这里
- On-Rack 数据节点:与第一个数据节点物理存在于同一机架上的数据节点。第三个副本放在这里
这确保即使一个机架出现故障,数据在另一个机架中的数据节点上仍然可用。
因此在本教程中,本地数据节点表示发起写入操作的数据节点。
举个例子。假设您正在尝试将文件 a.txt
复制到 HDFS。假设一个集群有 3 个机架并且是 rack-aware:
Rack 1: Node 1, Node 2
Rack 2: Node 3, Node 4
Rack 3: Node 5, Node 6
Also, you have another Node: Node 7, which is outside the Hadoop cluster, but is connected
to the cluster and you can perform HDFS operations.
案例一:集群内的客户端
让我们假设您从节点 1(在机架 1 上)执行 hadoop fs -copyFromLocal a.txt /tmp/
。然后 Hadoop 将尝试按如下方式放置副本:
- 第一个副本放在节点 1 上。这是 客户端的本地数据节点
- 第二个副本放置在机架 2(节点 3 或节点 4)或机架 3(节点 5 或节点 6)上。这是Off-Rack数据节点。
- 第三个副本放在节点2上。这是On-Rack数据节点。
案例二:集群外的Client
让我们假设您从节点 7(它不是集群的一部分,客户端在其上运行)执行 hadoop fs -copyFromLocal a.txt /tmp/
。然后 Hadoop 将尝试按如下方式放置副本:
- 它将随机选择一个节点(从节点1到节点6的任何一个节点)。那么这个节点就会变成Local Data Node。假设它选择了位于机架 3 上的节点 6。
- 现在,第二个副本放置在机架 1(节点 1 或节点 2)或机架 2(节点 3 或节点 4)上。这是Off-Rack数据节点。
- 第三个副本放在节点5上。这是On-Rack数据节点
这是理想的副本放置方式。但是,这取决于不同机架和节点上可用的space。
我也同意 Manjunath Ballur 对本地数据节点
的定义
我们可以得出结论,Local Data Node
是Client程序写入第一个replica的节点。你可以把Local Data Node当做本地RAC中的DataNade。
在解决您的问题之前:
Hadoop 为 distributed storage
和 distributed processing
提供框架 Tera/Peta 字节的大量数据。
您引用的文章与分布式存储相关HDFS
*关于您的查询*
I am referring to MapReduce,, the first one that processes the mapper task is the local DataNode –
MapReduce 框架由一个主资源管理器、每个 cluster-node 一个从节点管理器和每个应用程序 (see YARN Architecture Guide ).
所以块放置(HDFS写入)与Map reduce处理没有任何关系。
Mappers 和 Reducer 节点是根据不同的标准选择的。
分布式存储(HDFS):
HDFS processes: Name Node / Stand By Name Node + Data Node
分布式处理(地图Reduce/YARN):
YARN processes : Resource Manager + Node Manager + Application Master (aka MRAppMaster)
我正在阅读https://developer.yahoo.com/hadoop/tutorial/module2.html yahoo 制作的hadoop 模块,这里提到了它"local DataNode" 我想知道究竟什么是本地DataNode。我的猜测是一台既是 NameNode 又是 DataNode 的机器,但我想确定它到底是什么。
在 Hadoop 中,默认情况下,每个数据块被复制 3 次(复制因子为 3)。
为确保数据的可用性和持久性,Hadoop 将副本放置在 3 个不同的数据节点中:
- 本地数据节点:客户端发起写入的数据节点(例如使用
hadoop fs -cp
命令)。第一个副本放在这里。如果客户端正在从集群外部写入数据,则该节点是随机选择的。 这是写入第一个副本的节点。 - Off-rack 数据节点:数据节点,存在于另一个机架上。第二个副本放在这里
- On-Rack 数据节点:与第一个数据节点物理存在于同一机架上的数据节点。第三个副本放在这里
这确保即使一个机架出现故障,数据在另一个机架中的数据节点上仍然可用。
因此在本教程中,本地数据节点表示发起写入操作的数据节点。
举个例子。假设您正在尝试将文件 a.txt
复制到 HDFS。假设一个集群有 3 个机架并且是 rack-aware:
Rack 1: Node 1, Node 2
Rack 2: Node 3, Node 4
Rack 3: Node 5, Node 6
Also, you have another Node: Node 7, which is outside the Hadoop cluster, but is connected
to the cluster and you can perform HDFS operations.
案例一:集群内的客户端
让我们假设您从节点 1(在机架 1 上)执行 hadoop fs -copyFromLocal a.txt /tmp/
。然后 Hadoop 将尝试按如下方式放置副本:
- 第一个副本放在节点 1 上。这是 客户端的本地数据节点
- 第二个副本放置在机架 2(节点 3 或节点 4)或机架 3(节点 5 或节点 6)上。这是Off-Rack数据节点。
- 第三个副本放在节点2上。这是On-Rack数据节点。
案例二:集群外的Client
让我们假设您从节点 7(它不是集群的一部分,客户端在其上运行)执行 hadoop fs -copyFromLocal a.txt /tmp/
。然后 Hadoop 将尝试按如下方式放置副本:
- 它将随机选择一个节点(从节点1到节点6的任何一个节点)。那么这个节点就会变成Local Data Node。假设它选择了位于机架 3 上的节点 6。
- 现在,第二个副本放置在机架 1(节点 1 或节点 2)或机架 2(节点 3 或节点 4)上。这是Off-Rack数据节点。
- 第三个副本放在节点5上。这是On-Rack数据节点
这是理想的副本放置方式。但是,这取决于不同机架和节点上可用的space。
我也同意 Manjunath Ballur 对本地数据节点
的定义我们可以得出结论,Local Data Node
是Client程序写入第一个replica的节点。你可以把Local Data Node当做本地RAC中的DataNade。
在解决您的问题之前:
Hadoop 为 distributed storage
和 distributed processing
提供框架 Tera/Peta 字节的大量数据。
您引用的文章与分布式存储相关HDFS
*关于您的查询*
I am referring to MapReduce,, the first one that processes the mapper task is the local DataNode –
MapReduce 框架由一个主资源管理器、每个 cluster-node 一个从节点管理器和每个应用程序 (see YARN Architecture Guide ).
所以块放置(HDFS写入)与Map reduce处理没有任何关系。
Mappers 和 Reducer 节点是根据不同的标准选择的。
分布式存储(HDFS):
HDFS processes: Name Node / Stand By Name Node + Data Node
分布式处理(地图Reduce/YARN):
YARN processes : Resource Manager + Node Manager + Application Master (aka MRAppMaster)