2

Hadoop Distributed File System がどのようにセットアップされているか、また私の特定のセットアップがどのように影響するかについて、少し混乱しています。このガイドを使用してhttp://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/をセットアップし、Virtual Box で 2 つの仮想マシンを使用してサンプルを実行しました。 (txtファイル入力による単純な単語数カウント)。これまでのところ、datanode がノード上のファイルを管理および取得し、tasktracker がデータを分析することがわかっています。

1) コマンド -copyFromLocal を使用する場合、ファイル/入力を HDFS にコピーしていますか? Hadoop は、スレーブ/マスター間で情報を分割する方法を知っていますか? また、どのようにそれを行うのでしょうか?

2) 上記のリンクのガイドで説明されている構成では、技術的に 2 つのスレーブがあります (マスターはマスターとスレーブの両方として機能します)。これはよくあることですか、それともマスター マシンには通常 jobtracker/namenode タスクのみが与えられますか?

4

2 に答える 2

1

ここで多くの質問が寄せられます。

質問2)

  1. マシンは2台
  2. これらのマシンは HDFS と Map-Reduce 用に構成されています。
  3. HDFS 構成には Namenode (マスター) と Datanodes (スレーブ) が必要です
  4. Map-Reduce には、Jobtracker (マスター) と Tasktracker (スレーブ) が必要です。
  5. Namenode と Jobtracker は 1 つだけ構成されていますが、両方のマシンで Datanode と Tasktracker サービスを使用できます。マスターとスレーブとして機能するのはマシンではありません。それは単なるサービスです。マスター サービスを含むマシンにスレーブ サービスをインストールすることもできます。単純な開発セットアップに適しています。大規模な展開では、マスター サービスを別のマシン専用にします。

質問 1 パート 2)

  1. ファイル チャンクを作成し、複数のデータ ノードに複製して保存するのが HDFS ジョブです。心配する必要はありません。

質問 1 パート 1)

  1. Hadoop ファイル操作は、典型的な Unix ファイル操作 (ls、put など) のようにパターン化されています。
  2. Hadoop fs -put localefile /data/somefile --> localfile をパス /data/somefile の HDFS にコピーします
  3. put オプションを使用すると、標準入力から読み取り、HDFS ファイルに書き込むこともできます
  4. copyFromLocal は put オプションに似ていますが、動作がローカル ファイル システムから HDFS へのコピーに制限されている点が異なります。
  5. 参照: http://hadoop.apache.org/common/docs/r0.20.0/hdfs_shell.html#copyFromLocal
于 2012-07-03T22:59:52.643 に答える
0

1)

  • クライアントは名前ノードに接続して、新しいファイルを HDFS に登録します。
  • name ノードは、ファイルに関するいくつかのメタデータを作成します (デフォルトのブロック サイズまたはファイルの構成値を使用)
  • 書き込まれるデータのブロックごとに、クライアントは名前ノードにクエリを実行して、ブロック ID と、データを書き込む宛先データノードのリストを取得します。その後、データは各データノードに書き込まれます。

Javadoc には、さらに詳しい情報があります。org.apache.hadoop.hdfs.DFSClient.DFSOutputStream

2) 一部の実稼働システムは、マスターを独自の専用ノードにするように構成されますが (可能な限り最大のメモリ割り当てを許可し、CPU の競合を回避します)、クラスターが小さい場合は、名前ノードとデータ ノードを含むノード許容できる

于 2012-07-03T23:16:00.707 に答える