DockerでHadoopを実行しイメージを作成する方法

DockerでHadoopを実行しイメージを作成する方法

車輪の再発明として、ここでは再パッケージ化を使用して Docker ベースの Hadoop イメージを生成します。

Hadoop クラスターが依存するソフトウェアは jdk、ssh などです。したがって、これら 2 つの項目と Hadoop 関連パッケージがイメージにパッケージ化されている限り、

設定ファイルの準備

1. Hadoop 関連の設定ファイル: core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves、hadoop-env.sh
2. ssh設定ファイル: ssh_config
3. Hadoop クラスターの起動ファイル: start-hadoop.sh

画像を作成する

1. インストールの依存関係

apt-get update を実行 && \
 apt-get install -y openssh-server openjdk-8-jdk wget

2. Hadoopパッケージをダウンロードする

wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.10.0/hadoop-2.10.0.tar.gz && \ を実行します。
tar -xzvf hadoop-2.10.0.tar.gz && \
ローカルの hadoop ディレクトリを /usr/local/hadoop ディレクトリにコピーします。
rm hadoop-2.10.0.tar.gz && \
rm /usr/local/hadoop/share/doc -rf

3. 環境変数を設定する

環境変数 JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 
環境変数 HADOOP_HOME=/usr/local/hadoop 
環境変数PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin

4. パスワード不要のノードログイン用のSSHキーを生成する

ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' && \ を実行します。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

5. Hadoop 関連のディレクトリを作成し、関連する設定ファイルをコピーし、関連するファイルに実行権限を追加し、最後にネームノード ノードをフォーマットします。各ノードが起動したら、ssh サービスを開始します。

