繁体   English   中英

Hadoop HDFS问题[关闭]

[英]Hadoop HDFS questions [closed]

例如,我有2个数据节点和复制2。当我执行“ hadoop dfs -put test.log输入”将文件存储到HDFS时,该文件如何存储在Hadoop集群中? 它是否分布在整个群集上并存储在两个数据节点服务器上?

另外,当我执行某些操作(例如单词计数“ hadoop -jar word count.jar输入输出”)时,整个过程是什么样的? Jobtracker将要求2个任务跟踪器并行执行,然后将输出存储到HDFS中?

我是否可以认为第一种情况与namenode / datanode有关,第二种情况与作业跟踪器/任务跟踪器有关?

例如,我有2个数据节点和复制2。当我执行“ hadoop dfs -put test.log输入”将文件存储到HDFS时,该文件如何存储在Hadoop集群中? 它是否分布在整个群集上并存储在两个数据节点服务器上?

当您执行hadoop dfs -put test.log输入时 ,文件test.log将存储在名为input的目录中。 流程在这里,

根据文件大小和您的块大小 ,文件将首先被分成n个小块,称为block 默认块大小为64MB ,但它是可配置的。 现在,在NameNode的帮助下,客户端将知道哪些所有DataNode具有可用空间来容纳数据。 完成此操作后,客户端将开始逐块将数据推送到最近的DataNode,然后根据您的复制因子将其转发到其他DataNode。

是的,文件将在两台计算机上传播。 请记住,Hadoop是一个分布式系统,其中n个独立的机器作为一个系统共同工作。 为了更好的理解,请参见下面显示的图:

在此处输入图片说明


在此处输入图片说明

另外,当我执行某些操作(例如单词计数“ hadoop -jar word count.jar输入输出”)时,整个过程是什么样的? Jobtracker将要求2个任务跟踪器并行执行,然后将输出存储到HDFS中?

MapReduce执行的流程是这样的,

您将作业提交给JobTracker。 JobTracker指示在要处理数据的计算机上运行的TaskTrackers(连续运行),从而无需在任何地方移动数据就可以在此处开始处理。 如果要处理的文件分散在n个节点上,则在所有这n个节点上运行的TaskTracker将并行开始处理。 在您的情况下,n为2。 请参阅此内容以了解完整的过程。

我是否可以认为第一种情况与namenode / datanode有关,第二种情况与作业跟踪器/任务跟踪器有关?

没有什么可考虑的。 这就是真正发生的事情:)

高温超导

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM