DataNode和TaskTracker在不同的机器上?

时间:2014-12-16 04:52:22

标签: hadoop

我对Hadoop相当新,我对Hadoop框架有以下问题。有人可以指导一下吗?

  1. DataNode和TaskTracker是否实际位于生产环境中的不同计算机上?
  2. Hadoop何时将文件拆分为块?将文件从本地文件系统复制到HDFS时会发生这种情况吗?

3 个答案:

答案 0 :(得分:2)

简短回答

  1. 大部分时间,但不一定
  2. 即可。
  3. 长答案

    1)

    在群集上安装Hadoop将有两种主要类型的节点:

    • 主节点
    • 数据节点

    主节点通常至少运行:

    • CLDB
    • 动物园管理员
    • 的JobTracker

    数据节点通常至少运行:

    • 的TaskTracker

    The DataNode service can run on a different node than the TaskTracker service。但是,DataNode服务的Hadoop Docs建议在相同节点上运行DataNodeTaskTracker,以便在数据附近执行MapReduce操作。< / p>

    对于Hadoop的MapR分发,通常运行两个服务器角色:

    • MapR控制节点
      • ZooKeeper *
      • CLDB *
      • JobTracker *
      • HBaseMaster
      • NFS网关
      • 网络服务器
    • MapR数据节点
      • TaskTracker *
      • RegionServer(有时)
      • Zookeeper(有时)

    2)

    虽然大多数文件系统以块为单位存储数据,但HDFS分发&amp;在DataNodes之间复制块。首次在HDFS中存储数据时,它会将其分解为块,并根据指定的复制因子将其存储在不同的节点上。但是,如果向群集添加新的DataNode,则will not automatically rebalance old blocks across them除非未满足复制因子。

    (感谢@javadba澄清这一点!)

答案 1 :(得分:1)

鉴于TrinitronX已经回答了#1 - 虽然简短答案应该是NO - 数据节点/任务跟踪器可能在不同的物理机器上,但这种情况并不常见。你最好从&#34;奴隶&#34;开始。机器是datanode加上任务跟踪器。

所以这是对问题第二部分的回答

2) When does Hadoop splits a file into blocks? Does this happen when you copy a file from local filesystem into HDFS?

是。加载到HDFS后,文件会被分成块。

答案 2 :(得分:0)

  1. 数据节点和作业跟踪器可以在不同的计算机上运行。
  2. Hadoop始终在hadoop
  3. 的所有操作中将文件存储为块

    参见

    1。Hadoop Job tracker and task tracker

    2。Hadoop block size and Replication