Habrazhiteliさん、
Hadoopクラスターの展開の自動化に関する私の冒険に捧げられた
一連の記事 (
パート1と
パート2 )を要約する時が来ました。

私のプロジェクトはほぼ準備ができており、プロセスをテストするだけであり、胴体にノッチを付けることができます。
この記事では、私たちのクラスターである「
スレーブ 」の「駆動力」を高めることについて説明し、プロジェクト全体で使用した
リソースへの有用な
リンクを
まとめて提供し
ます 。 おそらく一部の人にとって、記事はソースコードと実装の詳細に乏しいように思えたので、記事の最後にGithubへのリンクを提供します
さて、習慣から、最初に、クラウドにデプロイすることに成功したアーキテクチャの図を示します。

私たちの場合、実行の
テストの性質を考えると、2つの
スレーブノードのみが使用されましたが、実際の状態ではそれらは数十になります。 次に、展開がどのように編成されたかを簡単に説明します。
スレーブを展開する
アーキテクチャから推測できるように、
スレーブノードは2つの
部分で構成され、それぞれが
マスターアーキテクチャの部分に関連付けられたアクションを担当します。
DataNodeは、
スレーブノードと、
データの分散
ストレージを調整する
NameNodeとの相互作用のポイントです。
DataNodeプロセスは
NameNodeノードのサービスに接続します。その後、
クライアントはファイル操作で
DataNodeノードに直接アクセスできます。 また
、データ複製の場合
、 DataNodeノードは互いに通信するため、
RAIDアレイの使用を
避けることができます。 複製メカニズムはすでにソフトウェアに組み込まれています。
DataNodeをデプロイするプロセス
は非常に簡単です。
- Java形式での前提条件の設定。
- Hadoopディストリビューションのパッケージでリポジトリを追加します。
- DataNodeの設定に必要なディレクトリのバックボーンを作成します。
- テンプレートとクックブックの 属性に基づいた構成ファイルの生成
- 配布パッケージのインストール( hadoop-hdfs-datanode )
service hadoop-hdfs-datanode start
よるDataNodeプロセスのservice hadoop-hdfs-datanode start
;- 展開プロセスのステータスの登録。
その結果、すべてのデータが正しく構成が適用されている場合、
NameNodeノードのWebインターフェースで追加された
スレーブノードを確認できます。 これは、分散データストレージに関連するファイル操作で
DataNodeノードを使用できるようになったことを意味します。 ファイルをHDFSにコピーして、自分で確認します。
NodeManagerは、
ResourceManagerとの対話を担当します
。ResourceManagerは 、それらを実行する
ために使用可能な
タスクと
リソースを管理します。
NodeManagerのデプロイメントプロセスは、
DataNodeの場合のプロセスに似ていますが、インストールとサービスのパッケージ名が異なります(
hadoop-yarn-nodemanager )。
Slaves-ノードの展開が正常に完了した後、クラスターの準備が整ったと見なすことができます。
環境変数 (hadoop_env、yarn_envなど)を設定するファイルに注意する価値があります。変数のデータはクラスターの実際の値に対応している必要があります。 また、このサービスまたはそのサービスが実行されている
ドメイン名と
ポートが示されている変数の値の正確さに注意する価値があります。
クラスターの状態を確認するにはどうすればよいですか? 最も手頃なオプションは、
クライアントノードの1つから
タスクを開始する
ことです。 たとえば、次のように:
hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar pi 2 5
hadoop-mapreduce-examples-2.2.0.jarは
タスク記述ファイルの名前(基本インストールで使用可能)、
piはタスクの
タイプ (この場合はMapReduceタスク)を示し、
2と
5はタスクの
分散パラメーターを担当します(より詳細に-
ここ )。
結果は 、すべての計算を実行した後、統計と計算の結果、またはそこにデータの出力を含む
出力ファイルの作成とともに端末に
出力されます(データの性質と出力の形式は、
.jarファイルに記述されているジョブによって異なります)。
<終了/>これらはクラスタとパイです、親愛なる
Habrazhiteliです。 この段階では-このソリューションに
理想的であるふりをしません。
クックブックコードのテストと改善/編集の段階がまだあります。 私は自分の経験を共有し、
Hadoopクラスターを展開する別の
アプローチを説明したかったのです。このアプローチは、最も単純でほとんどの正統派ではありません。 しかし、「鋼」が焼き戻されるのは、そのような型破りな状態です。 私の最終目標は、プライベートクラウド向けの
Amazon MapReduceサービスの控えめな対応です。
この
一連の記事に注意を払って注意を払ったすべての人からの
アドバイスを本当に歓迎します(注意を払って質問をして
くれた ffriendに特に
感謝します。
素材リンク
約束されたように、ここに私の同僚と一緒にプロジェクトを受け入れ可能な形にするのを助けた
資料のリストがあり
ます :
-HDPディストリビューションの詳細なドキュメント
-docs.hortonworks.com-父親の
Wiki 、
Apache Hadoop-wiki.apache.org/hadoop-それらからの
ドキュメント -hadoop.apache.org/docs/current-少し説明が古い
アーキテクチャーの説明記事-
ここ-2部構成の優れた
チュートリアル -
ここ-martsenの翻訳チュートリアルを適応
-habrahabr.ru/post/206196-コミュニティ
クックブック 「
Hadoop 」。これに基づいてプロジェクトを作成しました
-Hadoopクックブック-最後に-謙虚な
プロジェクトをそのまま(更新前)
-GitHubご清聴ありがとうございました !
コメントを歓迎します! 何かお困りのことがありましたら、お問い合わせください またね
UPD。 Habréの記事へのリンク、チュートリアルの翻訳を追加しました。