Doris【部署 01】Linux部署MPP數據庫Doris穩定版(下載+安裝+連接+測試)

本次安裝測試的為穩定版2.0.8官方文檔 https://doris.apache.org/zh-CN/docs/2.0/get-starting/quick-start 這個簡短的指南將告訴你如何下載 Doris 最新穩定版本,在單節點上安裝并運行它,包括創建數據庫、數據表、導入數據及查詢等。

Linux部署穩定版Doris數據庫

  • 1. 環境
  • 2. 下載
  • 3. Doris組件配置
    • 3.1 注意事項
    • 3.2 FE
    • 3.3 BE
    • 3.4 連接 Doris FE
      • 3.4.1 使用MySQL的Client
      • 3.4.2 使用FE WEB
  • 4. 建庫建表
    • 4.1 連接 Doris
    • 4.2 建數據庫和數據表
    • 4.3 導入數據
      • 4.3.1 使用接口導入
      • 4.3.2 使用Navicat連接并導入
    • 4.4 查詢數據
  • 5. 停止 Doris

1. 環境

  • 選擇一個 X86-64 上的主流 Linux 環境,推薦 CentOS 7.1 或者 Ubuntu 16.04 以上版本。
  • Java 8 運行環境(非 Oracle JDK 商業授權用戶,建議使用免費的 Oracle JDK 8u202,立即下載)。
  • 建議在 Linux 上新建一個 Doris 用戶(避免使用 root 用戶,以防對操作系統誤操作)。

當前的環境信息:

# 1.系統版本
cat /proc/version
Linux version 5.10.0-136.12.0.86.oe2203sp1.x86_64 (root@dc-64g.compass-ci) (gcc_old (GCC) 10.3.1, GNU ld (GNU Binutils) 2.37) #1 SMP Tue Dec 27 17:50:15 CST 2022# 2.JDK
java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)
# JAVA_HOME
echo $JAVA_HOME
/usr/local/jdk1.8.0_241# 3.用戶【使用doris用戶無法創建文件夾 實例中使用的是root用戶】
sudo useradd -m -s /bin/bash doris
sudo passwd doris

2. 下載

從 https://doris.apache.org/zh-CN/download 下載相應的 Doris 安裝包。
image.png
可以通過查看CPU的規格或者使用特定的命令來檢測CPU是否支持AVX2指令集。具體方法如下:

  • 在Linux系統中,可以使用命令cat /proc/cpuinfo來查看CPU信息。在輸出的信息中查找"avx2"字樣,如果存在,則表示CPU支持AVX2指令集。
  • 在Windows系統中,可以通過任務管理器的性能標簽頁下的CPU信息區域查看支持的指令集。

需要注意的是,AVX2是一種對處理器性能要求較高的指令集,較舊的CPU可能不支持。如果您的CPU不支持AVX2,那么在運行一些需要該指令集的高性能應用時可能會遇到兼容性問題。

cat /proc/cpuinfo | grep avx2

解壓重命名:

# 1.下載 Doris 二進制安裝包【也可以官網下載】
wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.0.8-bin-x64.tar.gz# 2.解壓安裝包
tar -zxvf apache-doris-2.0.8-bin-x64.tar.gz# 3.目錄重命名為更為簡單的 apache-doris
mv apache-doris-2.0.8-bin-x64 apache-doris

3. Doris組件配置

3.1 注意事項

  1. FE的磁盤空間主要用于存儲元數據,包括日志和image。通常從幾百MB到幾個GB不等。
  2. BE的磁盤空間主要用于存放用戶數據,總磁盤空間按用戶總數據量 * 3(3副本)計算,然后再預留額外40%的空間用作后臺compaction以及一些中間數據的存放。
  3. 一臺機器上可以部署多個BE實例,但是只能部署一個 FE。如果需要 3 副本數據,那么至少需要 3 臺機器各部署一個BE實例(而不是1臺機器部署3個BE實例)。多個FE所在服務器的時鐘必須保持一致(允許最多5秒的時鐘偏差)
  4. 測試環境也可以僅適用一個BE進行測試。實際生產環境,BE實例數量直接決定了整體查詢延遲。
  5. 所有部署節點關閉Swap。
  6. FE節點數據至少為1(1個Follower)。當部署1個Follower和1個Observer時,可以實現讀高可用。當部署3個Follower時,可以實現讀寫高可用(HA)。
  7. Follower的數量必須為奇數,Observer 數量隨意。
  8. 根據以往經驗,當集群可用性要求很高時(比如提供在線業務),可以部署3個 Follower和1-3個Observer。如果是離線業務,建議部署1個Follower和1-3個Observer。
  9. Broker是用于訪問外部數據源(如HDFS)的進程。通常,在每臺機器上部署一個 broker實例即可。

