基于Azure的Hadoop集群(HDInsight)如何转化为经典的本地Hadoop集群

基于Azure的Hadoop集群(HDInsight)如何转化为经典的本地Hadoop集群,hadoop,azure-hdinsight,azure-compute-emulator,Hadoop,Azure Hdinsight,Azure Compute Emulator,ApacheHadoop设计用于在一系列商品机器(节点)上运行。这不是为在基于云的复杂场景中运行而设计的。但是,由于云允许通过虚拟机模拟单个节点,因此出现了基于云的Hadoop集群。但这给我带来了理解上的困难。当我研究Hadoop集群的任何标准解释时,它总是在prem架构上,因为所有Hadoop架构都是按照逻辑和简单的prem视图来解释的。但这给理解基于云的集群如何工作带来了困难——特别是HDFS、数据局部性等概念。在解释的on-prem版本中,每个节点都有自己的“本地”存储(这还意味着存储硬件

ApacheHadoop设计用于在一系列商品机器(节点)上运行。这不是为在基于云的复杂场景中运行而设计的。但是,由于云允许通过虚拟机模拟单个节点,因此出现了基于云的Hadoop集群。但这给我带来了理解上的困难。当我研究Hadoop集群的任何标准解释时,它总是在prem架构上,因为所有Hadoop架构都是按照逻辑和简单的prem视图来解释的。但这给理解基于云的集群如何工作带来了困难——特别是HDFS、数据局部性等概念。在解释的on-prem版本中,每个节点都有自己的“本地”存储(这还意味着存储硬件针对特定节点是固定的,不会被洗牌)而且也不假定该节点曾经被删除。此外,我们将该存储视为节点本身的一部分,因此我们从不考虑杀死节点并保留存储以供以后使用

现在,在基于云的Hadoop(HDInsight)模型中,我们可以附加任何Azure存储帐户作为集群的主存储。因此,假设我们有一个包含4个工作节点和2个头部节点的集群,那么单个Azure存储帐户将充当6个虚拟机的HDFS空间?再说一次,实际的业务数据甚至不存储在上面——而是存储在附加的存储帐户上。所以我无法理解这是如何在prem Hadoop集群上转换成的?Hadoop集群的核心设计围绕着数据局部性的概念,即数据驻留在离处理最近的地方。我知道,当我们创建HDInsight群集时,我们在与所连接的存储帐户相同的区域中创建它。但它更像是多个处理单元(VM),它们共享公共存储,而不是使用各自的本地存储的单个节点。也许,只要它能够足够快地访问数据中心中的数据(就像它驻留在本地一样),它就不重要了。但不确定情况是否如此。基于云的模型向我展示了以下图片:-


有人能确切地解释一下Apache Hadoop设计是如何转化为基于Azure的模型的吗?这种混淆源于这样一个事实:存储帐户是固定的,我们可以随时杀死/旋转指向相同存储帐户的群集。

当HDInsight执行其任务时,它将数据从存储节点流式传输到计算节点。但是Hadoop正在执行的许多映射、排序、洗牌和缩减任务都是在计算节点本身所在的本地磁盘上完成的

map、reduce和sort任务通常将在网络负载最小的计算节点上执行,而shuffle任务将使用一些网络将数据从mappers节点移动到reduce较少的节点

将数据存储回存储器的最后一步通常是更小的数据集(例如查询数据集或报表)。最后,在初始和最终流阶段,网络的利用率更高,而大多数其他任务在节点内执行(即,最小网络利用率)


要了解更多详细信息,您可以查看“”和“”。

如果它对您有用,可以吗?它可能会帮助更多有类似问题的人。