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アプレットはシンプルなサイコロゲームを実装します

推薦する

MySQL での IN データボリュームの使用の最適化された記録

MySQL のバージョン番号は 5.7.28 です。テーブル A には 390 万件のレコードがあり...

HTML ウェブページでのアンカー(名前付きアンカー)の使用の概要

以下の情報はインターネットから収集したものです1. アンカーは、Web ページ作成におけるハイパーリ...

Nginx の高同時実行最適化の実践

1. チューニングの必要性​ 私は、どのように書けばいいのか本当に分からないので、共有するために最適...

Vue の vue.$set() メソッドのソースコード例の詳細な説明

Vue を使用してプロジェクトを開発する過程で、次のような問題によく遭遇します。Vue のデータでオ...

jsBridgeの動作メカニズムを1つの記事で学ぶ

目次js 呼び出しメソッドアンドロイド1.jsはネイティブを呼び出す2. ネイティブコールjs iO...

Vue コンポーネント化の一般的な方法: コンポーネント値の転送と通信

関連する知識ポイント親コンポーネントから子コンポーネントに値を渡す子コンポーネントから親コンポーネン...

IEウェブページのポップアップウィンドウの共通パラメータは自分で設定できます

ポップアップは、現在のウィンドウにメニューツールバーがあるかどうかとは関係ありません。ページにスクリ...

HTML 言語百科事典

123WordPress.com-HTML noscriptオブジェクトolオプションPパラントプレ...

HTML チュートリアル、optgroup 要素の理解

カテゴリ選択を選択します。テストの結果、IE と FF はこの要素を適切にサポートできることがわかり...

モバイル端末の適応に関する簡単な説明

序文フロントエンド コードの記述では、「互換性」という言葉から逃れることはできません。過去の PC ...

Docker を使用して ELK ログ システムを構築する例

以下のインストールではすべて、インストール ルート ディレクトリとして ~/ ディレクトリが使用され...

Linux システムでのルート ディレクトリ拡張の概要

1. Linuxディスクの状態を確認する df -lh lsblkコマンドは、使用可能なすべてのブロ...

Maven で tomcat8-maven-plugin プラグインを使用する詳細なチュートリアル

オンラインで多くの記事を検索しましたが、解決策は見つかりませんでした。次のように、tomcat7-m...

MySQL 5.7.18 Green Edition のダウンロードとインストールのチュートリアル

この記事では、MySQL 5.7.18のグリーンバージョンをダウンロードしてインストールする詳細な手...