內部默認接口:

Brokerbroker_ipc_port8000FE–>BROKERBE–>BROKERBroker上的thrift server用于接收請求

3.2 FE

  • 配置

FE 的配置文件為 apache-doris/fe/conf/fe.conf。下面是一些需要關注的核心配置。除了 JAVA_HOME, 需要手動增加,并且指向你的 JDK8 運行環境。其它配置,可以使用默認值,即可支持單機快速體驗。

# 1.增加 JAVA_HOME 配置,指向 JDK8 的運行環境。
JAVA_HOME=/usr/local/jdk1.8.0_241# 2.FE 監聽 IP 的 CIDR 網段。默認設置為空,有 Doris 啟動時自動選擇一個可用網段。如有多個網段,需要指定一個網段,可以類似設置 priority_networks=92.168.0.0/24
priority_networks =# 3.FE 元數據存放的目錄,默認是在 DORIS_HOME 下的 doris-meta 目錄。已經創建,可以更改為你的元數據存儲路徑。
meta_dir = ${DORIS_HOME}/doris-meta# 4.端口配置
http_port = 8034
rpc_port = 9024
query_port = 9034
edit_log_port = 9014
http_port8030FE<–>FE用戶<–> FEFE上的http_server端口
rpc_port9020BE–>FEFE<–>FEFE上thirt server端口號
query_port9030用戶<–> FEFE上的mysql server端口
edit_log_port9010FE<–>FEFE上bdbje之間通信用的端口
  • 3.2 啟動

在 apache-doris/fe 下,運行下面命令啟動 FE。

# 將 FE 啟動成后臺運行模式,這樣確保退出終端后,進程依舊運行。
./bin/start_fe.sh --daemon
# 查看啟動情況
jps -l# 啟動成功
3709409 org.apache.doris.DorisFE

登錄 FE Web 頁面,地址為IP:8034,首頁為:
image.png
用戶名為root密碼為空,登錄后:
image.png

3.3 BE

# 設置最大虛擬塊的大小
sysctl -w vm.max_map_count=2000000
# 關閉交換空間
swapoff -a
  • 配置

BE 的配置文件為 apache-doris/be/be.conf。下面是一些需要關注的核心配置。除了 JAVA_HOME, 需要手動增加,并且指向你的 JDK8 運行環境。其它配置,可以使用默認值,即可支持我們的快速體驗。

# 1.增加 JAVA_HOME 配置,指向 JDK8 的運行環境。
JAVA_HOME=/usr/local/jdk1.8.0_241# 2.BE 監聽 IP 的 CIDR 網段。默認設置為空,有 Doris 啟動時自動選擇一個可用網段。如有多個網段,需要指定一個網段,可以類似設置 priority_networks=192.168.0.0/24
priority_networks =# 3.BE 數據存放的目錄,默認是在 DORIS_HOME 下的 storage 下,默認已經創建,可以更改為你的數據存儲路徑
storage_root_path = ${DORIS_HOME}/storage# 4.端口配置
be_port = 9064
webserver_port = 8044
heartbeat_service_port = 9054
brpc_port = 8064
be_prot9060FE–>BEBE上thrift server的端口用于接收來自FE 的請求
webserver_port8040BE<–>FEBE上的http server端口
heartbeat_service_port9050FE–>BEBE上心跳服務端口用于接收來自FE的心跳
brpc_prot8060FE<–>BEBE<–>BEBE上的brpc端口用于BE之間通信
  • 啟動

在 apache-doris/be 下,運行下面命令啟動 BE。

# 將 BE 啟動成后臺運行模式,這樣確保退出終端后,進程依舊運行。
./bin/start_be.sh --daemon
# 查看啟動情況
jps -l# 啟動成功
3713696 DorisBE

3.4 連接 Doris FE

3.4.1 使用MySQL的Client

通過 MySQL 客戶端來連接 Doris FE,下載免安裝的 MySQL 客戶端。

mysql -uroot -P9030 -h127.0.0.1-- 提示信息
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.99 Doris version doris-2.0.8-d083188cdd

