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

推薦する

docker ベースで Prometheus+Grafana を構築する手順の詳細説明

1. プロメテウスの紹介Prometheus は、もともと SoundCloud によって開発された...

iframe ページパラメータの文字化けの問題について議論

非常に珍しいパラメータ文字化けの問題に遭遇しました。まずページを見てみましょう写真に示すように、月次...

Nginx 転送ソケットポート設定の詳細な説明

Nginx によるソケット ポート転送の一般的なシナリオ: オンライン学習アプリケーションでは、通常...

マークアップ言語 - タイトル

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

MySQL information_schema データベースの詳細な説明

1. 概要information_schema データベースは performance_schema...

jsを使ってシンプルなディスククロックを実現する

この記事では、参考までに、シンプルなディスククロックを実装するためのjsの具体的なコードを紹介します...

現在のマウススライドの座標を取得するVue+openlayer5メソッド

序文: Vue プロジェクトで現在のマウスの座標を取得するにはどうすればよいでしょうか。ここで共有す...

トップに戻るボタンを実装するJavaScript

この記事では、トップに戻るボタンを実装するためのJavaScriptの具体的なコードを参考までに紹介...

tomcat9.exeをクリックするとクラッシュする問題を解決する方法

ある読者から連絡があり、ダウンロードが終了し、操作がまだ開始されていないのに、なぜ Tomcat の...

Linuxディレクトリ構造の詳細な紹介

Linuxを学び始めるときは、まずLinuxの標準ディレクトリ構造を理解する必要があります。 / r...

JavaScriptを使用して独自のAjax関数を定義する

ネイティブJSによって開始されたネットワークリクエストは、クエリ文字列の形でサーバーに送信されるため...

エンコードが utf-8 に設定されている場合に Web ページが文字化けする問題の解決策

最近、PHP で Web ページを書いているときに、エンコードを UTF-8 に設定しました。しかし...

Dockerコンテナ起動時に固定IPを設定する実装

Dockerインストール後のネットワークタイプ [root@insure updev]# docke...

MySQL 論理バックアップとリカバリ テストの概要

目次1. データベース論理バックアップとはどのようなバックアップですか? 2. よく使われる論理バッ...

Vue-routerルーティングの使い方

目次1. 説明2. インストール3. テスト1. 説明Vue Router は、Vue.js の公式...