この記事を読むには、Linux とサーバー ハードウェアに関する基本的な知識が必要です。詳細に書かれていない内容もありますが、一般的なLinux の基本コマンド tar、uzip、mv、mkdir、システム パッケージのインストールなどが記載されている場合は、 text 記事の長さを短くするために記載されています。
必ず公式のインストールおよび展開方法をよく確認してください。試してからこのチュートリアルを読むことをお勧めします。
標準展開 - Apache Doris a>リリース 1.2 .4 1.2.4 リリース アップデートに基づいています。変更点を参照してください。ログ Doris
この記事は
1. 導入方法の選択
Doris をインストールして展開するには 2 つの方法があります。
- コンパイル用の Apache Doris ソース コードをダウンロードします。GitHub - apache/dris: Apache Doris は、使いやすく、高性能で、統合された分析データベースです。
- プリコンパイル済みバージョンをダウンロードします。ソース コードをコンパイルする必要はなく、直接インストールするだけです **[推奨]**
- 公式ダウンロード パス:ダウンロード - Apache Doris
- SelectDB ダウンロード:https://cn.selectdb.com/distribution#download
- Doris の現在のコミュニティ バージョンは、迅速な反復のために主に SelectDB によって実装されており、チームは非常に優れています。
ここでは 2 番目の方法を使用します。これは主にインストールの時間を節約し、しきい値を低くするためです。SelectDB と Doris の相違点の詳細については、以下のコンテンツを参照してください。注意
コンパイルに公式ソース コードを使用することは推奨されなくなりました。新しい機能を試すためにソース コードを自分で変更できる場合は、新しいブランチを選択してコンパイルして最新の機能を体験できます。
知らせ:
- SelectDB バージョンは、Apache Doris の高速反復バージョンです。 Apache Doris のすべての機能が含まれており、迅速に反復できます。 Apache のリリース プロセスには長い時間がかかるため、特定の機能上のバグが使用に影響を与える場合は、SelectDB サイド チャネルに連絡して最新のパッチ パッケージを入手し、試してみることができます。
- 公式 Apache リリース バージョンについては、Apache Doris 公式 Web サイトにアクセスしてダウンロードしてください。
その他の簡単な言い方:
私はバージョン 0.13 から Doris を使用してきましたが、実稼働環境に移行することは決めていません。 1.2.3 リリースのリリースまでに、 実稼働Hive データ ウェアハウスを実稼働 Doris に完全に移行することが決定したため、展開記事を更新しました。 。
**1 つ目: **Doris は現在、特にフェデレーション クエリ、ハイパフォーマンス コンピューティング、運用および保守コスト、先行投資、学習コストなどの点で強力です。より良い選択。
**2 つ目: **Doris の現在のカタログは非常に使いやすく、Doris を通じて Hive、SAP HANA、Mysql、SQLServer、Oracle、ClickHouse などに直接接続できます。次に、 < /span>。 欠点は利点を隠すものではありませんDoirs は優れたパフォーマンスを持っていますが、まだ成長中です。これまでのところ比較的安定していますが、まだあまり安定していません。いくつかのマイナーな問題があります。問題はありますが、今は大丈夫のようです。結局のところ、最後に:当初、Hive を使用してバッチを実行すると完了するまでに 15 分かかったスケジュール設定が、Doris を使用すると 1.5 分しかかからなくなり、効率が 9 倍以上向上しました。 **3 番目: **Hive データ ウェアハウスには 1,200 を超えるジョブがあり、現在スケジュールには 5 ~ 6 時間かかります。既存のリソースに基づいて、スケジューリング サイクル全体が将来的に長くなることが予想されます。タスクのバッチ実行に失敗すると、再度実行されることになります。この期間は、ビジネス側にとって徐々に受け入れられなくなるでしょう。そこで、Doris と hive 実行バッチを使用して比較を行いました。 経由で外部データ ソースに転送することもできます。 をinsert into select
メソッドを使用して、Doris にデータをロードします。 Doris データinsert into select
insert
2. 導入前の準備
1. サーバーハードウェアの準備
研究環境とテスト環境では、低構成マシンまたは仮想マシンを使用できることをお勧めします。実稼働環境では、3 FE + 7 BE で構成される物理マシンを推奨します。特定のサーバー構成関連の問題については、メッセージを残して連絡するか、 Apache Doris のインストールと展開 の章を参照してください。 =3> 推奨される運用環境は次のとおりです。
シリアルナンバー | 役割 | CPU | メモリ | システムディスク | データディスク | 通信網 |
---|---|---|---|---|---|---|
1 | FEマスター | インテル ゴールド 6326 * 1、16C | 64GB | SSD 480*2、RAID | Nvme SSD 960GB*3、読み取りおよび書き込み速度 2.5G/s 7GB/s、RAID | 10Gファイバー |
2 | FEフォロワー | インテル ゴールド 6326 * 1、16C | 64GB | SSD 480*2、RAID | Nvme SSD 960GB*3、読み取りおよび書き込み速度 2.5G/s 7GB/s、RAID | 10Gファイバー |
3 | FEフォロワー | インテル ゴールド 6326 * 1、16C | 64GB | SSD 480*2、RAID | Nvme SSD 960GB*3、読み取りおよび書き込み速度 2.5G/s 7GB/s、RAID | 10Gファイバー |
4 | なれ | インテル ゴールド 6326 * 2、32C | 256GB | SSD 480*2、RAID | Nvme SSD 1.92TB*5、読み取りおよび書き込み速度 2.5G/s 7GB/s | 10Gファイバー |
5 | なれ | インテル ゴールド 6326 * 2、32C | 256GB | SSD 480*2、RAID | Nvme SSD 1.92TB*5、読み取りおよび書き込み速度 2.5G/s 7GB/s | 10Gファイバー |
6 | なれ | インテル ゴールド 6326 * 2、32C | 256GB | SSD 480*2、RAID | Nvme SSD 1.92TB*5、読み取りおよび書き込み速度 2.5G/s 7GB/s | 10Gファイバー |
7 | なれ | インテル ゴールド 6326 * 2、32C | 256GB | SSD 480*2、RAID | Nvme SSD 1.92TB*5、読み取りおよび書き込み速度 2.5G/s 7GB/s | 10Gファイバー |
8 | なれ | インテル ゴールド 6326 * 2、32C | 256GB | SSD 480*2、RAID | Nvme SSD 1.92TB*5、読み取りおよび書き込み速度 2.5G/s 7GB/s | 10Gファイバー |
9 | なれ | インテル ゴールド 6326 * 2、32C | 256GB | SSD 480*2、RAID | Nvme SSD 1.92TB*5、読み取りおよび書き込み速度 2.5G/s 7GB/s | 10Gファイバー |
10 | なれ | インテル ゴールド 6326 * 2、32C | 256GB | SSD 480*2、RAID | Nvme SSD 1.92TB*5、読み取りおよび書き込み速度 2.5G/s 7GB/s | 10Gファイバー |
FE は 3 ユニットで HA を構成することを推奨しています。BE の計算能力が足りない場合は、BE を拡張してください。わざわざ FE を使用する必要はありません。
FE 導入に関する推奨事項は、 インストールおよび導入に関するドキュメント で紹介されており、ここでいくつかの追加が行われます。
- FE メタデータの動作ロジックを十分に理解していない場合、または FE メタデータの運用と保守の経験が十分でない場合は、実際の使用では FOLLOWER タイプの FE を 1 つだけ MASTER として展開することを強くお勧めします。他の FE は、多くの複雑な運用および保守の問題を軽減できる OBSERVER です。 MASTER 単一障害点によってメタデータ書き込み操作が実行できなくなることについては、あまり心配する必要はありません。まず、きちんと設定しておけばJavaプロセスとしてのFEは死ににくいです。次に、MASTER ディスクが破損した場合 (確率は非常に低いですが)、OBSERVER 上のメタデータを使用して、
故障恢复
を通じて手動で復元することもできます。- FE プロセスの JVM は十分なメモリを確保する必要があります。 FE の JVM メモリは少なくとも 10 GB であることを強くお勧めします 。32 GB ~ 64 GB が推奨されます。また、監視をデプロイして、JVM のメモリ使用量を監視します。 FE で OOM が発生すると、メタデータの書き込みが失敗し、回復不能な障害が発生する可能性があるためです。
- FE が配置されているノードには、過剰なメタデータによるディスク容量不足を防ぐために、十分なディスク容量が必要です。同時に、FE ログも 10 G を超えるディスク領域を占有します。
ハードウェアについて最後に言いたいのは、BE ノードの CPU、メモリ、ハードディスク、およびネットワークを可能な限り高速にする必要があるということです。現在、BE ノードを生産しています。CPU: 32 物理コア、メモリ: 256GB 3200MT/s、ハードディスク: 読み取り 5GB+/s、書き込み 2.5GB+/s、ネットワーク: 10G ファイバー、 ご参考まで
2. システムソフトウェアの準備
すべてのサーバーに必須。 [必須] コンテンツは実行する必要がありますが、[オンデマンド] コンテンツは実行する必要はありません:
(1)[必須] Linux CentOS 7.9 最新のパッチをすべてインストールします。オペレーティング システムをインストールするときは、ext4 ファイル システムを選択することをお勧めします。
(2)[必須] クロック同期: https://www .cnblogs.com/jhxxb/p/11526098.html
(3)[必須]スワップ パーティションを閉じます (スワップ ): https://www.cnblogs.com/whm-blog/p/10920881.html
(4)[必須]制限を最大に調整します:Linux での Limits.conf ファイル構成 - 短い本
( 5 )[必須] gcc 10.2.0+ をインストールします:https://www.cnblogs.com/sakela / p/14652712.html
(6)[必須]JDK1.8 をインストールします:java jdk linux インストール_Linux インストール JDK_Femi のブログ - CSDN ブログ、バージョン 1.2.4 は不要になりました。インストールには JDK8 が付属しています
(7)~ ~[必須] すべての BE ノードに ODBC をインストールします: Doris BE ノードに ODBC をインストールします - Jianshu ~~ 必要はありません。 マルチカタログ
に移動してください (8) [オンデマンド] 新しい root アカウントを作成する必要がある場合CentOS7 新規ユーザーがログインするための SSH ポートを追加する - Jianshu
(9) [要プレス] ブローカーについては、まだ行っていないため、ブローカー アクセスを必要とするコンテンツを使用しましたが、この記事にはブローカー アクセス プロセスについては書かれていません。標準展開 - Apache Doris a> を参照してください。
3. ドリスを配備する
Doris をデプロイするときは、すべてのユーザーが root になります。
1. FE(クラスター)のインストール
(1) まず、導入するサーバの CPU が avx2 コマンドをサポートしているかどうかを確認します (この際、すべてのサーバの確認が必要です)。
0.14.13.1 以降のバージョンでは、実行環境の CPU が avx2 コマンドをサポートしている必要があります。サポートされているかどうかは、cat /proc/cpuinfo で確認できます。サポートされていない場合は、no-avx2 サフィックスが付いているバージョンを使用してください。 avx2 命令は、ブルームフィルターなどのデータ構造の計算効率を大幅に向上させるため、インデックス フィルター、ランタイム フィルター、その他の機能の効率に影響を与えます。
表示するには次のコマンドを使用します。
[root@DORIS-FE-PRD01 ~]# cat /proc/cpuinfo
CPU が avx2 命令をサポートしていることがわかり、avx2 命令をサポートするコンパイル済みバージョンをダウンロードできます。 CPU が avx2 命令をサポートしていない場合は、avx2 命令をサポートしていないコンパイル済みバージョンをダウンロードする必要があります。
最初にコンパイル済みバージョンをダウンロードします。ダウンロード アドレスは次のとおりです。画像内のLink
をクリックして、適切なバージョンをダウンロードします。 X64(avx2)
は avx2 命令をサポートしますが、X64(no avx2)
は avx2 命令をサポートしません:
公式: Doris プリコンパイル済みバージョンのダウンロード アドレス
SelectDB: Doris プリコンパイル済みバージョンのダウンロード アドレス
(2) ダウンロード後、apache-doris-fe-1.2.4-bin-x86_64.tar.xz``````apache-doris-be-1.2.4-bin-x86_64.tar.xz``````apache-doris-dependencies-1.2.4-bin-x86_64.tar.xz
、
(3) を取得します。 apache-doris-fe-1.2.4-bin-x86_64.tar.xz
すべての fe ノード サーバーの/opt/software
ディレクトリにアップロードするには、各サーバーがアップロードする必要があります。 apache-doris-be-1.2.4-bin-x86_64.tar.xz``````apache-doris-dependencies-1.2.4-bin-x86_64.tar.xz
すべてのノード サーバーにアップロードします。
(4) apache-doris-fe-1.2.4-bin-x86_64.tar.xz
を解凍して apache-doris-fe-1.2.4-bin-x86_64
ディレクトリを取得します。ディレクトリ構造は次のとおりです。
(5) fe
を /home/doris/
ディレクトリに移動します。これにはディレクトリの作成が必要です。
(6) /home/doris/fe/conf
、 vim be.conf
を入力すると、次の項目を追加または変更する必要があります。
各構成の意味については、次の構成では詳しく説明しません。具体的な説明とその他の構成については、Doris のドキュメントにアクセスしてください:
https://dris.apache。 org/zh -CN/docs/dev/admin-manual/config/fe-config
- ①
JAVA_OPTS
中-Xmx
调到32768m
,即32GB
JAVA_OPTS="-Xmx32768m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC
-XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xlogg
c:$DORIS_HOME/log/fe.gc.log.$DATE"
- ②
meta_dir
で設定した fe メタデータの保存パスを/doris-meta
に変更する必要があります。
meta_dir = /doris-meta1
ここで、fe のソース パッケージは
/home/doris/
の下に配置されることに注意してください。これは、システム ディスクの場所が480G RAID
であるドライブ文字ディレクトリです。 。 fe メタデータを保存するハードディスクは/doris-meta
で、fe ノードの 3 つの960G
ハードディスクはRAID5
アレイとなります。全体のサイズは < /span> のサイズに変更され、 コンテンツの下。 、つまり960G*3
の数量サイズは960G*2
1.8TB
/doris-meta
- ③ https をサポートするための
enable_http_server_v2 = true
構成を追加します。これにより、新しいフロントエンド UI インターフェイスを開くことができます。
http_port = 8030
rpc_port = 9020
query_port = 9030
edit_log_port = 9010
mysql_service_nio_enabled = true
enable_http_server_v2 = true # 在这里加该配置就行
- ④
priority_networks
fe が配置されているサーバー IP を設定する必要があります。ここで、サーバーは 1 つのネットワーク ポートと 1 つの IP だけを使用します。
priority_networks = 192.168.16.44/24
- ⑤
dynamic_partition_enable = true
動的パーティション構成を追加します。動的パーティションはその後の使用でさらに使用されるため、最初に構成します。ファイルの最後に追加するだけです。
dynamic_partition_enable = true
参考までに、fe.conf ファイルの完全な内容を次に示します。
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#####################################################################
## The uppercase properties are read and exported by bin/start_fe.sh.
## To see all Frontend configurations,
## see fe/src/org/apache/doris/common/Config.java
#####################################################################
# the output dir of stderr and stdout
LOG_DIR = ${DORIS_HOME}/log
DATE = `date +%Y%m%d-%H%M%S`
JAVA_OPTS="-Xmx32768m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:$DORIS_HOME/log/fe.gc.log.$DATE"
# For jdk 9+, this JAVA_OPTS will be used as default JVM options
JAVA_OPTS_FOR_JDK_9="-Xmx32768m -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xlog:gc*:$DORIS_HOME/log/fe.gc.log.$DATE:time"
##
## the lowercase properties are read by main program.
##
# INFO, WARN, ERROR, FATAL
sys_log_level = INFO
# store metadata, must be created before start FE.
# Default value is ${DORIS_HOME}/doris-meta
# meta_dir = ${DORIS_HOME}/doris-meta
meta_dir = /doris-meta
http_port = 8030
rpc_port = 9020
query_port = 9030
edit_log_port = 9010
mysql_service_nio_enabled = true
enable_http_server_v2 = true
# Choose one if there are more than one ip except loopback address.
# Note that there should at most one ip match this list.
# If no ip match this rule, will choose one randomly.
# use CIDR format, e.g. 10.10.10.0/24
# Default value is empty.
# priority_networks = 10.10.10.0/24;192.168.0.0/16
priority_networks = 192.168.16.44/24
# Advanced configurations
# log_roll_size_mb = 1024
# sys_log_dir = ${DORIS_HOME}/log
# sys_log_roll_num = 10
# sys_log_verbose_modules = org.apache.doris
# audit_log_dir = ${DORIS_HOME}/log
# audit_log_modules = slow_query, query
# audit_log_roll_num = 10
# meta_delay_toleration_second = 10
# qe_max_connection = 1024
# max_conn_per_user = 100
# qe_query_timeout_second = 300
# qe_slow_log_ms = 5000
dynamic_partition_enable = true
(7) fe を開始します。 fe を起動およびシャットダウンするコマンドはsh start_fe.sh --daemon
、 です。sh stop_fe.sh --daemon
[root@DORIS-FE-PRD01 bin]# cd /home/doris/fe/bin
[root@DORIS-FE-PRD01 bin]# sh start_fe.sh --daemon
注:
Doris の起動中に問題が発生した場合は、/home/doris/fe/log
ディレクトリに入ってログを表示し、例外を見つけて解決策を探すことができます。< /span>< a i=3>公式の運用およびメンテナンスに関するよくある質問 (7) 次に、mysql クライアントを介して fe ノードに接続する必要があります
- ① ダウンロード
mysql-5.7.36
し、/opt/software/
にアップロードして解凍します。解凍後にインストールする必要はなく、doris に接続するために使用します。 。
mysql-5.7.36 公式ダウンロード リンク - ② 以下のコマンドで doris に接続し、 doris と入力できれば接続成功、つまり fe が正常に起動します。
[root@DORIS-FE-PRD01 bin]# cd /opt/software/mysql-5.7.36-linux-glibc2.12-x86_64/bin
[root@DORIS-FE-PRD01 bin]# ./mysql -h 192.168.16.44 -P 9030 -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5781
Server version: 5.1.0 Doris version 0.15.1-rc09-Unknown
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
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>
[root@node3 fe]# sh bin/start_fe.sh --daemon
[root@node3 fe]# jps
7234 Jps
7160 PaloFe
(8) 残りの 2 つの fe ノードは手順 (1) ~ (5) を実行する必要がありますが、 最初の起動 の後に実行されます。 2 つの fe ノードの場合、次のコマンドの使用に注意する必要があります。以降の起動では、(6) のコマンドを使用するだけです:
2 番目のノード:
[root@DORIS-FE-PRD02 bin]# cd /home/doris/fe/bin
[root@DORIS-FE-PRD02 bin]# ./start_fe.sh --helper 192.168.16.44:9010 --daemon
3 番目のノード:
[root@DORIS-FE-PRD03 bin]# cd /home/doris/fe/bin
[root@DORIS-FE-PRD03 bin]# ./start_fe.sh --helper 192.168.16.44:9010 --daemon
192.168.16.44
は、最初に開始されたfe
ノード、つまりmaster
ノードです。残りの 2 つはfollower
ノードで、3 つのfe
ノードは読み取り/書き込み HA を形成します。
(9)192.168.16.44 master fe
ノード サーバーで、mysql を使用してマスター fe に接続し、sql を使用して残りの 2 つのフォロワー ノードを追加します。
[root@DORIS-FE-PRD01 conf]# cd /opt/software/mysql-5.7.36-linux-glibc2.12-x86_64/bin
[root@DORIS-FE-PRD01 bin]# ./mysql -h 192.168.16.44 -P 9030 -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5782
Server version: 5.1.0 Doris version 0.15.1-rc09-Unknown
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
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> ALTER SYSTEM ADD FOLLOWER "192.168.16.64:9010";
mysql> ALTER SYSTEM ADD FOLLOWER "192.168.16.53:9010";
が追加されたら、show proc '/frontends';
を通じて fe ノードのステータスを確認します。特に Role
の役割と、 IsMaster
はマスター ノードです。alive
ノードの生存ステータスの 3 つの列が正常かどうか。
mysql> show proc '/frontends';
+----------------------------------+---------------+-------------+----------+-----------+---------+----------+----------+------------+------+-------+-------------------+---------------------+----------+--------+--------------------------+------------------+
| Name | IP | EditLogPort | HttpPort | QueryPort | RpcPort | Role | IsMaster | ClusterId | Join | Alive | ReplayedJournalId | LastHeartbeat | IsHelper | ErrMsg | Version | CurrentConnected |
+----------------------------------+---------------+-------------+----------+-----------+---------+----------+----------+------------+------+-------+-------------------+---------------------+----------+--------+--------------------------+------------------+
| 192.168.16.64_9010_1682469350180 | 192.168.16.64 | 9010 | 8030 | 9030 | 9020 | FOLLOWER | false | 2079148326 | true | true | 267346748 | 2023-05-04 19:12:59 | true | | doris-1.2.4-rc01-Unknown | No |
| 192.168.16.44_9010_1651040787813 | 192.168.16.44 | 9010 | 8030 | 9030 | 9020 | FOLLOWER | true | 2079148326 | true | true | 267346749 | 2023-05-04 19:12:59 | true | | doris-1.2.4-rc01-Unknown | Yes |
| 192.168.16.53_9010_1682469352336 | 192.168.16.53 | 9010 | 8030 | 9030 | 9020 | FOLLOWER | false | 2079148326 | true | true | 267346748 | 2023-05-04 19:12:59 | true | | doris-1.2.4-rc01-Unknown | No |
+----------------------------------+---------------+-------------+----------+-----------+---------+----------+----------+------------+------+-------+-------------------+---------------------+----------+--------+--------------------------+------------------+
3 rows in set (0.06 sec)
(10) この時点で、すべてがうまくいけば、fe クラスターが構築されます。
2. BE(クラスター)のインストール
(1) be ノード サーバーに入り、 apache-doris-be-1.2.4-bin-x86_64.tar.xz``````apache-doris-dependencies-1.2.4-bin-x86_64.tar.xz
を解凍し、次の 2 つのディレクトリを取得します。
(2) < を配置します。 a i =3>ディレクトリ内のをディレクトリに移動します。 (3) に移動され、ディレクトリを作成する必要があります。 (4) ディレクトリに入り、設定を変更します。 apache-doris-dependencies-1.2.4-bin-x86_64
java-udf-jar-with-dependencies.jar
apache-doris-be-1.2.4-bin-x86_64/lib
be
/home/doris/
/home/doris/be/conf
各構成の意味については、次の構成では詳しく説明しません。具体的な説明とその他の構成については、Doris のドキュメントにアクセスしてください:
BE 構成項目 - Apache Doris
- ①修正
priority_networks
priority_networks = 192.168.16.65/24
- ② データ保存ディレクトリを変更します
storage_root_path
:
storage_root_path = /doris-data1,medium:hdd,capacity:890;/doris-data2,medium:ssd,capacity:890;/doris-data3,medium:ssd,capacity:890
手順:
1.be
ノードとfe
ノードのサーバー構成は同じですが、 。 media の最初のディスク ディレクトリは hdd を指定します。ここで注意すべき点は、3 台のハードディスクはすべて SSD ですが、構成中にメディアを SSD で構成すると、テーブルの作成時にエラーが報告されることがわかります。したがって、ここでは最初の1つはhddに変更され、残りの2つはssdのままです。 SSD を使用している場合は、ハードディスクのパラメータを指定せずに、次のように構成できます 2. 構成 にマウントされます。それぞれ。 の SSD ハードディスクはディスク アレイとして使用されず、3 つのディスクとして使用され、ディレクトリbe
ノード960G*3
/doris-data1 /doris-data2 /doris-data3
/doris-data1,medium:hdd,capacity:890
/doris-data1,/doris-data2,/doris-data3,
- ③ 以下の設定を追加します。これらの設定は使用中に当社が追加したものであり、すべての人に適しているわけではありません。必要に応じて追加できます。
max_tablet_version_num = 5000
max_compaction_threads = 16
compaction_task_num_per_disk = 8
cumulative_size_based_promotion_size_mbytes = 2048
row_step_for_compaction_merge_log = 1
total_permits_for_compaction_score = 50000
以下は私のbe.conf
参考用のすべての設定内容です。
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
PPROF_TMPDIR="$DORIS_HOME/log/"
# INFO, WARNING, ERROR, FATAL
sys_log_level = INFO
# ports for admin, web, heartbeat service
be_port = 9060
webserver_port = 8040
heartbeat_service_port = 9050
brpc_port = 8060
priority_networks = 192.168.16.66/24
storage_root_path = /doris-data1.hdd,890;/doris-data2.ssd,890;/doris-data3.ssd,890
max_tablet_version_num = 5000
max_compaction_threads = 16
compaction_task_num_per_disk = 8
cumulative_size_based_promotion_size_mbytes = 2048
row_step_for_compaction_merge_log = 1
total_permits_for_compaction_score = 50000
# Choose one if there are more than one ip except loopback address.
# Note that there should at most one ip match this list.
# If no ip match this rule, will choose one randomly.
# use CIDR format, e.g. 10.10.10.0/24
# Default value is empty.
# priority_networks = 10.10.10.0/24;192.168.0.0/16
# data root path, separate by ';'
# you can specify the storage medium of each root path, HDD or SSD
# you can add capacity limit at the end of each root path, seperate by ','
# eg:
# storage_root_path = /home/disk1/doris.HDD,50;/home/disk2/doris.SSD,1;/home/disk2/doris
# /home/disk1/doris.HDD, capacity limit is 50GB, HDD;
# /home/disk2/doris.SSD, capacity limit is 1GB, SSD;
# /home/disk2/doris, capacity limit is disk capacity, HDD(default)
#
# you also can specify the properties by setting '<property>:<value>', seperate by ','
# property 'medium' has a higher priority than the extension of path
#
# Default value is ${DORIS_HOME}/storage, you should create it by hand.
# storage_root_path = ${DORIS_HOME}/storage
# Advanced configurations
# sys_log_dir = ${DORIS_HOME}/log
# sys_log_roll_mode = SIZE-MB-1024
# sys_log_roll_num = 10
# sys_log_verbose_modules = *
# log_buffer_level = -1
# palo_cgroups
- ④ 残り 6 つの
be
ノードがあり、上記の内容に従って構成されます。後者はbe
を 変更するだけです。/home/doris/
be.conf
ip
- ⑤ すべての
be
ノードを開始します。
[root@DORIS-BE-PRD01 conf]# cd /home/doris/be/bin
[root@DORIS-BE-PRD01 bin]# sh start_be.sh --daemon
[root@DORIS-BE-PRD02 conf]# cd /home/doris/be/bin
[root@DORIS-BE-PRD02 bin]# sh start_be.sh --daemon
[root@DORIS-BE-PRD03 conf]# cd /home/doris/be/bin
[root@DORIS-BE-PRD03 bin]# sh start_be.sh --daemon
[root@DORIS-BE-PRD04 conf]# cd /home/doris/be/bin
[root@DORIS-BE-PRD04 bin]# sh start_be.sh --daemon
[root@DORIS-BE-PRD05 conf]# cd /home/doris/be/bin
[root@DORIS-BE-PRD05 bin]# sh start_be.sh --daemon
[root@DORIS-BE-PRD06 conf]# cd /home/doris/be/bin
[root@DORIS-BE-PRD06 bin]# sh start_be.sh --daemon
[root@DORIS-BE-PRD07 conf]# cd /home/doris/be/bin
[root@DORIS-BE-PRD07 bin]# sh start_be.sh --daemon
- ⑥
fe master
ノードに入り、mysql 接続を使用して SQL コマンド ライン モードに入り、ノードを 1 つずつ追加します
[root@DORIS-FE-PRD01 bin]# cd /opt/software/mysql-5.7.36-linux-glibc2.12-x86_64/bin
[root@DORIS-FE-PRD01 bin]# ./mysql -h 192.168.16.44 -P 9030 -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5783
Server version: 5.1.0 Doris version doris-1.2.4-rc01-Unknown
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
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> ALTER SYSTEM ADD BACKEND "192.168.16.66:9050";
mysql> ALTER SYSTEM ADD BACKEND "192.168.16.59:9050";
mysql> ALTER SYSTEM ADD BACKEND "192.168.16.60:9050";
mysql> ALTER SYSTEM ADD BACKEND "192.168.16.51:9050";
mysql> ALTER SYSTEM ADD BACKEND "192.168.16.65:9050";
mysql> ALTER SYSTEM ADD BACKEND "192.168.16.63:9050";
を追加した後、show proc '/backends';
を使用して be
ノードのステータスを確認し、 ノードの生存ステータスが確認されているかどうかに注目します。 =3> ノードは正常です。 alive
mysql> show proc '/backends';
+-----------+-----------------+----------------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------------------+-----------+------------------+---------------+---------------+---------+----------------+--------------------+--------------------------+--------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------+
| BackendId | Cluster | IP | HeartbeatPort | BePort | HttpPort | BrpcPort | LastStartTime | LastHeartbeat | Alive | SystemDecommissioned | ClusterDecommissioned | TabletNum | DataUsedCapacity | AvailCapacity | TotalCapacity | UsedPct | MaxDiskUsedPct | RemoteUsedCapacity | Tag | ErrMsg | Version | Status | HeartbeatFailureCounter | NodeRole |
+-----------+-----------------+----------------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------------------+-----------+------------------+---------------+---------------+---------+----------------+--------------------+--------------------------+--------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------+
| 82668153 | default_cluster | 192.168.16.xxx | 9050 | 9060 | 8040 | 8060 | 2023-04-25 18:28:53 | 2023-05-04 19:21:40 | true | false | false | 54406 | 16.239 GB | 8.667 TB | 8.729 TB | 0.70 % | 0.81 % | 0.000 | {"location" : "default"} | | doris-1.2.4-rc01-Unknown | {"lastSuccessReportTabletsTime":"2023-05-04 19:21:00","lastStreamLoadTime":-1,"isQueryDisabled":false,"isLoadDisabled":false} | 0 | mix |
| 82668154 | default_cluster | 192.168.16.xxx | 9050 | 9060 | 8040 | 8060 | 2023-04-25 18:28:53 | 2023-05-04 19:21:40 | true | false | false | 53964 | 19.080 GB | 8.665 TB | 8.729 TB | 0.73 % | 0.84 % | 0.000 | {"location" : "default"} | | doris-1.2.4-rc01-Unknown | {"lastSuccessReportTabletsTime":"2023-05-04 19:21:11","lastStreamLoadTime":-1,"isQueryDisabled":false,"isLoadDisabled":false} | 0 | mix |
| 82668155 | default_cluster | 192.168.16.xxx | 9050 | 9060 | 8040 | 8060 | 2023-04-25 18:28:53 | 2023-05-04 19:21:40 | true | false | false | 50290 | 17.190 GB | 8.668 TB | 8.729 TB | 0.69 % | 0.83 % | 0.000 | {"location" : "default"} | | doris-1.2.4-rc01-Unknown | {"lastSuccessReportTabletsTime":"2023-05-04 19:20:56","lastStreamLoadTime":-1,"isQueryDisabled":false,"isLoadDisabled":false} | 0 | mix |
| 82668156 | default_cluster | 192.168.16.xxx | 9050 | 9060 | 8040 | 8060 | 2023-04-25 18:28:53 | 2023-05-04 19:21:40 | true | false | false | 54965 | 16.714 GB | 8.668 TB | 8.729 TB | 0.70 % | 0.88 % | 0.000 | {"location" : "default"} | | doris-1.2.4-rc01-Unknown | {"lastSuccessReportTabletsTime":"2023-05-04 19:20:53","lastStreamLoadTime":-1,"isQueryDisabled":false,"isLoadDisabled":false} | 0 | mix |
| 82668157 | default_cluster | 192.168.16.xxx | 9050 | 9060 | 8040 | 8060 | 2023-04-25 18:28:53 | 2023-05-04 19:21:40 | true | false | false | 53024 | 19.122 GB | 8.660 TB | 8.729 TB | 0.78 % | 1.05 % | 0.000 | {"location" : "default"} | | doris-1.2.4-rc01-Unknown | {"lastSuccessReportTabletsTime":"2023-05-04 19:20:56","lastStreamLoadTime":-1,"isQueryDisabled":false,"isLoadDisabled":false} | 0 | mix |
| 82668158 | default_cluster | 192.168.16.xxx | 9050 | 9060 | 8040 | 8060 | 2023-04-25 18:28:53 | 2023-05-04 19:21:40 | true | false | false | 52119 | 18.351 GB | 8.661 TB | 8.729 TB | 0.77 % | 0.98 % | 0.000 | {"location" : "default"} | | doris-1.2.4-rc01-Unknown | {"lastSuccessReportTabletsTime":"2023-05-04 19:21:32","lastStreamLoadTime":-1,"isQueryDisabled":false,"isLoadDisabled":false} | 0 | mix |
| 82668159 | default_cluster | 192.168.16.xxx | 9050 | 9060 | 8040 | 8060 | 2023-04-25 18:28:53 | 2023-05-04 19:21:40 | true | false | false | 50999 | 14.106 GB | 8.662 TB | 8.729 TB | 0.76 % | 1.10 % | 0.000 | {"location" : "default"} | | doris-1.2.4-rc01-Unknown | {"lastSuccessReportTabletsTime":"2023-05-04 19:21:39","lastStreamLoadTime":-1,"isQueryDisabled":false,"isLoadDisabled":false} | 0 | mix |
+-----------+-----------------+----------------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------------------+-----------+------------------+---------------+---------------+---------+----------------+--------------------+--------------------------+--------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------+
- ⑦ この時点で、すべてがうまくいけば、doris クラスター全体がセットアップされます。後で、DB ツールを使用して mysql に接続することで Doris に接続できます。
4. 負荷分散
複数の FE ノードが展開されている場合、ユーザーは複数の FE に負荷分散層を展開して、Doris の高可用性を実現できます。
この手順は実稼働環境で実行することをお勧めします !
現在、負荷分散には ProxySQL と Nginx の 2 つの方法があります。nginx が簡単だと思うので、Nginx 方法をお勧めします。 ProxySQL を使用する場合は、後で doris データベース アカウントを追加する必要があり、ProxySQL プロキシ レイヤーに対応するユーザーも追加する必要がありますが、これは非常に面倒です。
主な手順は、公式 Web サイトで提供されているインストール マニュアルに従って完全に実行できます。非常に詳細に記載されているため、完全に参照できます。
ロード バランシング- アパッチ ドリス
5. Doris に接続してクエリを実行する
4 番目のステップでは、ProxySQL プロキシを準備しました。次に、Proxy プロキシの IP とポートを接続して Doris に接続します。
doris は早期にインストールされたため、当時は ProxySQL しかありませんでしたが、今では nginx を使用できるようになりました
私の ProxySQL アドレス ポート:192.168.16.53:9033
私の FE アドレス ポート:192.168.16.53:9030、192.168.16.64:9030、192.168.16.44:9030
(1) DBeaver 経由でプロキシに接続し、mysql を選択して、[次へ] をクリックします。
(2) IP、ポート、アカウント番号、パスワードを入力します
(3) 「リンクのテスト」をクリックすると、成功したことが表示されます。
(4) 図に示すように、テスト データベースはインポートされたテスト データ セットであり、約 60 億個以上のデータと 70 GB 以上のデータが含まれています。公式チュートリアルに従って、テスト データ セットを次の場所にインポートできます。 doris クラスタの予備的なパフォーマンスをテストします。パフォーマンス:スター スキーマ ベンチマーク - Apache Doris
(5) 公式テストチュートリアルで SQL を実行します SQL の実行には約 400ms かかります。
-- 设置并发度为8
set parallel_fragment_exec_instance_num=8;
-- 设置runtime_filter为BLOOM_FILTER
set runtime_filter_type="BLOOM_FILTER";
-- 执行sql
SELECT d_year, c_nation,
SUM(lo_revenue - lo_supplycost) AS PROFIT
FROM date, customer, supplier, part, lineorder
WHERE lo_custkey = c_custkey
AND lo_suppkey = s_suppkey
AND lo_partkey = p_partkey
AND lo_orderdate = d_datekey
AND c_region = 'AMERICA'
AND s_region = 'AMERICA'
AND (p_mfgr = 'MFGR#1'
OR p_mfgr = 'MFGR#2')
GROUP BY d_year, c_nation
ORDER BY d_year, c_nation;
上記で推奨したクラスター構成を使用すると、Doris 公式テスト クエリ SQL を実行する方が、公式の実行よりも効率的になります。
^_^
クエリ | 公式 1.2.0(ms) | 当社の 1.2.4(ms) |
---|---|---|
Q1.1 | 40 | 8 |
Q1.2 | 30 | 9 |
Q1.3 | 20 | 8 |
Q2.1 | 350 | 227 |
Q2.2 | 320 | 209 |
Q2.3 | 300 | 204 |
Q3.1 | 650 | 364 |
Q3.2 | 260 | 180 |
Q3.3 | 220 | 155 |
Q3.4 | 60 | 80 |
Q4.1 | 840 | 294 |
Q4.2 | 460 | 246 |
Q4.3 | 610 | 309 |
5.2. 建库建表并查询
# 创建数据库
create database test;
# 切换数据库
use test;
# 创建表
CREATE TABLE student
(
id INT,
name VARCHAR(50),
age INT,
count BIGINT SUM DEFAULT '0'
)
AGGREGATE KEY (id,name,age)
DISTRIBUTED BY HASH(id) buckets 10
PROPERTIES("replication_num" = "1");
# 插入数据
insert into student values(1, '张三', 10, 1),(2, '李四', 20, 2);
# 查询结果
mysql> select * from student;
+------+--------+------+-------+
| id | name | age | count |
+------+--------+------+-------+
| 2 | 李四 | 20 | 2 |
| 1 | 张三 | 10 | 1 |
+------+--------+------+-------+
2 rows in set (0.07 sec)
5.3. 通过navicat远程工具访问
5.4. 通过web页面访问
访问url: http://bigdata1:8030/login
登录账号:root
登录密码:上述修改的root的密码(这里是123456)
FE的扩容与缩容
命令介绍
• 添加Follower或Oberser
首先连接到已启动的FE,并执行
#oberser只能用来读,follower用来做高可用,leader宕掉follower能重新选举一个leader顶上
alter system add follower "ip:port";
或
alter system add observer "ip:port";
删除FE节点
alter system drop follower[observer] "ip:port"
操作
启动104 106的FE服务(之前已启动10.19.162.103机器FE作为leader角色)特别说明:--helper 参数仅在 follower 和 observer 第一次启动时才需要。
# 登录104、106机器分别启动FE,需要指定103为leader
sh /root/apache-doris-0.15/fe/bin/start_fe.sh --helper 10.19.162.103:9010 --daemon
至此3个节点都启动了FE实例,此外还需 使用 mysql-client 连接到已启动的103机器的FE,执行添加集群的SQL操作。由于我们期望部署3个FE,需要在SQL窗口执行以下两条命令:
#添加FE
ALTER SYSTEM ADD FOLLOWER "10.19.162.104:9010";
ALTER SYSTEM ADD FOLLOWER "10.19.162.106:9010";
再次查看FE实例
show proc '/frontends';
BE的扩容与缩容
BE节点的扩容和缩容过程,不影响当前系统运行以及正在执行的任务,并且不会影响当前系统的性能。数据均衡会自动进行。根据集群现有数据量的大小,集群会在几个小时到1天不等的时间内,恢复到负载均衡的状态。
• 使用mysql-client或客户端工具(dbeaver)连接到已启动的FE
• 通过执行以下SQL命令来增加BE节点
alter system add backend "ip:node"
#例 alter system add backend "10.19.162.103:9050"
• 删除BE节点
# 删除节点有两种方式:drop和decommission
alter system dropp backend “ndoe01:9050”; #硬删除
或者
alter system decommission backend "ndoe01:9050"; #软删除 推荐使用这个
查看所有BE
show proc '/backends'
本案例的BE扩容,已经在上述步骤完成,BE是3节点集群,具体参见上述安装BE步骤:“通过SQL命令添加Broker节点”。
Broker的扩容与缩容
Broker实例的数量没有硬性要求。通常每台物理机部署一个即可,Broker的添加和删除可以通过一下命令完成
システム変更 ブローカー追加 Broker_030406 "10.19.162.104:8000"
システム変更 ブローカー追加 Broker_030406 "10.19.162.106:8000"
変更system stop all Broker Broker_030406
上記の手順でブローカーの拡張が完了しました。特定の操作については、ブローカーをインストールするための上記の手順「SQL コマンドを使用したブローカー ノードの追加」を参照してください。
常用命令
sh /root/apache-dris-0.15/fe/bin/start_fe.sh --daemon
sh /root/apache -dris-0.15/be/bin/start_be.sh --daemon
mysql -uroot -h 10.19.162.111 -P 9030 -p
show proc 39;/frontends';
show proc '/backends';
alter system add backend "10.19.162.111:9050" ;
システム ドロップ バックエンドの変更 "10.19.162.111:9050";
システムの廃止バックエンドの変更 "10.19.162.110:9050";< a i=9> SHOW PROC '/backends'\G