注意:

  • 這里使用的 root 用戶是 Doris 內置的超級管理員用戶;
  • -P:這里是我們連接 Doris 的查詢端口,默認端口是 9030,對應的是 fe.conf 里的 query_port;
  • -h:這里是我們連接的 FE IP 地址,如果你的客戶端和 FE 安裝在同一個節點可以使用 127.0.0.1。
  1. 將 BE 節點添加到集群

在 MySQL 客戶端執行類似下面的 SQL,將 BE 添加到集群中

ALTER SYSTEM ADD BACKEND "be_host_ip:heartbeat_service_port";

注意:

  • be_host_ip:要添加 BE 的 IP 地址
  • heartbeat_service_port:要添加 BE 的心跳上報端口,可以查看 be.conf 里的 heartbeat_service_port,默認是 9050。
  • 通過 show backends 語句可以查看新添加的 BE 節點。
  1. 修改 root 和 admin 的密碼

在 MySQL 客戶端,執行類似下面的 SQL,為 root 和 admin 用戶設置新密碼

mysql> SET PASSWORD FOR 'root' = PASSWORD('doris-root-password');
Query OK, 0 rows affected (0.01 sec)mysql> SET PASSWORD FOR 'admin' = PASSWORD('doris-admin-password');
Query OK, 0 rows affected (0.00 sec)

root 和 admin 用戶的區別:
root 和 admin 用戶都屬于 Doris 安裝完默認存在的 2 個賬戶。其中 root 擁有整個集群的超級權限,可以對集群完成各種管理操作,比如添加節點,去除節點。admin 用戶沒有管理權限,是集群中的 Superuser,擁有除集群管理相關以外的所有權限。建議只有在需要對集群進行運維管理超級權限時才使用 root 權限。

3.4.2 使用FE WEB

  1. 將BE節點添加到集群

image.png

4. 建庫建表

4.1 連接 Doris

-- 使用 admin 賬戶連接 Doris FE
mysql -uadmin -P9030 -h127.0.0.1

提示:如果是在 FE 的同一臺機器上的 MySQL 客戶端連接 127.0.0.1, 不需要輸入密碼。

4.2 建數據庫和數據表

create database demo;use demo;
create table mytable
(k1 TINYINT,k2 DECIMAL(10, 2) DEFAULT "10.05",k3 CHAR(10) COMMENT "string column",k4 INT NOT NULL DEFAULT "1" COMMENT "int column"
)
COMMENT "my first table"
DISTRIBUTED BY HASH(k1) BUCKETS 1
PROPERTIES ('replication_num' = '1');

image.png
image.png

4.3 導入數據

4.3.1 使用接口導入

將以下示例數據,保存在本地的 data.csv:

1,0.14,a1,20
2,1.04,b2,21
3,3.14,c3,22
4,4.35,d4,23

通過 Stream Load 方式將上面保存到文件中的數據導入到剛才創建的表里。

curl --location-trusted -u admin:admin_password -T data.csv -H "column_separator:," http://127.0.0.1:8030/api/demo/mytable/_stream_load
  • -T data.csv : 要導入的數據文件名
  • -u admin:admin_password: admin 賬戶與密碼
  • 127.0.0.1:8030 : 分別是 FE 的 IP 和 http_port

執行成功之后我們可以看到下面的返回信息:

{
"TxnId": 30,
"Label": "a56d2861-303a-4b50-9907-238fea904363",
"Comment": "",
"TwoPhaseCommit": "false",
"Status": "Success",
"Message": "OK",
"NumberTotalRows": 4,
"NumberLoadedRows": 4,
"NumberFilteredRows": 0,
"NumberUnselectedRows": 0,
"LoadBytes": 52,
"LoadTimeMs": 206,
"BeginTxnTimeMs": 13,
"StreamLoadPutTimeMs": 141,
"ReadDataTimeMs": 0,
"WriteDataTimeMs": 7,
"CommitAndPublishTimeMs": 42
}
  • NumberLoadedRows: 表示已經導入的數據記錄數
  • NumberTotalRows: 表示要導入的總數據量
  • Status: Success 表示導入成功

4.3.2 使用Navicat連接并導入

  • 文件內容

image.png

  • 連接并導入

image.png
image.png

4.4 查詢數據

在 MySQL 客戶端中,執行如下 SQL,可以查詢到剛才導入的數據:

