メインコンテンツまでスキップ
バージョン: 2.1

VeloDB Enterprise Core インストールマニュアル

この文書は主にVeloDB Enterprise Coreの直接インストール向けです。クラスタのデプロイ、スケーリング、シュリンキングのワンクリック完了には、提供されているVeloDB Managerの使用を推奨します。

便利なインストールと使用のため、Java8がパッケージに組み込まれており、別途Javaをインストールする必要がありません。ダウンロード後、直接実行できます。

マシン環境

概要

Apache Dorisは主要なLinuxサーバーの大部分で実行できます。Linuxには新しいバージョンのCentOSとUbuntuを選択し、GCCバージョン4.8.2以上と組み合わせることを推奨します。インストール前に、以下のLinuxシステム設定を確認してください。

システムの最大オープンファイルハンドル数を増加させる

vi /etc/security/limits.conf 
* soft nofile 65536
* hard nofile 65536

vm.max_map_countのサイズを調整する

vi /etc/sysctl.conf
vm.max_map_count=2000000
Then execute to make it effective.
sysctl -p

Clock Synchronization

Dorisのメタデータは5000ms未満の時刻精度を要求します。クラスター内のすべてのマシンは、時刻の問題によって不整合なメタデータが原因でサービスに異常が発生することを避けるために、クロックを同期する必要があります。

Swap パーティション の無効化

LinuxのSwap partitionはDorisに深刻なパフォーマンス問題をもたらす可能性があります。swap partitionを無効にする必要があります。

開発およびテスト環境

ModuleCPUMemeryDiskNetworkNumber of Instances
Frontend8 cores+8GB+SSD or SATA, 10GB+Gigabit Ethernet+1
Backend8 cores+16GB+SSD or SATA, 10GB+Gigabit Ethernet+1-3

プロダクション環境

ModuleCPUMemeryDiskNetworkNumber of Instances
Frontend16 cores+64GB+SSD or RAID card, 100GB+10 Gigabit Ethernet+1-3
Backend16 cores+64GB+SSD or SATA, 100GB+10 Gigabit Ethernet+3 +

注意:

  1. FEのディスク容量は主にメタデータの保存に使用され、ログやイメージを含み、およそ数十ギガバイトを占有します。
  2. BEのディスク容量は主にデータの保存に使用されます。総ディスク容量は、総データ量 * 3(3レプリカ)に基づいて計算され、さらにデータコンパクションといくつかの中間データの保存のために20%の追加容量を確保します。
  3. 1つのマシンに複数のBEインスタンスをデプロイすることは可能ですが、FEは1つだけデプロイすることを推奨します。データの高可用性を確保するためには、3台のマシンそれぞれに1つのBEインスタンスをデプロイすることが推奨されます(1台のマシンに3つのBEインスタンスをデプロイする代わりに)。
  4. FEの役割には、FollowerとObserver(Leaderはフォロワーグループから選出される役割で、総称してFollowerと呼ばれる)があります。
  5. FEノードの最小データは1(1 Follower)です。読み取りの高可用性を提供するには、1 Followerと1 Observerをデプロイすることを推奨します。読み取りと書き込みの両方に高可用性が必要な場合は、3つのFollowersをデプロイします。

ネットワーク要件

Dorisインスタンスはネットワーク経由で通信します。以下の表は、すべての必要なポートを示しています:

Instance NamePort NameDefault PortCommunication Directionデスクリプション
BEbe_port9060FE --> BEPort on BE for Thrift server to receive requests from FE
BEwebserver_port8040BE <--> BEPort for HTTP server on BE
BEheartbeat_service_port9050FE --> BEPort for Thrift heartbeat service on BE to receive from FE
BEbrpc_port8060FE <--> BE, BE <--> BEBRPC port for communication between BEs
FEhttp_port8030FE <--> FE, User <--> FEPort for HTTP server on FE
FErpc_port9020BE --> FE, FE <--> FEPort for Thrift server on FE, consistent across FE instances
FEquery_port9030User <--> FEPort for MySQL server on FE
FEedit_log_port9010FE <--> FEPort for communication between BDBJE on FE
Brokerbroker_ipc_port8000FE --> Broker, BE --> BrokerPort for Thrift server on Broker to receive requests

注意:複数のFEインスタンスをデプロイする場合、http_portの設定が同じであることを確認してください。

ネットワーク設定

