1。概要
本書では主に、Apache doris データベース構築に基づくクラスタの構築、アップグレード、拡張の準備作業を紹介します (1) 。
2. ソフトウェアおよびハードウェアの要件
Doris は、オープン ソース MPP アーキテクチャの OLAP データベースとして、ほとんどの主流の商用サーバーで実行できます。MPP アーキテクチャの同時実行性の利点と Doris の高可用性機能を最大限に活用するには、Doris の展開が次の要件に従うことをお勧めします。
Linux オペレーティング システムのバージョン要件
Linuxシステム | バージョン |
---|---|
CentOS | 7.1以降 |
Ubuntu | 16.04以降 |
ソフトウェア要件
ソフトウェア | バージョン |
---|---|
ジャワ | 1.8以降 |
GCC | 4.8.2以降 |
オペレーティング システムのインストール要件
システム内で開いているファイル ハンドルの最大数を設定するには、コマンドは次のとおりです。
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
クロック同期
Doris のメタデータには 5000 ミリ秒未満の時間精度が必要であるため、クロックの問題によるメタデータの不一致によるサービス異常を避けるために、クラスター内のすべてのマシンがクロックを同期する必要があります。
スワップパーティションを閉じる(スワップ)
Linux のスワップ パーティションは、Doris に深刻なパフォーマンスの問題をもたらします。インストール前にスワップ パーティションを無効にする必要があります。
Linuxファイルシステム
ext4 と xfs の両方のファイル システムがサポートされています。
開発およびテスト環境
モジュール | CPU | メモリー | ディスク | 通信網 | インスタンスの数 |
---|---|---|---|---|---|
フロントエンド | 8コア+ | 8GB以上 | SSD または SATA、10GB+* | ギガビットイーサネット | 1 |
バックエンド | 8コア+ | 16GB以上 | SSD または SATA、50GB 以上 * | ギガビットイーサネット | 1-3 * |
本番環境
モジュール | CPU | メモリー | ディスク | 通信網 | インスタンスの数 (最小要件) |
---|---|---|---|---|---|
フロントエンド | 16コア以上 | 64GB以上 | SSD または RAID カード、100GB+ * | 10ギガビットNIC | 1-3 * |
バックエンド | 16コア以上 | 64GB以上 | SSD または SATA、100G+* | 10ギガビットNIC | 3 * |
注1:
- FE のディスク容量は、主にログや画像などのメタデータを保存するために使用されます。通常は数百 MB から数 GB です。
- BE のディスク領域は主にユーザー データの保存に使用され、合計ディスク領域はユーザー データの合計量 * 3 (3 コピー) で計算され、さらに領域の 40% がバックグラウンドの圧縮とデータの保存のために予約されます。いくつかの中間データ
。- 複数の BE インスタンスを 1 台のマシンにデプロイできますが、FE は 1 つだけデプロイできます。データのコピーが 3 つ必要な場合、BE インスタンスをデプロイするには少なくとも 3 台のマシンが必要です
(1 台のマシンで 3 つの BE インスタンスをデプロイするのではなく)。複数の FE が配置されているサーバーのクロックは一貫している必要があります (最大 5 秒のクロック偏差は許容されます)。- テスト環境は 1 つの BE だけでテストすることもできます。実際の運用環境では、BE インスタンスの数が全体的なクエリ レイテンシーを直接決定します。
- すべてのデプロイメント ノードがスワップを閉じます。
注2: FEノード数
- FEの役割はフォロワーとオブザーバーに分けられます(リーダーはフォロワーグループ内で選出される役割であり、以下総称して
フォロワーと呼びます)。- FEノードデータは少なくとも1(1Follower)です。1 つのフォロワーと 1 つのオブザーバーを導入すると
、読み取りの高可用性を実現できます。3 つのフォロワーを展開すると、読み取りおよび書き込みの高可用性 (HA) を実現できます。- フォロワーの数は奇数である必要があり、オブザーバーの数は任意です。
- 過去の経験によれば、クラスターの可用性要件が高い場合 (オンライン サービスの提供など)、3 つのフォロワーと 1 ~ 3 つのオブザーバーを展開できます。オフラインビジネスの場合は、フォロワー 1 名とオブザーバー 1 ~ 3 名を配置することをお勧めします。
- Doris のパフォーマンスを最大限に発揮するには、通常 10 ~ 100 台程度のマシンを推奨します (そのうち 3 台は FE (HA) で配備され、残りは BE で配備されます)。
- もちろん、Doris のパフォーマンスはノードの数と構成に正の関係があります。Doris は、少なくとも 4 台のマシン (1 台の FE、3 台の BE、メタデータのバックアップを提供するために 1 台の BE と 1 台のオブザーバー FE を混合) およびより低い構成でもスムーズに実行できます。
- FE と BE が混在する場合は、リソースの競合に注意し、メタデータ ディレクトリとデータ ディレクトリが異なるディスクに属するようにする必要があります。
ブローカーの導入
ブローカーは、hdfs などの外部データ ソースにアクセスするために使用されるプロセスです。通常、各マシンに 1 つのブローカー インスタンスをデプロイするだけで十分です。
ネットワーク要件
Doris のインスタンスはネットワーク経由で直接通信します。以下の表に、必要なすべてのポートを示します。
インスタンス名 | ポート名 | デフォルトのポート | 通信方向 | 説明する |
---|---|---|---|---|
なれ | be_port | 9060 | FE --> BE | BE 上のリサイクルサーバーのポート。FE からのリクエストを受信するために使用されます。 |
なれ | ウェブサーバーポート | 8040 | BE <–> BE | BE 上の http サーバーのポート |
なれ | ハートビートサービスポート | 9050 | FE --> BE | BE 上のハートビート サービス ポート (thrift)、FE からハートビートを受信するために使用されます。 |
なれ | brpc_port | 8060 | FE <–> BE、BE <–> BE | BE 上の brpc ポート。BE 間の通信に使用されます。 |
FE | http_ポート | 8030 | FE <–> FE、ユーザー <–> FE | FE の http サーバー ポート |
FE | rpc_ポート | 9020 | BE --> FE、FE <-> FE | FE のリサイクルサーバーポート、各 FE の設定は一貫している必要があります |
FE | クエリポート | 9030 | ユーザー <–> FE | FE の mysql サーバー ポート |
FE | edit_log_port | 9010 | FE <–> FE | FE上のbdbje間の通信に使用されるポート |
ブローカ | ブローカー_ipc_ポート | 8000 | FE --> ブローカー、BE --> ブローカー | ブローカー上のリサイクルサーバーはリクエストの受信に使用されます |
注:
複数の FE インスタンスをデプロイする場合は、FE の http_port 構成が同じであることを確認してください。
導入前に、各ポートに適切な方向のアクセス権があることを確認してください。
IPバインディング
複数のネットワーク カードの存在、または Docker やその他の環境のインストールによる仮想ネットワーク カードの存在により、同じホスト上に複数の異なる IP が存在する場合があります。現在、Doris は利用可能な IP を自動的に識別できません。したがって、展開ホスト上に複数の IP がある場合は、priority_networks 構成項目を使用して、正しい IP を強制的に指定する必要があります。
priority_networks は FE と BE の両方の設定であり、fe.conf と be.conf に設定項目を記述する必要があります。この構成項目は、FE または BE の開始時にどの IP をバインドする必要があるかをプロセスに指示するために使用されます。例は次のとおりです。
priority_networks=192.168.50.190/24
これはCIDR表記です。FE または BE は、この設定項目に従って、独自の localIP として一致する IP を探します。
注: priority_networks を設定して FE または BE を開始した後は、FE または BE の IP が正しくバインドされていることのみが保証されます。ADD BACKEND または ADD FRONTEND ステートメントを使用する場合は、priority_networks 構成に一致する IP を指定する必要もあります。指定しないと、クラスターを確立できません。例:
BE 的配置为:priority_networks=192.168.50.190/24
ただし、ADD BACKEND が使用される場合は次のようになります。
ALTER SYSTEM ADD BACKEND "192.168.0.1:9050";
そうなるとFEとBEは正常に通信できなくなります。
この時点で、誤って追加された BE を DROP し、正しい IP を使用して ADD BACKEND を再度実行する必要があります。
FEも同様です。
BROKER には現在、priority_networks オプションがなく、その必要もありません。ブローカーのサービスはデフォルトで 0.0.0.0 にバインドされています。BROKER を追加するときに、正しくアクセス可能な BROKER IP を実行するだけです。
テーブル名の大文字と小文字
の区別の設定 doris のデフォルトはテーブル名の大文字と小文字の区別です。テーブル名の大文字と小文字を区別しない要件がある場合は、クラスターの初期化中に設定する必要があります。テーブル名の大文字と小文字の区別は、クラスターの初期化が完了した後は変更できません。
3. クラスターの展開
環境計画
サーバーの名前 | サーバーIP | 役割 |
---|---|---|
ノード0 | 192.168.50.190 | FE、BE、マスター |
ノード1 | 192.168.50.189 | FE、BE |
ノード2 | 192.168.50.188 | FE、BE |
まず、 scp -r target file root@ip:/dataコマンドでファイルを他の2台のサーバに配布し、対応するIPアドレスを変更します。
vim be.conf #进入其余两台服务器的doris/be文件下,笔者这里的ip是192.168.50.189
mkdir -p /data/data_dir/ /data/doris-meta/ #在其余分别两个台服务器执行创建
拡張子を追加する
注: 他のサーバーも同じです。ここではデモは行いません (他の IP は 192.168.50.188)。
変更が完了したら、次のコマンドを使用して BE ノードをクラスターに追加します。
mysql -uroot -h 192.168.50.190 -P 9030 -p
#密码为root
#或者通过客户端登录
#通过MySQL 客户端连接到 FE 之后执行下面的 SQL,将 BE 添加到集群中
ALTER SYSTEM ADD BACKEND "192.168.50.188:9050";
ALTER SYSTEM ADD BACKEND "192.168.50.189:9050";
ノード 0 とノード 1 の be ファイル ディレクトリに移動して、対応する be サービスを開始します。具体的なコマンドを次の図に示します。
./bin/start_be.sh --daemon
注: プロンプトが表示されたら、「sysctl -w vm.max_map_count=2000000」を使用して root で vm.max_map_count を 2000000 に設定してください。プロンプトに従って、対応する sysctl -w vm.max_map_count=2000000 コマンドを実行します。
Alive フィールドは true で、BE ステータスが正常であり、クラスターに参加していることを示します。
FE 拡張機能を追加
まず、doris の fe/conf ディレクトリに入り、次のコマンドを使用して fe.conf ファイルを編集し、IP を変更します。
vim fe.conf #进入其余两台服务器的doris/fe文件下,笔者这里的ip是192.168.50.189
注: 他のサーバーも同じです。著者はここではデモンストレーションを行いません (他の IP は 192.168.50.188); 元の履歴 IP は 192.168.50.190 です [Apache doris データベース構築 (1)]
FE 注:
1. フォロワー FE (マスターを含む) の数は奇数である必要があり、高可用性 >> (HA) モードを形成するには最大 3 つまで導入することをお勧めします。
2. FE が高可用性展開 (1 つのマスター、2 つのフォロワー) にある場合、オブザーバー FE を追加して FE の読み取りサービス機能を拡張することをお勧めします。もちろんフォロワーFEを増やし続けることもできますが、ほぼ不要です。
3. 通常、1 つの FE ノードは 10 ~ 20 の BE ノードを処理できます。FE ノードの合計数は 10 未満にすることをお勧めします。通常、3 つあればほとんどのニーズを満たすことができます。
4. ヘルパーは FE 自体を指すことはできませんが、1 つ以上の既存の実行中のマスター/フォロワー FE を指す必要があります。
操作する
ノード 0 ノード 1 の FE サービスを開始します (192.168.50.190 マシン FE は以前にリーダー ロールとして開始されています) 特記事項: --helper パラメーターは、フォロワーとオブザーバーを初めて開始する場合にのみ必要です。
## ./bin/start_fe.sh --helper leader_fe_host:edit_log_port --daemon
./bin/start_fe.sh --helper 192.168.50.190 --daemon
追加が完了したら、SHOW PROC '/frontends'\G;を使用してFE ステータスを表示して、 Alive が true かどうかを確認し、True であれ
ば追加が成功したことを証明します。 FE インスタンスに接続するには、mysql-client を使用する必要があります。node2 マシンの FE は、クラスターを追加する SQL 操作を実行します。2 つの FE をデプロイすることが予想されるため、node2 を OBSERVER に変更するには、SQL ウィンドウで次の 3 つのコマンドを実行する必要があります。
#添加FE
ALTER SYSTEM ADD FOLLOWER "192.168.50.189:9010";
ALTER SYSTEM ADD FOLLOWER "192.168.50.189:9010";
#执行前需要删除node2的OBSERVER alter system,drop follower[observer] "ip:port"
ALTER SYSTEM ADD OBSERVER "192.168.50.190:9010";
FE インスタンスを再度表示する
show proc '/frontends';
注:将来、対応する FE ノードを拡張したい場合は、対応する SQL コマンド
ALTER SYSTEM ADD FOLLOWER
"ip:port"`を使用して
ノードを追加し、SQL コマンドを使用して BE ノードを追加できます。
ALTER SYSTEM ADD BACKEND "ip:port";
ここまでで、作成者による doris データベース クラスターの構築の説明は終了しました。ご質問がある場合は、時間内に作成者にご連絡ください。このセクションのバージョンは 1.2.1.4 です。