常にトラフィック負荷、コンテナが増加すると、仮想化は、オンラインアプリケーションのさまざまな種類の能力を持っている必要がありますなっています。分散型データベースではなく、コンテナの迅速な展開、運用、保守効率を向上させるために非常に良いパスを強化します。
私たちは、あなたがより速くSequoiaDBクラスタを始めるのに役立つドッカー道の展開最適化を再度、この記事では、ドッカーベースの迅速な展開SequoiaDB分散クラスタをご紹介します。
1.クラスタ構成
次のように我々は、マルチノード、高可用性SequoiaDBクラスタで6隻を配備します。
(本稿では、SequoiaDBのv3.2.3バージョンなど)
クラスタコーディネータノード、ディレクトリノード、3つのデータセットを含み、各データセットは、データノードとノード・インスタンスのMySQLの3つのコピーを有しています。
2.環境
OS : Ubuntu 18
Docker Version : 18.09.7
Docker Compose Version: 1.25.3
Database Version : SequoiaDB 3.2.3
MySql Client: Sequoiasql-mysql
Cluster Deployment : 1 coordinator, 1 catalog, 3 data nodes, and 1 MySQL instance
2.1ドッカーインストール
2.1.1ドッカー
ドッカーが異なるプラットフォーム上にインストールするために、ユーザは、ドッカーインストレーションガイドを参照してくださいすることができます。
2.1.2ドッカー、コン
ドッカーツールを構成し、YAMLファイルの展開(すなわち:ドッカ-compose.yaml)で定義されたアプリケーションドッカ複数の容器を定義するために使用されます。
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
2.1.3 MySQLクライアント
(まだインストールされていない場合)MySQLクライアントをインストールします
3. SequoiaDB分散クラスタの展開
定義されたSequoiaDBクラスタ構成「sequoiadb_containers /ドッキングウィンドウ-compose.yaml」、利用者は、必要なパッケージをダウンロードするには、2つのオプションがあります。
オプション1:クローニングレポアドレス
(終了テキストパッケージを取得するために行ってきました[オリジナルを読むためにクリック])
オプション2:手動でダウンロード(同じディレクトリ構造を維持)
(終了テキストパッケージを取得するために行ってきました[オリジナルを読むためにクリック])
3.1クラスタの展開SequoiaDB
コマンドアップドッキングウィンドウ - コン:
- あなたがローカルで見つからない場合は、画像dockerhubをダウンロードして行くことができます
- 必要なコンテナを作成します。
- スタートコンテナ
- クラスタとMySQLインスタンス初期化SequoiaDB
1)クラスタの展開
cd sequoiadb_containers (或者到docker-compose的目录。yaml文件下载)
sudo docker-compose up -d
状態2)クラスタをチェック
$ sudo docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------
sequoiadb_containers_catalog_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_coord_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_data1_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_data2_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_data3_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_mysql_1 sh -c chmod +x /startup.sh ... Up 0.0.0.0:3310->3310/tcp
3)待機展開クラスタがコーディネータ・ノードとMySQLに接続され、ユーザは、以下のようにクラスタの状態を確認することができます。
# 检查 coordinator 日志
$ sudo docker-compose logs coord
...
...
coord_1 | ************ Deploy SequoiaDB ************************
coord_1 | Create catalog: catalog:11800
coord_1 | Create coord: coord:11810
coord_1 | Create data: data1:11820
coord_1 | Create data: data2:11820
coord_1 | Create data: data3:11820
coord_1 | Create data: data1:11830
coord_1 | Create data: data2:11830
coord_1 | Create data: data3:11830
coord_1 | Create data: data1:11840
coord_1 | Create data: data2:11840
coord_1 | Create data: data3:11840
coord_1 | SDB Cluster successfully created.
# 检查mysql日志
$ sudo docker-compose logs mysql
...
...
mysql_1 | >>> Waiting for COORD node to come up at (coord:11810)...
mysql_1 | >>> Waiting for COORD node to come up at (coord:11810)...
mysql_1 | >>> Waiting for COORD node to come up at (coord:11810)...
mysql_1 | Successfully reached COORD node at (coord:11810)
mysql_1 | COMMAND: /init.sh --port=3310 --coord=coord:11810
mysql_1 | Creating SequoiaSQL instance: MySQLInstance
mysql_1 | Modify configuration file and restart the instance: MySQLInstance
mysql_1 | Restarting instance: MySQLInstance
mysql_1 | Opening remote access to user root
mysql_1 | Restarting instance: MySQLInstance
mysql_1 | Instance MySQLInstance is created on port 3310, default user is root
mysql_1 | Init command returned: 0
MySQLの3.2接続を確認してください
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.25 Source distribution
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
SequoiaDBの設定を確認します。
mysql> show variables like 'sequoiadb%';
+---------------------------------------+-------------+
| Variable_name | Value |
+---------------------------------------+-------------+
| sequoiadb_bulk_insert_size | 2000 |
| sequoiadb_conn_addr | coord:11810 |
| sequoiadb_debug_log | OFF |
| sequoiadb_execute_only_in_mysql | OFF |
| sequoiadb_optimizer_select_count | ON |
| sequoiadb_password | |
| sequoiadb_replica_size | 1 |
| sequoiadb_selector_pushdown_threshold | 30 |
| sequoiadb_use_autocommit | ON |
| sequoiadb_use_bulk_insert | ON |
| sequoiadb_use_partition | ON |
| sequoiadb_user | |
+---------------------------------------+-------------+
12 rows in set (0.01 sec)
mysql> show storage engines;
+--------------------+---------+----------------------------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------------------------+--------------+------+------------+
| SequoiaDB | DEFAULT | SequoiaDB storage engine(Community). Plugin: eebcb4f, Driver: 3.2.3, BuildTime: | YES | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------------------------+--------------+------+------------+
10 rows in set (0.00 sec)
3.3試験
ユーザーがコマンドを使用してMySQLデータベースとテーブルを作成することができます。
mysql> create database sample;
Query OK, 1 row affected (0.01 sec)
mysql> use sample;
Database changed
mysql> create table t1 (c1 int);
Query OK, 0 rows affected (0.47 sec)
mysql> show table status;
+------+-----------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-------------+----------+----------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+------+-----------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-------------+----------+----------------+---------+
| t1 | SequoiaDB | 10 | Fixed | 0 | 0 | 0 | 8796093022208 | 131072 | 0 | NULL | NULL | NULL | NULL | utf8mb4_bin | NULL | | |
+------+-----------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-------------+----------+----------------+---------+
1 row in set (0.03 sec)
4.クラスタ管理
4.1停止/開始クラスタ
アップコマンドを使用してSequoiaDBクラスタを作成した後、そのようにそれは起動を停止することができます。
注意:
「停止」コマンドは、コンテナを削除しません、あなたはどのようなデータを失うことはありません。
4.1.1停止命令
$ sudo docker-compose stop
Stopping sequoiadb_containers_mysql_1 ... done
Stopping sequoiadb_containers_coord_1 ... done
Stopping sequoiadb_containers_data2_1 ... done
Stopping sequoiadb_containers_data1_1 ... done
Stopping sequoiadb_containers_catalog_1 ... done
Stopping sequoiadb_containers_data3_1 ... done
$ sudo docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------
sequoiadb_containers_catalog_1 sh -c chmod +x /startup.sh ... Exit 137
sequoiadb_containers_coord_1 sh -c chmod +x /startup.sh ... Exit 137
sequoiadb_containers_data1_1 sh -c chmod +x /startup.sh ... Exit 137
sequoiadb_containers_data2_1 sh -c chmod +x /startup.sh ... Exit 137
sequoiadb_containers_data3_1 sh -c chmod +x /startup.sh ... Exit 137
sequoiadb_containers_mysql_1 sh -c chmod +x /startup.sh ... Exit 137
4.1.2 startコマンド
$ sudo docker-compose start
Starting catalog ... done
Starting data1 ... done
Starting data2 ... done
Starting data3 ... done
Starting coord ... done
Starting mysql ... done
$ sudo docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------
sequoiadb_containers_catalog_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_coord_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_data1_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_data2_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_data3_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_mysql_1 sh -c chmod +x /startup.sh ... Up 0.0.0.0:3310->3310/tcp
# Verity mysql client is up
$ sudo docker-compose logs mysql
Attaching to sequoiadb_containers_mysql_1
mysql_1 | Starting service sequoiasql-mysql ...
mysql_1 | ok. (PID: 38)
...
mysql_1 | MySql instance is started
4.2アップ/ダウンクラスター
4.2.1ダウンコマンド
コンテナSequoiaDBクラスタの展開を停止し、削除するコマンドダウン。
注意:
コンテナが破損したときに復元/ロールバックすることはできませんので、コマンドの実行ダウン、注意する必要があります。
$ sudo docker-compose down
Stopping sequoiadb_containers_mysql_1 ... done
Stopping sequoiadb_containers_coord_1 ... done
Stopping sequoiadb_containers_data2_1 ... done
Stopping sequoiadb_containers_data1_1 ... done
Stopping sequoiadb_containers_catalog_1 ... done
Stopping sequoiadb_containers_data3_1 ... done
Removing sequoiadb_containers_mysql_1 ... done
Removing sequoiadb_containers_coord_1 ... done
Removing sequoiadb_containers_data2_1 ... done
Removing sequoiadb_containers_data1_1 ... done
Removing sequoiadb_containers_catalog_1 ... done
Removing sequoiadb_containers_data3_1 ... done
Removing network sequoiadb_containers_sequoiadb_net
$ sudo docker-compose ps
Name Command State Ports
------------------------------
4.2.2アップコマンド
コマンドアップサービス(コンテナ・ネットワーク)を作成して開始しますsequoiadbのcluserが定義されています。
$ sudo docker-compose up -d
Creating network "sequoiadb_containers_sequoiadb_net" with the default driver
Creating sequoiadb_containers_data2_1 ... done
Creating sequoiadb_containers_data3_1 ... done
Creating sequoiadb_containers_catalog_1 ... done
Creating sequoiadb_containers_data1_1 ... done
Creating sequoiadb_containers_coord_1 ... done
Creating sequoiadb_containers_mysql_1 ... done
$ sudo docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------
sequoiadb_containers_catalog_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_coord_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_data1_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_data2_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_data3_1 sh -c chmod +x /startup.sh ... Up
sequoiadb_containers_mysql_1 sh -c chmod +x /startup.sh ... Up 0.0.0.0:3310->3310/tcp
# 验证MySQL连接
$ mysql -h 127.0.0.1 -P 3310 -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.25 Source distribution
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show storage engines;
+--------------------+---------+----------------------------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------------------------+--------------+------+------------+
| SequoiaDB | DEFAULT | SequoiaDB storage engine(Community). Plugin: eebcb4f, Driver: 3.2.3, BuildTime: | YES | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------------------------+--------------+------+------------+
あなたはそれの手を持っているかどうかはわからないのですか?
SequoiaDBのフォローアップは、あなたがすぐに分散データベースを始めるのに役立つ技術的なチュートリアルのシリーズを起動し続け、および分散データベースの原則をより良く理解するだろう、私たちは、ご期待します!