关于Hadoop的几个问题。请分享您的经验。
1)如果我必须在hadoop集群上存储1TB文件,假设复制因子为3,是否意味着我上传了3TB的文件?
2)如何将客户端计算机配置到Hadoop集群?请提供需要修改的文件的详细信息。
3)Hadoop集群与传统的网络分布式系统有何不同? 我们知道传统的分布式系统也有主从架构。但是在执行任何任务时,从站之间存在这种通信。 问题是Hadoop DataNodes中是否存在类似的通信机制?
4)如果Hadoop DataNodes之间没有通信,那么一旦map任务完成,Sort和Shuffle阶段如何在DataNode上进行数据传输?
5)这是关于Cloudera QuickStart VM 5.5,当我做" sudo jps"在终端窗口中,没有与JobTracker和TaskTracker相关的进程正在运行 我的MR工作正在提交,输出将写入HDFS。 这是因为正在运行的进程名称" JobHistoryServer"当我输入" sudo jps"命令?
6)假设JobTracker将MR作业提交给已经运行了如此多任务并且不能再接受的DataNode(DN1)的场景,具有Rack Awareness知识的NameNode会将此MR作业委托给其他节点rack.Let说新节点是DN2 现在,问题是DN2是否会从DN1复制块的数据并运行MR作业,还是只是代表DN1运行MR作业,因为Hadoop分布式集群中可以看到数据块?
提前感谢您的回答。
最佳, 斯
答案 0 :(得分:2)
以下是您的问题的答案:
您只上传1 TB文件。该文件被分割成128 MB(默认为纱线)的块(块)。现在,每个块都在三个不同的节点中复制。所以最后你上传1 TB,并且hadoop会照顾3次复制。
您可以在单个节点以及计算机集群上安装hadoop。请仔细阅读以下博客,其中提供了步骤明智的步骤以及如何配置它的详细信息。
http://teamvj.blogspot.in/2014/02/installing-hadoop-single-node-cluster.html
Hadoop Namenode是主节点,其中包含有关其下所有数据节点的信息。 Datanode将名为heartbeat的周期性信号发送到namenode,表示它们处于活动状态并准备好接受任务。 Namenode有关于哪个datanode包含哪个块的信息。因此,当提交作业时,处理进入正确的节点,该节点具有必须进行处理的数据。如果datanode失败,则具有相同块(由于复制)的另一个datanode被赋予该任务。 Hadoop Cluster是旧的分布式计算,但它的特殊之处在于它的运行方式如容错,推测性的exectuion等。
数据节点始终相互通信,以便将块从一个数据节点传输到另一个数据节点。假设一个数据节点已关闭,那么在其中存储的数据的复制也会降低。此时需要将块从一个数据节点传输到另一个数据节点。
数据将转到已包含该块副本的DN。这是存储副本背后的真正想法。如果一个具有该块的数据节点不可用,则该请求将转到另一个具有该块的数据节点之一,假设复制因子仍然是默认值3。
希望这有帮助