0

IEEE「仮想クラウドでの位置認識 MapReduce」から入手したこのペーパーワークを実装してみたいと思います。概要: 8 台の物理マシン、各マシンには 4 つの仮想マシンが含まれ、各 VM には Hadoop hdfs がインストールされています。p 個の物理マシンを含むクラスターがあり、それぞれにハード ディスクがあり、レプリカ番号が 3 であるとします。この場合、n 個のファイル ブロックが、クラスター外の別のコンピューターからクラスターに配置されるか、クラスター内でランダムに生成されます。モデルは、特定のデータ パターンを使用したデータ パターンの生成とタスク パターンの生成に関するものです。各ブロックは、同じ数の仮想マシンをホストする物理マシンに同じ確率で配置されます。Hadoop 戦略のデータ割り当てはランダムであるため、データ パターンが発生する可能性があります。 http://imageshack.us/photo/my-images/42/allstack.png/

提案された戦略は、理論的には次のように、ラウンドロビン割り当てと蛇行割り当てです: http://imageshack.us/photo/my-images/43/proposed.png/

いくつかの仮想マシンが 1 つの物理マシン上にあることを Hadoop に認識させる方法は??

同じ物理マシン上の仮想マシンにファイル ブロックの 2 番目と 3 番目のレプリカをレプリケートしないように Hadoop を作成するには??? そのような実装方法について尋ねたところ、ラック認識構成を使用しているとの返事がありました。しかし、私はまだ混乱しており、それについてさらに参照が必要です。

これらのデータ、物理マシンに均等に分散されたファイル ブロックのレプリケーションを追跡するにはどうすればよいですか? ラックの認識に従って構成した場合、物理マシンに均等に分散されたファイル ブロックのレプリカは確かですか??

4

1 に答える 1

0

前提: どの仮想マシンがどの物理マシン上に作成されているかを認識しています。

この仮定は、パブリック クラウド環境には当てはまりません。したがって、以下に説明するソリューションはそこでは機能しません。以下に説明するソリューションは、プライベート クラウドで機能します

ラック認識の実装には 2 つの手順が含まれます

  1. core-site.xml の設定スクリプト ファイル名

     <property>
          <name>topology.script.file.name</name>
          <value>core/rack-awareness.sh</value>
     </property>
    
  2. スクリプトの実装

    サンプルの rack-awareness.sh は次のようになります。

    HADOOP_CONF=/etc/hadoop/conf
    while [ $# -gt 0 ] ; do
      nodeArg=$1
      exec< ${HADOOP_CONF}/cluster.data
      result=”" 
      while read line ; do
         ar=( $line ) 
         if [ "${ar[0]}” = “$nodeArg” ] ; then
           result=”${ar[1]}”
         fi
      done 
      shift 
      if [ -z "$result" ] ; then
         echo -n “/default/rack “
      else
         echo -n “$result “
      fi
    done
    

    また、cluster.data の内容は次のようになります。

    hadoopdata1.ec.com     /dc1/rack1
    hadoopdata1            /dc1/rack1
    10.1.1.1               /dc1/rack2
    

ご覧のとおり、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
于 2013-05-01T18:02:33.633 に答える