我正在阅读雅虎在https://developer.yahoo.com/hadoop/tutorial/module2.html制作的hadoop模块,这里提到“本地DataNode”我想知道究竟什么是本地DataNode。我的猜测是一台NameNode的机器,同时也是一个DataNode,但我想确定它到底是什么。
答案 0 :(得分:2)
在Hadoop中,默认情况下,每个数据块被复制3次(复制因子为3)。
为了确保数据的可用性和持久性,Hadoop将副本放在3个不同的数据节点中:
hadoop fs -cp
命令)。第一个复制品放在这里。如果客户端正在从群集外部写入数据,则随机选择此节点。 第一个副本写入的节点。这可确保即使一个机架发生故障,数据仍可在另一个机架中的数据节点上使用。
因此,在本教程中,本地数据节点表示启动写操作的数据节点。
让我们举个例子。我们假设您正在尝试将文件a.txt
复制到HDFS中。我们假设一个集群有3个机架,并且可以识别机架:
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(在机架1上)执行hadoop fs -copyFromLocal a.txt /tmp/
。然后Hadoop将尝试按如下方式放置副本:
案例2 群集外的客户
假设您从节点7(不是群集的一部分并且客户端在其上运行)执行hadoop fs -copyFromLocal a.txt /tmp/
。然后Hadoop将尝试按如下方式放置副本:
这是理想的副本放置应该如何发生。但是,这取决于不同机架和节点上的可用空间。
答案 1 :(得分:1)
我也同意Manjunath Ballur对本地数据节点
的定义我们可以得出结论,Local Data Node
是客户端程序写入第一个副本的节点。您可以将本地数据节点视为本地RAC中的DataNade。
在解决您的问题之前:
Hadoop为大量的 distributed storage
和 distributed processing
提供框架Tera / Peta字节中的数据。
您引用的文章与分布式存储HDFS
有关*关于您的查询*
我指的是MapReduce,第一个处理mapper任务的是本地DataNode -
MapReduce框架包含一个主ResourceManager,每个群集节点一个从NodeManager和每个应用程序的MRAppMaster (see YARN Architecture Guide )。
因此块放置(HDFS写入)与Map reduce处理没有任何关系。
The Mappers&根据不同的标准选择Reducer节点。
分布式存储(HDFS):
HDFS processes: Name Node / Stand By Name Node + Data Node
分布式处理(Map Reduce / YARN):
YARN processes : Resource Manager + Node Manager + Application Master (aka MRAppMaster)