docker コンテナの下に kong クラスターを構築するのは非常に簡単です。公式サイトの紹介も非常に簡単です。初心者は、どのように対処すればよいかわからないことがよくあります。苦労して考えた後、ついに構築しました。 主なアイデア: 異なるコングが同じデータベースに接続する (たった 1 文) 難易度: Kong を使用して異なるホスト上の同じデータベースに接続する方法 必要とする: 1. 2つのホスト 172.16.100.101 172.16.100.102 ステップ: 1. 101 にデータベースをインストールします (ここでは Cassandra を使用します) docker run -d --name kong-database \ -p 9042:9042 \ カサンドラ:最新 2. データベースを移行する(データベースの初期化を理解できます) docker run --rm \ --link kong-database:kong-database \ -e "KONG_DATABASE=cassandra" \ -e "KONG_PG_HOST=kongデータベース" \ -e "KONG_CASSANDRA_CONTACT_POINTS=kongデータベース" \ kong:最新のkong移行アップ 3. Kongをインストールする docker run -d --name kong \ --link kong-database:kong-database \ -e "KONG_DATABASE=cassandra" \ -e "KONG_PG_HOST=kongデータベース" \ -e "KONG_CASSANDRA_CONTACT_POINTS=kongデータベース" \ -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \ -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \ -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \ -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \ -p 8000:8000 \ -p 8443:8443 \ -p 8001:8001 \ -p 8444:8444 \ コング:最新 注: 上記の 3 つの手順はすべて 101 で完了しており、公式 Web サイトには https://getkong.org/install/docker/?_ga=2.68209937.1607475054.1519611673-2089953626.1519354770 があります。次の 4 番目の手順は別のホスト 102 で完了します。リンクは同じホストで使用できますが、異なるホスト上のコンテナの関連付けには使用できません。次の構成で十分です。 4. マルチノードのKongクラスタを実装するために、102に別のKongをインストールします。 docker run -d --name kong\ -e "KONG_DATABASE=cassandra" \ -e "KONG_PG_HOST=kongデータベース" \ -e "KONG_CASSANDRA_CONTACT_POINTS=172.16.100.101" \ -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \ -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \ -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \ -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \ -p 8000:8000 \ -p 8443:8443 \ -p 8001:8001 \ -p 8444:8444 \ コング:最新 5. ここではCassandraデータベースが使用されているため、構成パラメータdb_update_propagationを変更する必要があります。デフォルト値は0ですが、5に変更できます。コンテナを入力します。 docker exec -it kong bash //kong コンテナに入る cd etc/kong //ディレクトリに入る cp kong.conf.default kong.conf //kong.conf.default ファイルを kong.conf ファイルにコピーする vi kong.conf //db_update_propagation 構成項目を変更する
注: Kong 101 と 102 の両方でこの構成項目を変更する必要があります。db_update_propagation 構成項目の概要については、公式 Web サイトをご覧ください。 6. Kongクラスターを確認する 101にAPIを登録するには以下のようにします curl -i -X POST\ --url http://172.16.100.101:8001/apis/ \ --data 'name=example-api' \ --data 'hosts=example.com' \ --data 'upstream_url=http://mockbin.org' 次に、API が正常に登録されているかどうかを確認します。
戻り値は次のとおりです。 102 マシン ホストを介してクエリを実行することもできます。
上記と同じ結果が返ってきたら、同じ API にアクセスできるということです。API 情報はデータベースに保存されているので、同じデータベースにアクセスできることになります。これで Kong クラスターの構築は成功です。参考になれば幸いです。 補足知識: docker-compose を使用して Hadoop クラスターを作成する Dockerイメージをダウンロードする まず、使用する必要がある5つのDockerイメージをダウンロードします docker pull bde2020/hadoop-namenode:1.1.0-hadoop2.7.1-java8 docker pull bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8 docker pull bde2020/hadoop-resourcemanager:1.1.0-hadoop2.7.1-java8 docker pull bde2020/hadoop-historyserver:1.1.0-hadoop2.7.1-java8 docker pull bde2020/hadoop-nodemanager:1.1.0-hadoop2.7.1-java8 Hadoop 構成パラメータの設定 次の内容の hadoop.env ファイルを作成します。 CORE_CONF_fs_defaultFS=hdfs://ネームノード:8020 CORE_CONF_hadoop_http_staticuser_user=ルート CORE_CONF_hadoop_proxyuser_hue_hosts=* CORE_CONF_hadoop_proxyuser_hue_groups=* HDFS_CONF_dfs_webhdfs_enabled=true HDFS_CONF_dfs_permissions_enabled=false YARN_CONF_yarn_log___集約___有効=true YARN_CONF_yarn_resourcemanager_recovery_enabled=true YARN_CONF_yarn_resourcemanager_store_class=org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore YARN_CONF_yarn_resourcemanager_fs_state___store_uri=/rmstate YARN_CONF_yarn_nodemanager_remote___app___log___dir=/app-logs YARN_CONF_yarn_log_server_url=http://historyserver:8188/applicationhistory/logs/ YARN_CONF_yarn_timeline___サービスが有効=true YARN_CONF_yarn_timeline___サービス_generic___アプリケーション___履歴_enabled=true YARN_CONF_yarn_resourcemanager_system___metrics___publisher_enabled=true YARN_CONF_yarn_resourcemanager_hostname=リソースマネージャー YARN_CONF_yarn_timeline___サービスホスト名=履歴サーバー YARN_CONF_yarn_resourcemanager_address=リソースマネージャー:8032 YARN_CONF_yarn_resourcemanager_scheduler_address=リソースマネージャー:8030 YARN_CONF_yarn_resourcemanager_resource___tracker_address=リソースマネージャー:8031 docker-composeファイルを作成する 次の内容の docker-compose.yml ファイルを作成します。 バージョン: "2" サービス: ネームノード: イメージ: bde2020/hadoop-namenode:1.1.0-hadoop2.7.1-java8 コンテナ名: ネームノード ボリューム: - hadoop_nameノード:/hadoop/dfs/name 環境: - クラスター名=テスト 環境変数: ./hadoop.env を参照してください。 リソースマネージャー: イメージ: bde2020/hadoop-resourcemanager:1.1.0-hadoop2.7.1-java8 コンテナ名: リソースマネージャ 依存: - ネームノード -データノード1 -データノード2 -データノード3 環境変数: ./hadoop.env を参照してください。 履歴サーバー: イメージ: bde2020/hadoop-historyserver:1.1.0-hadoop2.7.1-java8 コンテナ名: 履歴サーバー 依存: - ネームノード -データノード1 -データノード2 -データノード3 ボリューム: - hadoop_historyserver:/hadoop/yarn/タイムライン 環境変数: ./hadoop.env を参照してください。 ノードマネージャ1: イメージ: bde2020/hadoop-nodemanager:1.1.0-hadoop2.7.1-java8 コンテナ名: ノードマネージャ1 依存: - ネームノード -データノード1 -データノード2 -データノード3 環境変数: ./hadoop.env を参照してください。 データノード1: イメージ: bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8 コンテナ名: データノード1 依存: - ネームノード ボリューム: - hadoop_datanode1:/hadoop/dfs/データ 環境変数: ./hadoop.env を参照してください。 データノード2: イメージ: bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8 コンテナ名: datanode2 依存: - ネームノード ボリューム: - hadoop_datanode2:/hadoop/dfs/データ 環境変数: ./hadoop.env を参照してください。 データノード3: イメージ: bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8 コンテナ名: datanode3 依存: - ネームノード ボリューム: - hadoop_datanode3:/hadoop/dfs/データ 環境変数: ./hadoop.env を参照してください。 ボリューム: hadoop_nameノード: hadoop_datanode1: hadoop_datanode2: hadoop_datanode3: hadoop_historyサーバー: Hadoop クラスターを作成して起動する
Hadoop クラスターを起動した後、次のコマンドを使用して Hadoop クラスターのコンテナー情報を表示できます。 # クラスターに含まれるコンテナとエクスポートされたポート番号を表示します sudo docker-compose ps 名前 コマンド 状態 ポート ------------------------------------------------------------ datanode1 /entrypoint.sh /run.sh 50075/tcp を起動 datanode2 /entrypoint.sh /run.sh アップ 50075/tcp datanode3 /entrypoint.sh /run.sh アップ 50075/tcp historyserver /entrypoint.sh /run.sh 8188/tcp を起動 namenode /entrypoint.sh /run.sh 50070/tcp を起動 nodemanager1 /entrypoint.sh /run.sh 8042/tcp を起動 リソースマネージャ /entrypoint.sh /run.sh 8088/tc を起動 # namenode の IP アドレスを表示します sudo docker inspect namenode | grep IPAddress http://:50070 からクラスターのステータスを確認することもできます。 課題の提出 ジョブを送信するには、まずクラスター内のノードにログインする必要があります。ここでは、namenode ノードにログインします。
データを準備してジョブを送信する /opt/hadoop-2.7.1 をインストールします # ユーザーディレクトリを作成 hdfs dfs -mkdir /user hdfs dfs -mkdir /user/root # データを準備する hdfs dfs -mkdir input hdfs dfs -put etc/hadoop/*.xml 入力 # ジョブを送信します hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep input output 'dfs[az.]+' # ジョブ実行結果を表示する hdfs dfs -cat output/* データを消去 hdfs dfs -rm 入力/* hdfs dfs -rmdir 入力/ hdfs dfs -rm 出力/* hdfs dfs -rmdir 出力/ クラスターを停止する CTRL+C を押すか、「sudo docker-compose stop」を使用すると、クラスターを終了できます。 クラスターを停止した後、作成されたコンテナは削除されません。停止したコンテナを削除するには、「sudo docker-compose rm」を使用します。 「sudo docker-compose down」を使用してコンテナを停止および削除することもできます。 コンテナを削除した後、「sudo docker volume ls」を使用して、上記のクラスターで使用されているボリューム情報を確認します。「sudo docker rm」を使用して削除できます。 上記のdockerを使ったkongクラスター構築操作に関する記事は、編集者が皆さんにシェアする内容の全てです。皆さんの参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: カーソル ループを使用して、MySQL ストアド プロシージャで一時テーブルを読み取る
序文: MySQL では、マスター/スレーブ アーキテクチャが最も基本的かつ最も一般的に使用されるア...
<table>テーブルデータをJSON形式に変換するJavaScript関数は次のとおり...
1. 切断理由WebSocket が切断される理由は多数あります。WebSocket が切断されたと...
1. インライン スタイル (<body></body> 内に配置されます)...
RedHat6.5インストールMySQL5.7チュートリアル共有、参考までに、具体的な内容は次のとお...
チェーンプログラミングの実装原理jQuery を使用すると、開発者は常にドット構文を使用して独自のメ...
ウェブサイトの互換性のデバッグは本当に面倒です。今日のウェブサイト デザイナーは、以前よりもはるかに...
この記事では、参考までに、シンプルなナビゲーションバーを実装するためのJavascriptの具体的な...
JavaScriptでの検索二分木実装は参考までに。具体的な内容は以下のとおりです。バイナリ検索木 ...
1. 事前準備 (windows7+mysql-8.0.18-winx64) 1. ダウンロードアド...
プロファイルを使用して遅いSQLを分析するMySQL の SQL パフォーマンス アナライザーの主な...
前回の記事【dockerコンテナのためのdockerfileを詳しく解説】では、dockerfile...
バントリストコンポーネントをスクロールするときに、スクロールバーの位置が保持されます。これは、kee...
NERDTree は Vim 用のファイル システム ブラウザーです。このプラグインを使用すると、ユ...
tomcat はオープンソースの Web サーバーです。Tomcat ベースの Web は実行効率...