複数のネットワークインターフェースの存在や、Dockerなどのインストールによって仮想ネットワークインターフェースが存在するため、単一のホストが複数の異なるIPアドレスを持つ可能性があります。Dorisは現在、利用可能なIPを自動的に識別できません。したがって、複数のIPを持つデプロイメントホストを扱う場合、priority_networks設定を通じて正しいIPを強制的に指定する必要があります。

priority_networksはFEとBEの両方に存在する設定オプションで、fe.confとbe.confファイルに含める必要があります。この設定は、FEまたはBEを開始する際にプロセスがどのIPにバインドするかを指示するために使用されます。設定例は以下のとおりです:

priority_networks=172.16.21.0/24

これはCIDR形式での表記です。FEまたはBEは、この設定を使用して一致するIPを見つけ、それを自身のリスニングIPとして使用します。

注意:priority_networksを設定してFEまたはBEを開始すると、FEまたはBE自体が正しいIPにバインドされることが保証されます。ただし、ADD BACKENDまたはADD FRONTENDステートメントを使用する際には、priority_networks設定に一致するIPを指定する必要もあります。そうしなければ、クラスターは通信を確立できません。例えば:

BEの設定が:priority_networks=172.16.21.0/24の場合

しかし、ADD BACKENDを使用する際に、以下のIPが使用された場合:

ALTER SYSTEM ADD BACKEND "172.16.1.12:9050";

FEとBEが正常に通信できなくなります。

このような場合、誤って追加されたBEを削除し、正しいIPでADD BACKENDを再実行する必要があります。

同じ原理がFEにも適用されます。

BROKERには現在priority_networksオプションがなく、必要もありません。Brokerサービスはデフォルトで0.0.0.0にバインドします。ADD BROKERを使用する際に、アクセス可能な正しいBROKER IPを追加するだけで十分です。

クラスターデプロイメント

まず、VeloDB Enterprise Coreインストールパッケージをダウンロードします。

ダウンロードされるパッケージ名は以下のようになります:velodb_doris_x.x.x.x-x86_64-avx2.tar.gz。

次に、インストールパッケージを展開します。

tar zxf velodb_doris_x.x.x.x-x86_64-avx2.tar.gz

抽出後、ディレクトリには以下の内容が含まれます

