我想尝试实现本文的工作,这是我从ieee“虚拟云中的位置感知mapreduce”。这里总结:8台物理机,每台包含4台虚拟机,每台虚拟机都安装了hadoop hdfs。假设我们有一个包含p台物理机的集群,每个物理机都有一个硬盘,副本号是3。然后n个文件块从集群外的另一台计算机放入集群中,或者在集群中随机生成。该模型是针对特定数据模式的数据模式生成和任务模式生成。每个块被放置在拥有相同数量虚拟机的物理机上的概率相同。由于hadoop的策略数据分配是随机的,因此使用hadoop策略可能会出现一个数据模式,一个文件块复制所有堆栈都在一台物理机器上。http://imageshack.us/photo/my-images/42/allstack.png/
提出的策略是循环分配和蛇形分配,理论上是这样的:http://imageshack.us/photo/my-images/43/proposed.png/
如何让hadoop意识到一些虚拟机在一个物理机上??
要使hadoop不将文件块的第二个和第三个副本复制到同一物理机上的虚拟机上???我问过如何实现这样的配置,得到的答复是,它使用的是机架感知配置。但我还是很困惑,需要更多的参考资料。
我如何跟踪那些数据,那些平均分布在物理机器上的文件块复制,确保没有所有文件块复制都堆在一台物理机器上??如果按照机架感知进行配置,文件块复制副本会均匀分布在物理机器上吗??
1条答案
按热度按时间7y4bm7vi1#
假设:我们知道哪个虚拟机是在哪个物理机上创建的。
这种假设在公共云环境中并不成立。因此,下面描述的解决方案在那里不起作用。下面描述的解决方案将在私有云中工作
实现机架感知包括两个步骤
core-site.xml中的安装脚本文件名
实现脚本
示例rack-awareness.sh如下所示
cluster.data的内容可以是
正如您所看到的,hadoop完全依赖于我们提供的机架值。您可以使用这个事实在存在于不同物理机上的虚拟机上分布数据块。
例如。
您可以将cluster.data作为