Galaxy Kirin サーバー オペレーティング システム V10SP3 の単一マシン展開の Apache Doris データベース

序文

Apache Doris は、MPP アーキテクチャに基づく高性能リアルタイム分析データベースであり、非常に高速で使いやすいことで知られています。大量のデータの下では、クエリ結果を返す応答時間は 1 秒未満のレベルに達し、同時実行ポイントの高いクエリ シナリオだけでなく、高スループットの複雑な分析シナリオもサポートします。データベース、データテーブルの作成、データとクエリのインポートなど、単一ノードでのインストールと実行をサポートします。

システム環境

OS バージョン: Galaxy Kirin サーバー オペレーティング システム V10SP3-2212 (x86_64)
Apache Doris バージョン: 1.2.3
Apache Doris 公式 Web サイト: https://dris.incubator.apache.org/
Doris インストール パッケージのダウンロード リンクと関連手順:

コンポーネント名 コンポーネントの説明 コンポーネントのダウンロード リンク (CPU が avx2 命令セットをサポートする必要があります)
FE フロントエンド、Doris のフロントエンド ノード。主に Java 言語に基づいており、主にクライアント リクエストの受信と返却、メタデータ、クラスター管理、クエリ プランの生成などを担当します。 apache-dris-fe-1.2.3-bin-x86_64.tar.xz
なれ バックエンド、Doris のバックエンド ノード。主にC++言語を使用し、主にデータの保存と管理、クエリプランの実行などを担当します。 apache-dris-be-1.2.3-bin-x86_64.tar.xz
依存関係 apache-dris-dependency には、Broker と AuditLoader だけでなく、JDBC の外観と JAVA UDF をサポートする jar パッケージが含まれています。ダウンロード後、java-udf-jar-with-dependency.jar を be/lib ディレクトリに配置する必要があります。 apache-dris-dependency-1.2.3-bin-x86_64.tar.xz

組み立て手順

システム構成

  1. Doris を実行するには、システムにバージョン 8 以上の Java 環境がインストールされている必要があります。現在インストールされている Java 環境のバージョンは、java -versionコマンドで確認できます。
[root@localhost ~]# java -version

ここに画像の説明を挿入します
2. システム内で開いているファイル ハンドルの最大数を設定します。

[root@localhost ~]# vim /etc/security/limits.conf

ここに画像の説明を挿入します
3. システムファイアウォールリリースポート。

[root@localhost ~]# firewall-cmd --zone=public --add-port=8030/tcp --permanent
[root@localhost ~]# firewall-cmd --reload

ここに画像の説明を挿入します

FEの導入

FEの設定

  1. FE コンポーネント パッケージを解凍します。
[root@localhost ~]# xz -d apache-doris-fe-1.2.3-bin-x86_64.tar.xz
[root@localhost ~]# tar -xvf apache-doris-fe-1.2.3-bin-x86_64.tar
[root@localhost ~]# mv apache-doris-fe-1.2.3-bin-x86_64 /opt/doris-fe
  1. FE 構成ファイルを変更します。
[root@localhost ~]# cd /opt/doris-fe/
[root@localhost ~]# vim conf/fe.conf

変更前:
ここに画像の説明を挿入します
変更後:
ここに画像の説明を挿入します

スタートFE

  1. FE のインストール ディレクトリで次のコマンドを実行して、FE の起動を完了します。
[root@localhost doris-fe]# ./bin/start_fe.sh --daemon
  1. 次のコマンドを実行して、Doris が正常に起動したかどうかを確認します。返された結果に"msg": "success"キーワードが含まれている場合は、Doris が正常に起動したことを意味します。
[root@localhost doris-fe]# curl http://192.168.42.178:8030/api/bootstrap

ここに画像の説明を挿入します
3. または、Web ブラウザ経由でアクセスして、http://{FE_IP}:8030FE が正常に起動することを確認します (
デフォルトのログイン ユーザー: root
パスワード: 空)

ここに画像の説明を挿入します

FEを接続する

  1. 次のコマンドを実行して Doris FE に接続します。
[root@localhost ~]# mysql -uroot -P9030 -h127.0.0.1

注: root は、Doris の組み込みデフォルト スーパー ユーザーです。9030 は、 FE 構成ファイルfe.conf内のフィールドの値ですquery_port(デフォルトは 9030)。
ここに画像の説明を挿入します
2. 次の MySQL データベース コマンドを実行して、FE の実行ステータスを表示します。

