0

私はHadoopにかなり慣れていないので、ローカルマシンをセットアップし、プロセスがどのように機能するかを理解するためにいくつかの例を実行しようとしています。MACにhadoop1.0.3をセットアップしました。一連の質問があり、これまでに行ったことを説明するときに質問します。ここの指示に従いました。

スタンドアロン操作を設定していましたが、疑似配布になりました。Q1。)違いは何ですか?

.bash_profileを編集しました

export HADOOP_HOME=/Library/hadoop-1.0.3
export JAVA_HOME=$(/usr/libexec/java_home)

OSXでローカルホストにパスフレーズなしのsshを作成しました。次に$ ssh localhost

次に$ $HADOOP_HOME/bin/hadoop namenode -formatQ2。)新しいジョブを開始するたびにnamenodeをフォーマットする必要があり、何がフォーマットされますか?

次に$HADOOP_HOME/bin/start-all.sh

単語数の例を実行したかった。そのため、入力をHDFSに入れる必要がありました。そうするために私はしましたhadoop fs -mkdir WordCount_input

Q3。)ここのドキュメントでは、使用するように求められますが、これにより、hdfs:コマンドが見つからないというエラーが発生しますか?bin/hdfs dfs$HADOOP_HOME/bin/hdfs dfs -mkdir WordCount_input

putを使用してファイルをHDFSに配置しました。

hadoop dfs -put
/Users/yv/Documents/Hadoop-Workspace/file01
/Users/yv/Documents/Hadoop-Workspace/file02
/user/yv/WordCount_input

Q4)putの代わりにcopyFromLocalを使用する方が良いですか?

Q5。)私が作成したこれらのファイルは/ user /yv/にあります。/ user / yv /は正確にはどこにありますか?それらは、core-site.xmlで指定したhadoop.tmp.dirの場所内にありますか?

次に、例を実行しました

hadoop jar Documents / Hadoop-Workspace / wordcount.jar org.myorg.WordCount / user / yv / WordCount_input / output

したがって、同じ例を再度実行する必要がある場合は、出力ファイルを削除して新しいファイルを作成する必要があります。

いくつかの例を実行した後、データノードに十分なスペースがありませんでしたか?クラスタサマリーの下のNameNodeのWebインターフェイスでは、すべてが0になりました(例:DFS Remaining:0GB、Live Node:0)。理由はわかりません。

だから私はしました$HADOOP_HOME/bin/stop-all.sh。そして、ネームノードを再編成しました。したがって、namenodeとdatanodeのnamespaceIDが異なります。これは問題だ。

そのため、hadoop.tmp.dirを削除して、scrathからすべてを実行する必要がありました。

Q.6)データノードに十分なスペースがない場合、誰かが簡単な解決策を提供できますか?スペースを解放する方法は?

4

2 に答える 2

1
  1. スタンドアロンモードでは、ジョブ全体が1つのプロセスで実行され、疑似分散では、実際のクラスターの場合と同じように、ジョブトラッカーとタスクノードが別々のプロセスに分割されるだけだと思います。疑似分散は、おそらく開発に進む方法です。

  2. formatを複数回実行しないでください。namenodeのメタデータを初期化します。

  3. なぜそうなるのかわかりません。hadoop fs -mkdir WordCount_inputヨーヨーが使うべきものです。

  4. それらは同じです。

  5. データは、のdfs.data.dirプロパティで指定された場所に保存されますhdfs-site.xml。ただし、HDFSはユーザーフレンドリーではないディレクトリと命名構造を使用しているため、直接理解できない場合があります。内容を確認したい場合は、hadoop fsコマンドを使用する必要があります。

  6. これは完全にハードウェアに依存しています。複雑なことは何も起こっていません。ディスクの空き容量よりも多くのファイルがある場合は、より大きなドライブを購入するか、ファイルを削除する以外に何もできません。ローカル開発/テストの場合、dfs.replication1に設定することもできますが、これは本番システムにとっては非常に悪い考えです。

于 2012-10-02T23:33:06.343 に答える
1

Q1)次のページを参照してください:http://hadoop.apache.org/docs/r1.0.3/single_node_setup.htmlただし、通常、スタンドアロンはすべてのファイルをローカルファイルシステム(HDFSなし)に保存し、MapReduceジョブを実行すると、単一のJVMでジョブを実行します。スタンドアロンモードで実行できることには制限があります(たとえば、単一のレデューサーに制限され、分散キャッシュはありません)。

疑似分散モードとは、実際のHadoopインスタンス(NameNode、DataNode、Job Tracker、Task Tracker)を実行していることを意味しますが、これらはすべてローカルホストで実行されます。Hadoopのより多くの機能(複数のレデューサー、分散キャッシュ、HDFSなど)にアクセスできますが、適切な分散クラスターにのみ付属するもの(データレプリケーション/冗長性、タスクフェイルオーバー)が不足しています。

Q2)HDFS(分散ファイルシステム)のすべてを削除する場合にのみ、名前ノードを再フォーマットする必要があります。ジョブ間でフォーマットする必要はありません

Q3)これはドキュメント(おそらくHadoop 2に関連するドキュメント)では間違っているようです。binフォルダーにhdfsスクリプトはありません(表示されているエラーメッセージに従って)。

ディレクトリを作成するには、次を使用する必要がありますbin/hadoop fs -mkdir WordCount_input

Q4)2つのコマンドは同義です(hadoop fs -help copyFromLocal実際には、表示されるヘルプにこれを記載しています)

Q5)それらはHDFSに保存され、ローカルファイルシステムで直接ファイルを見つけることはできませんが、hdfs-site.xmlプロパティdfs.data.dirで構成された場所に保存されますが、ファイルはブロックとして保存され、namenodeはマッピングを維持しますファイル名とブロック名の間。

Q6) How much room is available on the partition you have configured for the dfs.data.dir? If you have no space left on the disk then there isn't much you can do other free up space or move to a new partition.

于 2012-10-02T23:41:23.977 に答える