mysql> select * from mytable;+------+------+------+------+
| k1   | k2   | k3   | k4   |
+------+------+------+------+
|    1 | 0.14 | a1   |   20 |
|    2 | 1.04 | b2   |   21 |
|    3 | 3.14 | c3   |   22 |
|    4 | 4.35 | d4   |   23 |
+------+------+------+------+
4 rows in set (0.01 sec)

image.png

5. 停止 Doris

# 停止 FE 在 apache-doris/fe 下,運行下面命令停止 FE。
./bin/stop_fe.sh# 停止 BE 在 apache-doris/be 下,運行下面命令停止 BE。
./bin/stop_be.sh

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10202.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10202.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10202.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ElasticSearch的python api以及dev tool方式的基本操作

一、環境要求 根據es服務器版本&#xff0c;下載es的python api包&#xff0c;我們這里的環境為&#xff1a; python3.8, 下載的elastic search版本為7.6.0&#xff0c;安裝方式&#xff1a; pip install elasticsearch7.6.0二、es操作及python代碼 1、獲取es實例&#xff0…

LeetCode 每日一題 2024/5/6-2024/5/12

記錄了初步解題思路 以及本地實現代碼&#xff1b;并不一定為最優 也希望大家能一起探討 一起進步 目錄 5/6 741. 摘櫻桃5/7 1463. 摘櫻桃 II5/8 2079. 給植物澆水5/9 2105. 給植物澆水 II5/10 2960. 統計已測試設備5/11 2391. 收集垃圾的最少總時間5/12 5/6 741. 摘櫻桃 從起點…

當下是風口的熱門兼職副業,月入3萬問題不大,附保姆教程!

近年來&#xff0c;短視頻行業呈現出迅猛的發展勢頭&#xff0c;已經成為當下最受歡迎的一種形式。甚至連曾經的電商巨頭京東也開始積極布局這一領域&#xff0c;投入巨資20億元進行深入耕耘。 周周近財&#xff1a;讓網絡小白少花冤枉錢&#xff0c;賺取第一桶金 不知道您是…

第 8 章 機器人底盤Arduino端入口(自學二刷筆記)

重要參考&#xff1a; 課程鏈接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 講義鏈接:Introduction Autolabor-ROS機器人入門課程《ROS理論與實踐》零基礎教程 8.4.2 底盤實現_01Arduino端入口 ros_arduino_bridge/ros_arduino_firmware/src/libraries/ROSArduinoBridge…

Android APP讀寫外置SD卡無權限 java.io.IOException: Permission denied

在物聯網應用里&#xff0c;app需要對掛載SD卡讀寫文件&#xff0c;從 Android 4.4&#xff08;KitKat&#xff09;版本開始&#xff0c;Google 引入了一項名為 "Storage Access Framework" 的新功能&#xff0c;該功能限制了應用對外部存儲的直接讀寫權限,要不然就是…

引入Minio

前置條件 官網&#xff1a;https://www.minio.org.cn/download.shtml#/kubernetes 命令 # 查看系統上的網絡連接和監聽端口信息 netstat -tpnl # 檢查系統的指定端口占用情況 sudo netstat -tuln | grep 9000systemctl status firewalld # 臨時關閉 systemctl stop firewall…

生信人寫程序1. Perl語言模板及配置

生物信息領域常用語言 個人認為&#xff1a;是否能熟悉使用Shell(項目流程搭建)R(數據統計與可視化)Perl/Python/Java…(膠水語言&#xff0c;數據格式轉換&#xff0c;軟件間銜接)三門語言是一位合格生物信息工程師的標準。 生物信息常用語言非常廣泛&#xff0c;我常用的有…

在macOS中開發的Django項目部署到局域網的Win10服務器上

由于windows10是日常辦公電腦&#xff0c;沒有服務器基本環境&#xff0c;部署工程耗費不少時間&#xff0c;記錄一下。 1、安裝Python 訪問Python官方下載頁面&#xff1a;Python Downloads&#xff0c;下載適用于Windows的安裝程序并按照提示進行安裝。開發環境python版本是…

Python可以自學但是千萬不要亂學,避免“埋頭苦學”的陷阱!

前言 Python可以自學但是千萬不要亂學&#xff01; 歸根結底因為學習是個反人性的過程&#xff01; 復盤沒學下去的網課&#xff0c;都有以下特點&#xff1a; &#x1f605; 臣妾聽不懂啊&#xff01; 初次接觸編程遇到太多抽象高深的概念&#xff0c;不了解老師口中的一個…