mkdir -p ~/hdfs/namenode && \ を実行します。 
mkdir -p ~/hdfs/datanode && \
$HADOOP_HOME/logs に移動します。
config/* /tmp/ をコピーします
#ssh、hadoop 設定関連をコピー RUN mv /tmp/ssh_config ~/.ssh/config && \
ディレクトリを /tmp/hadoop-env.sh に変更します。 /usr/local/hadoop/etc/hadoop/hadoop-env.sh も変更します。
hdfs-site.xml をコピーして、ディレクトリを HADOOP_HOME/etc/hadoop/hdfs-site.xml にコピーします。 
mv /tmp/core-site.xml $HADOOP_HOME/etc/hadoop/core-site.xml && \
mv /tmp/mapred-site.xml $HADOOP_HOME/etc/hadoop/mapred-site.xml && \
yarn-site.xml を HADOOP_HOME/etc/hadoop/yarn-site.xml にコピーします。
mv /tmp/slaves $HADOOP_HOME/etc/hadoop/slaves && \
mv /tmp/start-hadoop.sh ~/start-hadoop.sh && \
mv /tmp/run-wordcount.sh ~/run-wordcount.sh
#実行権限を追加 RUN chmod +x ~/start-hadoop.sh && \
chmod +x ~/run-wordcount.sh && \
chmod +x $HADOOP_HOME/sbin/start-dfs.sh && \
chmod +x $HADOOP_HOME/sbin/start-yarn.sh 
#フォーマットネームノード
/usr/local/hadoop/bin/hdfs namenode -formatを実行します。 


Docker で Hadoop クラスターを実行する

上記の Dockerfile を通じてイメージが生成されたら、上記で生成されたイメージを使用して Hadoop クラスターを構築できます。ここでは、マスター ノードと 2 つのスレーブ ノードを起動します。

ブリッジ ネットワークを追加します。

docker ネットワーク作成 --driver=bridge solinx-hadoop

マスターノードを起動します。

docker run -itd --net=solinx-hadoop -p 10070:50070 -p 8088:8088 --name solinx-hadoop-master --hostname solinx-hadoop-master solinx/hadoop:0.1

Slave1 ノードを起動します。

docker run -itd --net=solinx-hadoop --name solinx-hadoop-slave1 --hostname solinx-hadoop-slave1 solinx/hadoop:0.1

Slave2 ノードを起動します。

docker run -itd --net=solinx-hadoop --name solinx-hadoop-slave2 --hostname solinx-hadoop-slave1 solinx/hadoop:0.1

マスター ノードに入り、スクリプトを実行して Hadoop クラスターを起動します。

要約する

以上が、Docker での Hadoop の実行とイメージ作成についてご紹介した内容です。お役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、すぐに返信させていただきます。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Hadoop マルチジョブ並列処理の詳細な例
  • 一般的な Hadoop エラーと解決策の詳細な説明
  • リモート デバッグ コードに IntelliJ IDEA を使用するように Hadoop を構成する方法
  • Spring と統合された Hadoop の使用方法に関する詳細なチュートリアル (ビッグ データのクイック スタート)
  • Windows で IDEA を使用して Hadoop 開発環境を構築する詳細な方法
  • Tencent Cloud 上で Hadoop 3.x 疑似クラスターを構築する方法を説明します
  • CentOS 7 は Hadoop 2.10 の高可用性 (HA) をビルドします
  • Hadoopを使用してファイルから指定されたコンテンツを抽出する方法を教えます

<<:  MySQL でよく使われる型変換関数の概要 (推奨)

>>:  Tencent インタビュー: SQL ステートメントの実行が非常に遅くなる理由は何ですか? ---後悔シリーズは見ないで(推奨)

推薦する

WMLとは何ですか?

WML (ワイヤレス マークアップ言語)。これは HTML から派生したマークアップ言語ですが、W...

img 画像タグに alt 属性を付与する必要がありますか?

img 画像タグに alt 属性を追加しますか?画像 img タグの alt 属性を見落とすことはよ...

MySQL 8.0.11 圧縮版のインストールチュートリアル

この記事では、MySQL 8.0.11のインストールチュートリアルを参考までに紹介します。具体的な内...

Vue Element フロントエンドアプリケーション開発 テーブルリスト表示

1. リストクエリインターフェースの効果コード処理ロジックを紹介する前に、まずは感覚的に理解し、レン...

Dockerコアとインストールの具体的な使い方

1. Docker とは何ですか? (1)DockerはLinuxコンテナ内でアプリケーションを実行...

完全なショッピングカートを実装するためのミニプログラム

ミニプログラムは、参考までに完全なショッピングカート[すべて選択/選択解除して金額を計算/加算と減算...

Docker で MySQL マスター スレーブ レプリケーションを実装するためのサンプル コード

目次1. 概要1. 原則2. 実装3. スレーブインスタンスを作成する4. マスタースレーブ構成要約...

Dockerfile echoは、指定されたファイル内の複数行のテキストを実装する方法を指定します。

Dockerfile内の指定されたファイルに複数の行を追加します。echoの後の「$」記号に注意し...

offsetWidth、clientWidth、scrollWidth、scrollTop、scrollLeft などのプロパティの図。

注 1: 上の画像の背景全体がこの Web ページのフルサイズであり、中央の小さなボックスがブラウザ...

Ubuntu 16.4 で完全に分散された Hadoop 環境を構築するための実践的なチュートリアル

序文この記事は主にubantu 16.4 Hadoop完全分散構築に関する関連コンテンツを紹介し、皆...

画像ソーシャルネットワーキングサイトのUIアプリケーションの比較分析(図)

私たちの生活、仕事、勉強において、ソーシャル ネットワークは徐々に将来のインターネット発展のトレンド...

jsは赤い封筒の順序と量を指定するアルゴリズムを実装します

この記事では、指定された赤い封筒の順序と金額を実装するためのjsの具体的なコードを共有します。具体的...

Dockerイメージのインポートとエクスポートの実装

GitLabのDocker使用法gitlab ドッカー起動コマンド docker run -d -p...

Node.jsはSTMPプロトコルとEWSプロトコルに基づいてメールを送信します

目次1 STMP プロトコルに基づいてメールを送信する Node.js メソッド2 MS Excha...

解析を実装するためにPostgreSQLデータベースを書き込むSQLスクリプト関数

この記事は主に、PostgreSQL データベースを記述して解析を実装する SQL スクリプト関数を...