VirtualBox を使用して Linux クラスターをシミュレートする方法

VirtualBox を使用して Linux クラスターをシミュレートする方法

1. ホストMacbookにHOSTをセットアップする

前回のドキュメントでは仮想マシンの静的 IP アドレスを設定しており、今後はその IP アドレスでログインすることができます。ただし、利便性のために設定しておきましょう。まず、Mac 上の hosts ファイルを変更して、ssh 時に IP アドレスを入力しなくても済むようにします。

sudo vim /etc/hosts

またはsudo vim /private/etc/hosts

これら 2 つのファイルは実際には 1 つのファイルであり、リンクによってリンクされています。 sudo を追加して管理者として実行する必要があることに注意してください。そうしないと、ファイルを保存できません。

##
# ホストデータベース
#
# localhostはループバックインターフェースを構成するために使用されます
# システムの起動時に発生します。このエントリは変更しないでください。
##
127.0.0.1 ローカルホスト
255.255.255.255 ブロードキャストホスト
::1 ローカルホスト
50.116.33.29 崇高なwbond.net
127.0.0.1 windows10.microdone.cn
# Docker Desktop によって追加されました
# ホストとコンテナで同じ kube コンテキストが動作できるようにするには:
127.0.0.1 Kubernetes.docker.内部

192.168.56.100 ハッシュ100
192.168.56.101 ハッシュ101
192.168.56.102 ハッシュ102
192.168.56.103 ハッシュ103
192.168.56.104 ハッシュ104
# セクション終了

2. 仮想マシンをコピーする

次に、前回構成した仮想マシンを複数のマシンにコピーしてクラスターを形成する必要があります。まず、仮想マシンを閉じて右クリックし、[コピー] を選択します。次のダイアログ ボックスが表示されます。完全に異なるコンピュータ環境をシミュレートするために、すべてのネットワーク カードの Mac アドレスを再生成することを選択します。

3. 各マシンのHOSTとIPアドレスを変更する

コピーした後は、IP アドレスの競合を避けるために、必ず仮想マシンにログインし、上記の方法に従って静的 IP アドレスを変更してください。

vi /etc/sysconfig/ネットワークスクリプト/ifcfg-enp0s3
vi /etc/sysconfig/ネットワークスクリプト/ifcfg-enp0s8

さらに、各 Linux 仮想マシンに HOSTNAME を設定して、これらの仮想マシンが相互に通信するときにホスト名を使用できるようにするのが最適です。複数のマシンのホスト名を 1 つずつ設定する必要があります。

[root@hadoop101 ~]# ホスト名ctl set-hostname hadoop107
[root@hadoop101 ~]# ホスト名
翻訳:

4. xcallを使用すると、サーバークラスターが同時にコマンドを実行できます。

複数のマシンを同時に持っているため、1台ずつログインして操作するのは面倒です。今後はシェルスクリプトを書いて、そのうちの1台からコマンドを発行できるようにすれば、すべてのマシンで実行できるようになり、非常に便利になります。ここに例があります。 仮想マシンは 5 台あります: hadopp100、hadopp101、hadopp102、hadopp103、hadopp104。私は、hadopp100 を他のすべてのマシンの制御を統合するための拠点として使用したいと考えています。 /user/local/bin に次の内容の xcall という名前のファイルを作成します。

/user/local/bin/xcall をタッチします

chmod +x /user/local/bin/xcall

vi/ユーザー/ローカル/bin/xcall


#!/bin/bash
pcount=$#
if((pcount==0));その後
引数なしをエコーし​​ます。
出口;
フィ

echo ---------localhost で実行中--------
$@
for((ホスト=101;ホスト<=104;ホスト++));do
echo ---------hadoop$host で実行中-------
ssh hadoop$ホスト$@
終わり
〜

たとえば、この xcall スクリプトを使用して、すべてのマシンで pwd 名を呼び出して現在のディレクトリを表示すると、順番に実行するためにパスワードの入力を求められます。

[root@hadoop100 ~]# xcall pwd
---------localhost で実行中--------
/根
---------hadoop101 で実行中-------
root@hadoop101のパスワード:
/根
---------hadoop102 で実行中-------
root@hadoop102のパスワード:
/根
---------hadoop103 で実行中-------
root@hadoop103のパスワード:
/根
---------hadoop104 で実行中-------
root@hadoop104のパスワード:
/根
[root@hadoop100 ~]#

