【发布时间】:2014-12-16 04:52:22
【问题描述】:
我对 Hadoop 相当陌生,我对 Hadoop 框架有以下疑问。有人可以指导一下吗?
- DataNode 和 TaskTracker 物理上是否位于生产环境中的不同机器上?
- Hadoop 何时将文件拆分为块?将文件从本地文件系统复制到 HDFS 时会发生这种情况吗?
【问题讨论】:
标签: hadoop
我对 Hadoop 相当陌生,我对 Hadoop 框架有以下疑问。有人可以指导一下吗?
【问题讨论】:
标签: hadoop
在集群上安装 Hadoop 将具有 2 种主要类型的节点:
主节点通常至少运行:
数据节点通常至少运行:
The DataNode service can run on a different node than the TaskTracker service。但是,DataNode 服务的Hadoop Docs 建议在同一节点上运行DataNode 和TaskTracker,以便在接近数据的情况下执行MapReduce 操作。
对于 Hadoop 的 MapR 分布,两个服务器角色通常运行:
虽然大多数文件系统将数据存储在块中,但 HDFS 会在 DataNodes 之间分发和复制块。当您第一次将数据存储在 HDFS 中时,它会将其分成块并根据指定的复制因子将其存储在不同的节点上。但是,如果您将新的DataNodes 添加到集群中,则它是will not automatically rebalance old blocks across them,除非不满足复制因子。
(感谢@javadba 澄清这一点!)
【讨论】:
DataNode 是一个词,所以我想他们的意思是DataNode 作为服务,而不是“数据节点”。有人告诉我TaskTracker 是在数据节点上运行的服务,所以在我看来,我将TaskTracker 等同于“数据节点”。似乎Hadoop Docs 说您应该在同一台服务器上运行TaskTracker 和DataNode……我错了吗?
鉴于 TrinitronX 已经回答了 #1 - 尽管简短答案应该是 NO - 数据节点/任务跟踪器可能位于不同的物理机器上,但这种情况并不常见。您最好从作为数据节点和任务跟踪器的“从属”机器开始。
所以这是问题第二部分的答案
2) When does Hadoop splits a file into blocks? Does this happen when you copy a file from local filesystem into HDFS?
是的。该文件在加载到 HDFS 时被分解为块。
【讨论】:
【讨论】: