序文
ビッグデータプラットフォームに基づいてxxxxのこのような卒業プロジェクトをどのように行うのかと多くの人が私に尋ねました。これは以前にビッグデータの卒業設計について書いた記事「ビッグデータプラットフォームに基づく卒業設計 」を参照してください。この記事は以前の完了を最適化するものです。
個人的には大きく2つに分けられると考えています。最初の部分は、基本的なプラットフォームの構築です。たとえば、Hadoop クラスター、Kafka クラスターです。
2つ目は、ビッグデータ基盤に基づくデータ分析や大画面ディスプレイなどのビジュアルアプリケーションなどの上位層アプリケーションの構築です。前者は、設計全体にビッグ データ要素を追加するための基本的なプラットフォーム機能を提供し、後者は、主にビッグ データ プラットフォームで行ったことを他のユーザーに理解させるための上位層のアプリケーション機能を提供します。
数日前に退屈していて、仮想マシン上の Docker コンテナをベースに、 Ambariを使用してHDP バージョンの Hadoop ビッグ データ クラスターを構築しました。したがって、この記事と組み合わせて、最初の部分を詳しく説明し、新しい考え方を提供します。
一連の考え
クラスター構築の過程では、さまざまな問題が発生しました。質問を考えて情報を調べてください。これは非常に興味深いことです。
前回の記事でも書きましたが、私のビッグデータ卒業プロジェクトのHadoopプラットフォーム構築部分は3台の仮想マシンをベースにしています。当時使用されていたHadoopのApacheバージョン。
Apache バージョンの欠点は、統合された管理および制御プラットフォームがないことです。
- 以前のインストールでは、インストール パッケージを手動で配布し、各ノードで起動コマンドを実行する必要があります。
- その後のノードのメンテナンス、サービスの起動とシャットダウンはすべてバックグラウンドでコマンドを実行する必要があります。
仮想マシンが 3 台あると、毎回起動するのに多大な労力がかかります。そこで、Ambari を使用して、仮想マシンで処理できる Docker コンテナーをベースにしたHDP バージョンの Hadoop クラスターを構築することを考えました。
全体構造
全体のアーキテクチャ設計とテクノロジーの選択は個々のニーズに基づいており、参照することができます。
1. 技術の選択
ホストとドッカーのオペレーティング システムはcentos7です。centos8を試してみましたがダメでした。主要
- docker: クラスターを構築するための仮想マシンノードの代わりにコンテナー
- docker-compose: コンテナーを調整します。すべてのコンテナを管理および起動する
- アンバリ: バージョン 2.7.3。すべてのクラスターを視覚的にインストール、監視、管理します。
- HDP: バージョン 3.1。これらには、Hadoop、HDFS、Yarn、Spark、Kafka、Zookeeper およびその他のサービスが含まれます。
- MySQL: ambari メタベース。これは、後のアプリケーションでも使用されます。
これに加えて、いくつかのシェル スクリプトが必要です。
2. アーキテクチャ設計
プラットフォーム一覧
これは Ambari のホームページ ダッシュボードの一部であり、HDFS ストレージとメモリ使用量のインジケーターを確認できます。
Hadoopクラスタ
Hadoop クラスターには 4 つのノードがあります。NameNode、スタンバイ NameNode、および 2 つの DataNode。
右側のNameNode UIをクリックすると、Hadoop クラスターの UI インターフェイスが表示されます。
クラスターノード
ここでのホストとは、すべてのクラスター ノードの数と Docker ノードの数を指します。ここでは、メモリが限られているため、Docker がいくつかのサービスを開始します。
たとえば、kafka1 ノードは Kafka と Zookeeper とともにインストールされます。
環境整備
クラスターを構築するために docker を練習していたとき、時間の 90% が環境の準備に費やされました。同様に、遭遇する問題の 90% もこのステップで発生します。
1. 仮想マシンの準備
私自身のアーキテクチャは仮想マシンであり、他のノードは docker に置き換えられています。docker は軽量の仮想マシンとして理解できます。
私が docker を選んだ理由:
- とても面白いと思うので、自分の苦手なことに挑戦したいと思っています。
- 仮想マシンは 20G のストレージを占有する可能性がありますが、Docker は数百 MB * しか占有しません。
- 必要なのは仮想マシンを起動することだけです。Docker は、この仮想マシン上でアプリケーション サービスとして実行されます。
実際、ここでは 3 ~ 4 台の仮想マシンを使用することをお勧めします。なぜなら、docker 自体が多くの人にとって難しく、docker をノードに組み込むのに多くの時間がかかるからです。
2. Dockerコンテナの準備
どうしても docker を使用したい場合は、このステップを参照してください。このステップでノードの Docker イメージを構築するとき、それを何度も繰り返しました。
ドッカーファイル
Docker コンテナーのシステム イメージを構築するには、数か月 centtos7 で dockerfile を作成する必要があります。また、Docker コンテナは仮想マシンを置き換えるため、Docker コンテナ内の環境は仮想マシンと同じである必要があります。したがって、dockerfile は次の条件を満たす必要があります。
- ポート22を開いてsshdサービスを開始します。
- JDK、scalaの設定
- キーを生成し、パスワードなしの SSH ログインを構成する
- python2.7 (centos7に含まれています)
- Yum は chrony などのいくつかのソフトウェアをインストールします。
- ホストを構成する
dockerfileを書く段階では、たくさんの情報を参考にしてビルドを繰り返し、何度も試してようやく成功しました。
ドッカー構成
docker-compose は docker コンテナ用のオーケストレーションツールであり、start/stop を通じてすべてのコンテナを起動/停止するために yaml 設定ファイルを記述する必要があります。
このcentos_hdpは私が構築したミラーイメージで、ポートはコンテナのポートを開くために使用され、ボリュームはホストのディレクトリをマウントするために使用されます。
3. インストールパッケージをダウンロードする
2016 年の卒業プロジェクトでは、構築したビッグデータ プラットフォームの各コンポーネントは個別にダウンロードしてインストールされました。Hadoop インストール パッケージは Hadoop 公式 Web サイトからダウンロードする必要があり、Kafka インストール パッケージは Kafka 公式 Web サイトからダウンロードする必要があります。インストールしたいバージョンをインストールしてください。
Ambari のインストールに基づいて、すべてのコンポーネントは HDP インストール パッケージに含まれていますが、このインストール パッケージは 10G と非常に大きくなります。
ambari-2.7.3.0-centos7.tar.gz
HDP-3.1.0.0-centos7-rpm.tar.gz
HDP-UTILS-1.1.0.22-centos7.tar.gz
HDP-GPL-3.1.0.0-centos7-gpl.tar.gz
上記は必要なインストール パッケージのリストです。ダウンロード後、ローカルに構築された http サーバーに配置し、ambari のインストール時に使用します。
エピローグ
この記事では主にビッグ データ クラスター構築のアーキテクチャ設計と実装アイデアについて説明し、後の記事で上位層のアプリケーションの構築について説明します。現在フロントエンドも勉強中なので、Webアプリケーションを自分で実装してみたいと思っています。ビッグ データ クラスターの構築、バックグラウンド実装、フロントエンド テクノロジーに関して、グループにプライベートに参加して相互に通信することができます。
Docker ベースの Ambari で Hadoop を構築するのは難しいので、慎重に試してください。