2012-07-03 39 views
2

我对Hadoop分布式文件系统的设置以及我的特定设置如何影响它有点困惑。我使用本指南在Virtual Box上使用两台虚拟机来设置它http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/,并运行该示例(只是使用txt文件输入的简单字数)。到目前为止,我知道datanode管理和检索节点上的文件,而tasktracker分析数据。Hadoop DFS的CopyFromLocal命令如何工作?

1)当你使用命令-copyFromLocal,你是复制文件/输入到HDFS? Hadoop是否知道如何划分从站/主站之间的信息,它是如何实现的?

2)在上面链接指南中概述的配置中,技术上有两个从站(主站作为主站和从站)?这是常见的还是主机通常只给jobtracker/namenode任务?

回答

0

1)

  • 客户端连接到名字节点登记在HDFS一个新的文件。
  • 名称节点创建一些关于文件的元数据(使用默认块大小或文件的配置值)
  • 对于要写入的每个数据块,客户端向名称节点查询块ID以及将数据写入的目标数据节点列表。然后将数据写入每个数据节点。

有在的Javadoc org.apache.hadoop.hdfs.DFSClient.DFSOutputStream

2)有些生产系统将被配置成使所述主它自己的专用节点(允许的最大可能的内存分配,并避免CPU争一些更多的信息) ,但是如果您拥有较小的群集,则可以接受包含名称节点和数据节点的节点

1

这里有很多问题要问。

问题2)

  1. 有两台机器
  2. 这些机器配置为HDFS和Map-减少。
  3. HDFS配置需要的Namenode(主)和的Datanode(从)
  4. 地图,减少需要的JobTracker(主)和的TaskTracker(从)
  5. 只有一个NameNode和JobTracker的配置,但你可以有一个Datanode和的TaskTracker服务这两台机器。它不是作为主人和奴隶的机器。这只是服务。您也可以在包含主服务的计算机上安装从服务。这对简单的开发设置很有用。在大规模部署中,您将主服务专用于分离机器。

问题1第2部分)

  1. 这是HDFS的工作创建文件块和存储在复制的方式多数据节点。你不必担心它。

问题1第1部分)

  1. Hadoop的文件操作被图案像典型的Unix文件操作 - ls,在等
  2. Hadoop的FS -put localefile /数据/ somefile - >将复制LOCALFILE到HDFS的路径/数据/ somefile
  3. 有了看跌期权,你也可以从标准输入读取和写入到HDFS文件
  4. copyFromLocal类似于看跌期权,除了行为是从本地文件系统仅限于复制到HDFS
  5. 请参见:http://hadoop.apache.org/common/docs/r0.20.0/hdfs_shell.html#copyFromLocal