Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
虚拟机hadoop上的文件块复制分配_Hadoop_Replication_Allocation - Fatal编程技术网

虚拟机hadoop上的文件块复制分配

虚拟机hadoop上的文件块复制分配,hadoop,replication,allocation,Hadoop,Replication,Allocation,我想尝试实现本文的工作,这是我从IEEE“虚拟云中的位置感知MapReduce”得到的。这里总结:8台物理机,每台包含4台虚拟机,每个虚拟机都安装了hadoop hdfs。假设我们有一个包含p台物理机的集群,每个物理机都有一个硬盘,副本号是3。然后,n个文件块从集群外的另一台计算机放入集群,或者在集群中随机生成。该模型是关于数据模式生成和具有特定数据模式的任务模式生成的。每个块都有相同的概率放置在拥有相同数量虚拟机的物理机上。由于hadoop的策略数据分配是随机的,因此使用hadoop策略,可能

我想尝试实现本文的工作,这是我从IEEE“虚拟云中的位置感知MapReduce”得到的。这里总结:8台物理机,每台包含4台虚拟机,每个虚拟机都安装了hadoop hdfs。假设我们有一个包含p台物理机的集群,每个物理机都有一个硬盘,副本号是3。然后,n个文件块从集群外的另一台计算机放入集群,或者在集群中随机生成。该模型是关于数据模式生成和具有特定数据模式的任务模式生成的。每个块都有相同的概率放置在拥有相同数量虚拟机的物理机上。由于hadoop的策略数据分配是随机的,因此使用hadoop策略,可能会在一台物理机器中出现一个文件块副本所有堆栈。

建议的策略是循环分配和蛇形分配,理论上如下所示:

如何让hadoop意识到一些虚拟机在一台物理机上

要使hadoop不将文件块的第二个和第三个副本复制到同一物理机上的虚拟机上??? 我问过如何实现这样的功能,得到的回答是,它使用的是机架感知配置。但我仍然感到困惑,需要更多的参考资料

我如何跟踪这些数据,这些文件块复制均匀地分布在物理机器上,以确保没有文件块副本全部堆叠在一台物理机器上??
如果我在机架感知之后进行配置,是否确定文件块复制副本均匀分布在物理机器上

假设:我们知道在哪台物理机上创建了哪台虚拟机

这种假设在公共云环境中并不成立。因此,下面描述的解决方案在那里不起作用。下面描述的解决方案将在私有云中工作

实现机架感知包括两个步骤

  • core-site.xml中的安装脚本文件名

     <property>
          <name>topology.script.file.name</name>
          <value>core/rack-awareness.sh</value>
     </property>
    
  • 正如您所见,Hadoop完全依赖于我们提供的机架值。您可以使用此事实在存在于不同物理机上的虚拟机上分发数据块

    例如

    Virtual Machine 1 (VM1) 10.83.51.2 is on Physical Machine 1 (PM1)
    Virtual Machine 2 (VM2) 10.83.51.3 is on Physical Machine 1 (PM1)
    Virtual Machine 2 (VM2) 10.83.51.4 is on Physical Machine 2 (PM2)
    
    您可以将cluster.data设置为

    10.83.51.2 /DC1/rack1
    10.83.51.3 /DC1/rack1
    10.83.51.4 /DC1/rack2
    
    Virtual Machine 1 (VM1) 10.83.51.2 is on Physical Machine 1 (PM1)
    Virtual Machine 2 (VM2) 10.83.51.3 is on Physical Machine 1 (PM1)
    Virtual Machine 2 (VM2) 10.83.51.4 is on Physical Machine 2 (PM2)
    
    10.83.51.2 /DC1/rack1
    10.83.51.3 /DC1/rack1
    10.83.51.4 /DC1/rack2