基于51單片機的二氧化碳檢測及調節系統仿真

基于51單片機的二氧化碳檢測及調節系統 &#xff08;仿真&#xff0b;程序&#xff09; 功能介紹 具體功能&#xff1a; 1.二氧化碳傳感器測得二氧化碳數據后經過單片機處理。 2.LCD1602實時顯示&#xff0c;第一行顯示測得的濃度值&#xff0c;第二行顯示報警閾值。 3.測…

棱鏡七彩參編《網絡安全技術 軟件供應鏈安全要求》國家標準發布

據全國標準信息公共服務平臺消息顯示&#xff0c;《網絡安全技術 軟件供應鏈安全要求》&#xff08;GB/T 43698-2024&#xff09;國家標準已于2024年4月25日正式發布&#xff0c;并將于2024年11月1日正式實施。棱鏡七彩作為主要編制單位之一參與該國家標準的編制&#xff0c;為…

Taro 快速開始

大家好我是蘇麟 , 今天聊聊Trao. 官網 : Taro 介紹 | Taro 文檔 (jd.com) 點擊快速開始 全局安裝 CLI 初始化一個項目 選擇配置 : 根據自己需求選擇 安裝失敗先不用管 , 用前端工具打開項目 npm install 安裝 , 顯示安裝失敗 怎么解決 ? : 查看報錯信息 百度 , 問 AI 工具 運…

算法練習第六十天|84. 柱狀圖中最大的矩形

84. 柱狀圖中最大的矩形 柱狀圖中最大的矩形 class Solution {public int largestRectangleArea(int[] heights) {int[] newHeight new int[heights.length 2];System.arraycopy(heights, 0, newHeight, 1, heights.length);newHeight[heights.length1] 0;newHeight[0] 0;…

算法學習筆記(最短路——spfa)

前置&#xff1a;bellman-ford s p f a spfa spfa是 B e l l m a n ? F o r d Bellman-Ford Bellman?Ford算法的改進。在 B e l l m a n ? F o r d Bellman-Ford Bellman?Ford中&#xff0c;我們在每一輪中枚舉了每一條邊&#xff0c;但是實際上&#xff0c;在上一輪中沒有…

睿爾曼機械臂ROS控制

下載git工程 git clone https://github.com/RealManRobot/rm_robot.git安裝配置 catkin build rm_msgs source devel/setup.bash catkin build source setup.bash這里注意&#xff0c;如果采用setup.sh多半不會成功&#xff0c;必須要source setup.bash文件&#xff0c;ros才…

train_gpt2_fp32.cu

源程序 llm.c/test_gpt2_fp32.cu at master karpathy/llm.c (github.com) #include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> #include <assert.h> #include <float.h> #include <string.h> #include…

二叉樹的最小深度和二叉樹的節點數

二叉數的最小深度&#xff1a; 思路&#xff1a;和最大深度一樣需要用到回溯遞歸的方法 代碼大致內容 判斷函數是否為空&#xff0c;如果是空return 0&#xff1b; 定義一個變量接收遞歸函數返回的值&#xff08;左&#xff09; 定義一個變量接收遞歸函數返回的值&#xf…

力扣每日一題-收集垃圾的最少總時間-2024.5.11

力扣題目&#xff1a;收集垃圾的最少總時間 題目鏈接: 2391.收集垃圾的最少總時間 題目描述 代碼純享版 class Solution {public int garbageCollection(String[] garbage, int[] travel) {int sum 0;int last_M -1,last_P -1, last_G -1;for(int i 0; i < garbage.…

以Azure為例的SSO

由于文章的篇幅有限&#xff0c;無法將全部的代碼貼上來&#xff0c;如想要看完整案例&#xff0c;請在公眾號文章中留言(其他平臺很少看…畢竟最近印度同事的UI組件庫搞得我好煩) 1.關于SSO 單點登錄又稱之為SSO,全稱為 Single Sign On &#xff0c;一般在多個應用系統中&…

Github2024-05-10開日報 Top10

根據Github Trendings的統計&#xff0c;今日(2024-05-10統計)共有10個項目上榜。根據開發語言中項目的數量&#xff0c;匯總情況如下&#xff1a; 開發語言項目數量Python項目4TypeScript項目4JavaScript項目1Lua項目1C項目1Rust項目1Dart項目1 RustDesk: 用Rust編寫的開源遠…