5. scp と rsync

それでは、scp ツールについて説明しましょう。 scp は Linux 間でデータをリモートコピーできます。ディレクトリ全体をコピーする場合は、-r を追加します。

[root@hadoop100 ~]# ls
アナコンダ ks.cfg
[root@hadoop100 ~]# scp anaconda-ks.cfg hadoop104:/root/
root@hadoop104のパスワード:
アナコンダ-ks.cfg 100% 1233 61.1KB/秒 00:00
[root@hadoop100 ~]#

rsync を使用することもできます。scp は、ターゲット マシンの状況に関係なくデータをコピーします。 Rsync は最初にファイルを比較し、変更があった場合はファイルをコピーします。リモートでコピーするファイルが大きい場合は、rsync を使用する方が高速です。 残念ながら、rsync は centOS にデフォルトでインストールされていないため、最初にインストールする必要があります。前回の記事では、仮想マシンはすでにインターネットに接続できるため、オンライン インストールで十分です。

[root@hadoop100 ~]# xcall sudo yum install -y rsync

たとえば、hadoop100 マシン上の Java SDK を 102 に同期します。

[root@hadoop100 /]# rsync -r /opt/modules/jdk1.8.0_121/ hadoop102:/opt/modules/jdk1.8.0_121/

基本的なツールとクラスター環境がセットアップされたので、Hadoop の学習を開始できます。

要約する

上記は、VirtualBox を使用して Linux クラスターをシミュレートする方法を紹介したものです。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • VirtualBox+Ubuntu16でKubernetesクラスタを構築する実装
  • VirtualBoxでローカルKubernetesクラスターを構築する方法を説明します

<<:  MySQL 5.7.23 解凍バージョンのインストールチュートリアル(画像とテキスト付き)

>>:  WeChatアプレットはシンプルなサイコロゲームを実装します

推薦する

Vueシャトルボックスは上下の動きを実現します

この記事の例では、vueシャトルボックスを上下に動かすための具体的なコードを参考までに共有しています...

vuex で履歴を実装するためのサンプルコード

私は最近、ユーザー操作を元に戻す、またはやり直す機能を備えたビジュアル操作プラットフォームを開発して...

MySQLでトリガーを作成する方法

この記事の例では、参考のためにMySQLトリガーを作成するための具体的なコードを共有しています。具体...

WeChatアプレットの入力ジッター問題を解決する方法

問題を見つけるまず問題を見てみましょう。ミニプログラムでは、Vant のダイアログ コンポーネント ...

MySQLコンテナ間のレプリケーション構成例の詳細な説明

背景先週、会社で MySQL レプリケーションのトレーニングを受けたので、今週末は学んだことを実践す...

画像のフェードインとフェードアウト効果を実現する js

この記事では、画像のフェードインとフェードアウトを実現するためのjsの具体的なコードを参考までに紹介...

Nginx+SpringBoot による負荷分散の実装例

負荷分散の概要Nginx の負荷分散実装を紹介する前に、負荷分散の分類について簡単に説明します。負荷...

xshell を使用して VMware で Linux に接続する方法 (2 つの方法)

【序文】最近、ITOO の試験システムのストレステストを行いたいので、自分のコンピュータに Lin...

Windows が MySQL サービスを開始できず、エラー 1067 を報告する場合の解決策

突然、MySQLにログインすると、アクセスが拒否されたか、データベースに接続できないと表示されました...

JavaScriptでカレンダー効果を素早く実装

この記事では、カレンダー効果を素早く実現するためのJavaScriptの具体的なコードを例として紹介...

Win10でIIS10を構成し、ASPプログラムのデバッグをサポートする手順

マイクロソフトIIS (Internet Information Server) は、Microso...

MySQL 8.0 の新機能の分析 - トランザクション データ ディクショナリとアトミック DDL

序文トランザクション データ ディクショナリとアトミック DDL は、MySQL 8.0 で導入され...

mysqlは時間を自動的に追加し、時間を自動的に追加および更新する操作を実装します

時間フィールドは、データベースの使用時によく使用されます。よく使われるのは作成時間と更新時間です。し...

jsはブラウザを閉じるときにアカウントのログアウトを処理します

目次古典的なアプローチ質問その他の質問注意が必要な問題古典的なアプローチご存知のとおり、アカウントの...