VeloDB_doris_x.x.x.x-x86_64-avx2
|-- README.md ## Documentation
|-- apache_hdfs_broker ## FS_Broker
|-- audit_loader ## Auditlog Plugin
|-- be ## Doris be
|-- fe ## Doris FE
|-- java8 ## Java Runtime Environment (JRE) required for Doris FE/BE/Broker
|-- jdbc_drivers ##Database driver dependencies for running Doris FE/BE with JDBC, as well as for Multi カタログ 運用.
`-- udf

FE Deployment

  • 展開されたフォルダを指定されたノードにコピーします。

    他のサービスなしでFEのみをデプロイする場合は、このフォルダ内のfe、java8、jdbc_driversディレクトリのみを保持できます。その他のディレクトリは削除できます。

  • FEを設定する

    1. 設定ファイルはconf/fe.confにあります。メタデータを保存する場所であるmeta_dirに注意してください。デフォルト値は${DORIS_HOME}/doris-metaです。このディレクトリは手動で作成する必要があります。

      注意:本番環境では、Dorisインストールディレクトリの外部に別のディレクトリを指定することを強く推奨します。可能であれば専用ディスク(可能であればSSD)上に配置してください。テストおよび開発環境ではデフォルト設定を使用できます

    2. fe.confでは、JAVA_OPTSのデフォルト設定でJavaヒープメモリの最大値を8GBに指定しています。利用可能なマシンメモリに基づいてこの設定を調整することをお勧めします。

  • FEを開始する

    bin/start_fe.sh --daemon

    FEプロセスが開始され、バックグラウンドで実行されます。ログはデフォルトでlog/ディレクトリに保存されます。起動に失敗した場合は、log/fe.logまたはlog/fe.outでエラー情報を確認できます。

  • FEの実行状態を確認する

    MySQLクライアントを使用してFEに接続し、以下のコマンドを実行してBEの実行状態を確認します:

    SHOW FRONTENDS;

すべてが正常であれば、isAlive列はtrueになっているはずです。

  • 複数のFEをデプロイする必要がある場合は、Elastic Expansionを参照してください。

BEデプロイメント

  • 展開したフォルダを指定されたノードにコピーします

    BEのみを他のサービスなしでデプロイする場合は、このフォルダ内のbe、java8、jdbc_driversディレクトリのみを保持できます。その他のディレクトリは削除できます。

  • すべてのBEの設定を変更します

    be/conf/be.confを編集します。調整する主な設定はstorage_root_pathで、これはデータストレージディレクトリです。デフォルトではbe/storage下にあり、このディレクトリは手動で作成する必要があります。複数のパスはセミコロン;で区切ります(最後のパスの後に;を追加しないでください)。

    ストレージメディア、HDD、またはSSDに基づいてストレージディレクトリを区別できます。各パスの末尾に容量制限を追加でき、,で区切ります。ユーザーがSSDとHDDディスクの混在を使用していない場合は、Example 1やExample 2のように設定する必要はありません。ストレージディレクトリを指定するだけで構いません。

    Example 1:

    注意:SSDを使用している場合は、ディレクトリの後に.SSDを追加します。HDDの場合は、ディレクトリの後に.HDDを追加します

    storage_root_path=/home/disk1/doris.HDD;/home/disk2/doris.SSD;/home/disk2/doris

    説明

    • /home/disk1/doris.HDD:ストレージメディアがHDDであることを示します;
    • /home/disk2/doris.SSD:ストレージメディアがSSDであることを示します;
    • /home/disk2/doris:ストレージメディアがHDD(デフォルト)であることを示します

    Example 2:

    注意:HDDやSSDディスクディレクトリに関係なく、サフィックスを追加する必要はありません。storage_root_pathパラメータでメディアを指定してください。

    storage_root_path=/home/disk1/doris,medium:hdd;/home/disk2/doris,medium:ssd

    説明

    • /home/disk1/doris,medium:hdd:ストレージメディアがHDDであることを示します;
    • /home/disk2/doris,medium:ssd:ストレージメディアがSSDであることを示します;
  • FEでのすべてのBEノードの追加

BEノードをクラスタに含める前に、FEで追加する必要があります。MySQLクライアントを使用してFEに接続できます:

./mysql-client -h fe_host -P query_port -uroot

提供された情報において、fe_hostはFEノードのIPアドレスを表し、query_portはfe/conf/fe.confで設定されます。デフォルトのログインではrootアカウントをパスワードなしで使用します。

ログイン後、各BEを追加するために以下のコマンドを実行してください:

ALTER SYSTEM ADD BACKEND "be_host:heartbeat-service_port"
  • BE を開始

    bin/start_be.sh --daemon

BEプロセスが開始され、バックグラウンドで実行されます。ログはデフォルトでbe/log/ディレクトリに保存されます。起動に失敗した場合は、be/log/be.logまたはbe/log/be.outでエラー情報を確認できます。

  • BE Statusの確認

    MySQLクライアントを使用してFEに接続し、以下のコマンドを実行してBEの実行状態を確認します

    SHOW BACKENDS;

すべてが正常であれば、isAlive列はtrueになっているはずです。

FS_Broker デプロイ(オプションコンポーネント)

BrokerはDorisとは独立してプラグインの形でデプロイされます。サードパーティのストレージシステムからデータをインポートする必要がある場合は、対応するBrokerをデプロイする必要があります。デフォルトで提供されるfs_brokerはHDFSとオブジェクトストレージから読み取りを行います。fs_brokerはステートレスであり、各FEとBEノードに対して1つのBrokerをデプロイすることを推奨します。

FEとBEノードと一緒にデプロイする場合は、展開されたディレクトリ内のapache_hdfs_brokerフォルダを保持するだけで済みます。

  • 対応するBroker設定を変更する

    対応するbrokerフォルダ下のbroker/conf/ディレクトリで、関連する設定を変更することができます。

  • Brokerを起動する

    sh bin/start_broker.sh --daemon
  • Add Broker

    DorisのFEとBEにBrokerがどのノード上にあるかを知らせるため、sqlコマンドを通じてBrokerノードリストを追加します。

    mysql-clientを使用して起動したFEに接続し、以下のコマンドを実行してください:

    ALTER SYSTEM ADD BROKER broker_name "broker_host1:broker_ipc_port1","broker_host2:broker_ipc_port2",...;

これらの中で、broker_hostはBrokerが配置されているノードのIPアドレスです。broker_ipc_portはBroker設定ファイルconf/apache_hdfs_broker.confに記載されています。

  • Brokerステータスの確認

    mysql-clientを使用して起動済みの任意のFEに接続し、以下のコマンドを実行してBrokerステータスを確認します:

    SHOW PROC "/brokers";