あなたはAmazon Elastic MapReduceを試みたことがありますか?これは、必要に応じて指定されたサイズのHadoopクラスタを呼び出すシンプルなAPIです。
これは、手動で独自のクラスタを作成する方が簡単です。
しかし、ジョブフローがデフォルトで終了すると、クラスタは停止してS3に出力されます。必要なものが単純に多少の処理をするだけであれば、これは道のりかもしれません。
HDFSのコンテンツを永続的に保存する必要がある場合(HBaseをHadoop上で実行している場合など)、実際にEC2上に独自のクラスタが必要な場合があります。この場合、ClouderaのAmazon EC2用Hadoopの配布が役立つかもしれません。それが起動します
ノード上
変更Hadoopの構成はEC2ブートストラップアクションを使用して可能である:
Q:どのように私は私のジョブフローのためのHadoopの設定を構成していますか?
Elastic MapReduceのデフォルトのHadoop設定は、ほとんどの作業負荷に適しています。ただし、ジョブフローの特定のメモリおよび処理要件に基づいて、これらの設定を調整することが適切な場合があります。たとえば、ジョブフロータスクがメモリを大量に使用する場合は、コアあたりのタスク数を減らし、ジョブトラッカーのヒープサイズを小さくすることができます。この状況では、起動時にジョブフローを設定するための事前定義されたブートストラップアクションが利用できます。設定の詳細と使用方法については、「開発者ガイド」のメモリの集中ブートストラップアクションの設定を参照してください。追加の定義済みのブートストラップアクションを使用すると、クラスタ設定を任意の値にカスタマイズできます。使用方法については、「開発者ガイド」のConfigure Hadoop Bootstrap Actionを参照してください。
クラスタを起動する方法について
、明確にしてください:
私はマスターノードとnスレーブノードでクラスタを実行しようとしている場合は、私は標準を使用して、N + 1つのインスタンスを起動します互換性のあるAMIを作成し、端末にコード「hadoop-ec2 launch-cluster name n」を実行します。マスターノードは正常ですが、スレーブノードが起動すると "欠落しているパラメータ-h(AMIがありません)"というエラーが表示され、どのように進行するのか完全にはわかりません。
どのように開始しようとしていますか?どのAMIを使用していますか?
まず、私が見つけたAMIを使用していました。私は端末で「ec2-describe-images -o amazon」のようなコードを実行していて、AMIが動作するものは何でもピックアップしていました。 "ec2-run-instances amixxxxxx -n 5 -k keypair"を使用してこのAMIでインスタンスを起動し、最後に "hadoop-ec2 launch cluster name 4"を持つクラスタを起動しようとしました(これは4つのスレーブノード)。正直言って、私は雲の中では非常に新しく、実際に私がやっていることの手がかりを持っていません。 –
私が変更しようとしているパラメータは、io.sort.mb(mapとreduceフェーズの間でソートするためのバッファメモリの量など)などのhadoopのジョブパラメータです。ファイルを変更することによって制御されます-site.xml)。これはhadoopフォルダに格納されています。 –
@Jonathan Viccary OK、Hadoopのsrc/contrib/ec2/binから "hadoop-ec2"スクリプトを使用しています。このようにhadoopクラスタを起動したいのですが...スクリプトを見て、インスタンスを自動的に起動することがわかります。ec2-run-instancesを手動で呼び出す必要はありません。しかし、あなたはそれを設定する必要があります:http://wiki.apache.org/hadoop/AmazonEC2#Setting_up –