MySQL [(none)]> show frontends\G;

ここに画像の説明を挿入します
上記のコマンドで返された結果にIsMaster,Join,Aliveこれら 3 つのフィールドの値が表示されている場合はtrue、FE ノードが正常であることを意味します。

FEを停止

FE は次のコマンドで停止できます。

[root@localhost doris-fe]# ./bin/stop_fe.sh

ここに画像の説明を挿入します

BE を導入する

BEの構成

  1. BE コンポーネント パッケージを解凍します。
[root@localhost ~]# xz -d apache-doris-be-1.2.3-bin-x86_64.tar.xz
[root@localhost ~]# tar -xvf apache-doris-be-1.2.3-bin-x86_64.tar
[root@localhost ~]# mv apache-doris-be-1.2.3-bin-x86_64 /opt/doris-be
  1. BE 構成ファイルを変更します。
[root@localhost ~]# cd /opt/doris-be/
[root@localhost ~]# vim conf/be.conf

変更前: 変更後
ここに画像の説明を挿入します

ここに画像の説明を挿入します
3. JAVA_HOME環境変数を設定する;
①現在のシステムのJAVA_HOME変数を確認する

[root@localhost doris-be]# which java
[root@localhost doris-be]# ls -lrt /usr/bin/java
[root@localhost doris-be]# ls -lrt /etc/alternatives/java

ここに画像の説明を挿入します
注: 上の図で返される結果は、システム変数の値/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-10.ky10.x86_64です。②環境変数を設定するBEの起動スクリプトの一行目を追加JAVA_HOME
start_be.shexport JAVA_HOME=your_java_home_path

[root@localhost doris-be]# vim bin/start_be.sh

ここに画像の説明を挿入します
4. JAVA UDF機能をインストールします。

[root@localhost ~]# xz -d apache-doris-dependencies-1.2.3-bin-x86_64.tar.xz
[root@localhost ~]# tar -xf apache-doris-dependencies-1.2.3-bin-x86_64.tar
[root@localhost ~]# cp apache-doris-dependencies-1.2.3-bin-x86_64/java-udf-jar-with-dependencies.jar /opt/doris-be/lib/

BEを始める

  1. 以下のコマンドを順番に実行して BE を起動します。
[root@localhost doris-be]# sysctl -w vm.max_map_count=2000000
[root@localhost doris-be]# ./bin/start_be.sh --daemon
  1. MySQL クライアント経由で FE に接続し、次の SQL ステートメントを実行して BE ノードをクラスターに追加し、BE の実行ステータスを確認します。
[root@localhost doris-be]# mysql -uroot -P9030 -h127.0.0.1
MySQL [(none)]> ALTER SYSTEM ADD BACKEND "192.168.42.178:9050";
MySQL [(none)]> show backends\G;

ここに画像の説明を挿入します

停止BE

  1. 次のコマンドを実行して BE を停止します。
[root@localhost doris-be]# ./bin/stop_be.sh

ここに画像の説明を挿入します

データテーブルの作成

  1. データベースを作成します。
[root@localhost ~]# mysql -uroot -P9030 -h127.0.0.1
MySQL [(none)]> create database demo;

ここに画像の説明を挿入します
2. データテーブルを作成します。

MySQL [(none)]> use demo;
Database changed
MySQL [demo]> CREATE TABLE IF NOT EXISTS demo.example_tbl
    -> (
    ->     `user_id` LARGEINT NOT NULL COMMENT "user id",
    ->     `date` DATE NOT NULL COMMENT "",
    ->     `city` VARCHAR(20) COMMENT "",
    ->     `age` SMALLINT COMMENT "",
    ->     `sex` TINYINT COMMENT "",
    ->     `last_visit_date` DATETIME REPLACE DEFAULT "1970-01-01 00:00:00" COMMENT "",
    ->     `cost` BIGINT SUM DEFAULT "0" COMMENT "",
    ->     `max_dwell_time` INT MAX DEFAULT "0" COMMENT "",
    ->     `min_dwell_time` INT MIN DEFAULT "99999" COMMENT ""
    -> )
    -> AGGREGATE KEY(`user_id`, `date`, `city`, `age`, `sex`)
    -> DISTRIBUTED BY HASH(`user_id`) BUCKETS 1
    -> PROPERTIES (
    ->     "replication_allocation" = "tag.location.default: 1"
    -> );
