只是关于Hadoop的几个问题。请分享您的经验。
1)如果我必须在Hadoop集群上存储一个1TB的文件,假设复制因子为3,这是否意味着我上传了一个3TB的文件?
2)如何将客户端计算机配置为 Hadoop 群集?请提供需要修改的文件的详细信息。
3)Hadoop集群与传统的网络分布式系统有何不同?我们知道,传统的分布式系统也有主从架构。但是在执行任何任务时,奴隶之间都有这种交流。问题是Hadoop DataNodes之间是否存在类似的通信机制?
4)如果Hadoop DataNodes之间没有通信,一旦映射任务完成,排序和随机阶段如何在DataNodes上进行数据传输?
5)这是关于Cloudera QuickStart VM 5.5,当我在终端窗口中执行"sudo jps"时,尚未运行与JobTracker和TaskTracker相关的进程我的MR作业正在提交,输出将写入HDFS。这是因为当我键入"sudo jps"命令时显示正在运行的进程名称"JobHistoryServer"吗?
6)假设作业跟踪器将MR作业提交到已经运行了如此多任务且无法再接受的DataNode(DN1)的情况,具有机架感知知识的NameNode会将此MR作业委托给同一机架中的其他节点。假设新节点是 DN2现在,问题是 DN2 是否会从 DN1 复制块的数据并运行 MR 作业,或者它只是代表 DN1 运行 MR 作业,因为数据块在 Hadoop 分布式集群中可见?
提前感谢您的回答。
最好斯里兰卡
您问题的答案:
您只上传 1 TB 的文件。该文件被拆分为每个 128 MB(默认为 yarn)的块(块)。现在,每个块都在三个不同的节点中复制。因此,最后,您上传1 TB,然后3次复制由hadoop负责。
您可以在单个节点以及计算机集群上安装 Hadoop。请浏览以下博客,其中提供了逐步步骤和有关如何配置它的详细图片。
http://teamvj.blogspot.in/2014/02/installing-hadoop-single-node-cluster.html
http://teamvj.blogspot.in/
Hadoop Namenode是主节点,它包含有关其下所有数据节点的信息。数据节点定期向名称节点发送称为心跳的信号,表明它们处于活动状态并准备好承担任务。Namenode具有有关哪个数据节点包含哪个块的信息。因此,当提交作业时,处理将转到正确的节点,该节点包含必须执行处理的数据。如果数据节点失败,则为具有相同块(由于复制)的另一个数据节点分配任务。Hadoop Cluster是相同的旧分布式计算,但它的特别之处在于它们的运行方式,如容错,推测执行等。
数据节点始终相互通信,以便将块从一个数据节点传输到另一个数据节点。假设一个数据节点关闭,因此其中的数据复制也会关闭。此时,需要将块从一个数据节点传输到另一个数据节点。
数据将转到已经具有块副本的 DN。这就是存储副本背后的真正想法。如果一个具有块的数据节点不可用,则请求将转到具有该块的其他两个数据节点之一,假设复制因子仍然是默认值 3。
希望这有帮助