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

推薦する

CSS における zoom:1 属性の定義と機能

今日、CSS の zoom 属性は何のために使用されるのかと尋ねられました。この属性は、フローティン...

Windows 10 + mysql 8.0.11 zipインストールチュートリアルの詳細

準備する: MySQL 8.0 Windows zip パッケージのダウンロード アドレス: htt...

MySQLコマンドが中国語で入力できない問題の解決方法

問題を見つける最近、MySQL コマンドを使用して MySQL サーバーに接続したときに、以下のよう...

IE6 の select を div でカバーできないバグの解決方法

div を使用してマスクを作成したり、ポップアップ ウィンドウをシミュレートしたりします。ただし、I...

Vue の 4 つのカスタム命令の説明と使用例

4つの実用的なVueカスタム指示1. Vドラッグ要件: マウスドラッグ要素アイデア:要素のオフセット...

MySQL ステートメントを使用して、さまざまな整数が占めるバイト数とその最大値と最小値を調べる例

直接コード: タイプとして「bigint unsigned」、バイトとして「8」、max_numとし...

vscodeを使用してReact Native開発環境を構築する方法を教えます

質問コードにはプロンプトがありません: RN 開発に不慣れな、フロントエンド以外の学生の多くは、「ど...

Uniappがスライディングスコアリング効果を実現

この記事では、スライディングスコアリングを実装するためのuniappの具体的なコードを参考までに共有...

MySQL でデータ テーブルを作成し、主キーと外部キーの関係を確立する方法の詳細な説明

序文MySQL テーブルの主キーと外部キーを作成するときは、次の点に注意する必要があります。主キーと...

JavaScript プロトタイプチェーンを理解するための 2 つの図

目次1. プロトタイプの関係2. プロトタイプチェーン3. 結論序文:前回の記事では、JavaScr...

jwtを使用してノードによって生成されたトークンをどこに保存するかについての簡単な説明

A: 通常はクライアントに保存されます。 jwt または JSON Web Token は、リクエス...

MySQL パフォーマンスの包括的な最適化方法リファレンス、CPU、ファイルシステムの選択から mysql.cnf パラメータの最適化まで

この記事では、一般的な MySQL 最適化方法をいくつかまとめて簡単に紹介します。これは、フルタイム...

HTML5で見逃せないAPIやヒントのまとめ

これまでのブログ投稿では、HTML 5 ではあまり使われていないが注目すべき API やヒントに焦点...

Nginx Rewrite の使用シナリオと設定方法の分析

Nginx Rewriteの使用シナリオ1. URL アドレスジャンプ。たとえば、ユーザーが pm....

MySQLは文字列関数のSQL文をインターセプトします

1. left(name,4)は左の4文字をインターセプトしますリスト: SELECT LEFT(2...