Query OK, 0 rows affected (0.101 sec)
  1. サンプルデータをインポートします。
[root@localhost ~]# cat /opt/test.csv
10000,2017-10-01,beijing,20,0,2017-10-01 06:00:00,20,10,10
10006,2017-10-01,beijing,20,0,2017-10-01 07:00:00,15,2,2
10001,2017-10-01,beijing,30,1,2017-10-01 17:05:45,2,22,22
10002,2017-10-02,shanghai,20,1,2017-10-02 12:59:12,200,5,5
10003,2017-10-02,guangzhou,32,0,2017-10-02 11:20:00,30,11,11
10004,2017-10-01,shenzhen,35,0,2017-10-01 10:00:15,100,3,3
10004,2017-10-03,shenzhen,35,0,2017-10-03 10:20:22,11,6,6

上記の test.csv 内のデータを、ストリーム ロードを通じて前の手順で作成したデータ テーブルにインポートします。

[root@localhost ~]# curl  --location-trusted -u root: -T /opt/test.csv -H "column_separator:," http://127.0.0.1:8030/api/demo/example_tbl/_stream_load

ここに画像の説明を挿入します
注:上記の返された結果のStatusフィールドの値は、Successデータが正常にインポートされたことを示しています。

クエリデータ

上記の手順により、データ テーブルの作成とデータのインポートが完了しました。その後、Doris の高速データ クエリとデータ分析機能を体験できるようになります。

[root@localhost ~]# mysql -uroot -P9030 -h127.0.0.1
MySQL [(none)]> use demo;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MySQL [demo]> select * from example_tbl;
+---------+------------+-----------+------+------+---------------------+------+----------------+----------------+
| user_id | date       | city      | age  | sex  | last_visit_date     | cost | max_dwell_time | min_dwell_time |
+---------+------------+-----------+------+------+---------------------+------+----------------+----------------+
| 10000   | 2017-10-01 | beijing   |   20 |    0 | 2017-10-01 06:00:00 |   20 |             10 |             10 |
| 10001   | 2017-10-01 | beijing   |   30 |    1 | 2017-10-01 17:05:45 |    2 |             22 |             22 |
| 10002   | 2017-10-02 | shanghai  |   20 |    1 | 2017-10-02 12:59:12 |  200 |              5 |              5 |
| 10003   | 2017-10-02 | guangzhou |   32 |    0 | 2017-10-02 11:20:00 |   30 |             11 |             11 |
| 10004   | 2017-10-01 | shenzhen  |   35 |    0 | 2017-10-01 10:00:15 |  100 |              3 |              3 |
| 10004   | 2017-10-03 | shenzhen  |   35 |    0 | 2017-10-03 10:20:22 |   11 |              6 |              6 |
| 10006   | 2017-10-01 | beijing   |   20 |    0 | 2017-10-01 07:00:00 |   15 |              2 |              2 |
+---------+------------+-----------+------+------+---------------------+------+----------------+----------------+
7 rows in set (0.080 sec)

MySQL [demo]> select * from example_tbl where city='shanghai';
+---------+------------+----------+------+------+---------------------+------+----------------+----------------+
| user_id | date       | city     | age  | sex  | last_visit_date     | cost | max_dwell_time | min_dwell_time |
+---------+------------+----------+------+------+---------------------+------+----------------+----------------+
| 10002   | 2017-10-02 | shanghai |   20 |    1 | 2017-10-02 12:59:12 |  200 |              5 |              5 |
+---------+------------+----------+------+------+---------------------+------+----------------+----------------+
1 row in set (0.038 sec)

MySQL [demo]> select city, sum(cost) as total_cost from example_tbl group by city;
+-----------+------------+
| city      | total_cost |
+-----------+------------+
| beijing   |         37 |
| shanghai  |        200 |
| guangzhou |         30 |
| shenzhen  |        111 |
+-----------+------------+
4 rows in set (0.059 sec)

MySQL [demo]>

参考リンク:https ://dris.incubator.apache.org/docs/dev/get-starting/

おすすめ

転載: blog.csdn.net/ShenSeKyun/article/details/129931676