日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

大数据之实时数据分析之Apache Doris数据库

發布時間:2024/8/1 数据库 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大数据之实时数据分析之Apache Doris数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、概要

Apache Doris是一款現代 MPP (Massively Parallel Processing大規模并行處理)的分布式 SQL 分析數據庫,所謂分析數據庫就是將其數據集分布在許多機器或節點上,以處理大量數據,采用 Apache 2.0認證授權。它的前身是原百度 Palo,由百度在2017年開源,2018年進入 Apache 孵化器。Apache Doris它可以提供亞秒級查詢和高效的實時數據分析。憑借其分布式架構,將支持高達 10PB 級別的數據集,并且易于操作。它可以滿足各種數據分析場景,比如:歷史數據報告、實時數據分析、交互式數據分析、探索性數據分析等。

關于MPP (Massively Parallel Processing),即大規模并行處理,它是將任務并行的分散到多個服務器和節點上,在每個節點上計算完成后,將各自部分的結果匯總在一起得到最終的結果(與Hadoop相似)。每臺數據節點通過專用網絡或者商業通用網絡互相連接,彼此協同計算,作為整體提供數據庫服務。整個集群稱為非共享數據庫集群,非共享數據庫集群有完全的可伸縮性、高可用、高性能、優秀的性價比、資源共享等優勢。故MPP數據庫作為一款 Shared Nothing架構的分布式并行結構化數據庫集群,它的高性能、高可用及高擴展特性,可以為超大規模數據管理提供高性價比的通用計算平臺,并廣泛地用于支撐各類數據倉庫系統、BI 系統和決策支持系統。

MPP 采用完全并行的MPP + Shared Nothing 的分布式扁平架構,這種架構中的每一個節點(node)都是獨立的、自給的、節點之間對等,而且整個系統中不存在單點瓶頸,具有非常強的擴展性。

MPP數據庫適合存儲高密度價值數據,并且是長期存儲和頻繁使用(讀/消費),MPP并行數據庫會花大量的精力在Load階段,把數據處理成適合分析的中間格式。帶來的優點就是從查詢速度快,通常在秒級甚至毫秒級以內就可以返回查詢結果。缺點是不支持細粒度的容錯。MPP 具備以下技術特征:

1、相對低的硬件成本:完全兼容 x86 架構的 PC Server,無需昂貴的 Unix 服務器和磁盤陣列;

2、集群架構與部署:完全并行的 MPP + Shared Nothing 的分布式架構,采用 Non-Master 部署,節點對等的扁平結構;

3、海量數據分布壓縮存儲:可處理 PB 級別以上的結構化數據,采用 hash分布、random 存儲策略進行數據存儲;同時采用先進的壓縮算法,減少存儲數據所需的空間,可以將所用空間減少 1~20 倍,并相應地提高 I/O 性能;

4、 數據加載高效性:基于策略的數據加載模式,集群整體加載速度可達2TB/h;

5、高擴展、高可靠:支持集群節點的擴容和縮容,支持全量、增量的備份/恢復;但當節點數達到100左右時,MPP會遇到SQScalability的問題,速度變慢,或者不穩定。增加或者刪除節點時,需要的維護工作比較大,集群會遇到數據遷移和重新平衡的問題;

6、 高可用、易維護:數據通過副本提供冗余保護,自動故障探測和管理,自動同步元數據和業務數據。提供圖形化工具,以簡化管理員對數據庫的管理工作;

7、高并發:讀寫不互斥,支持數據的邊加載邊查詢,單個節點并發能力大于 300 用戶;

8、行列混合存儲:提供行列混合存儲方案,從而提高了列存數據庫特殊查詢場景的查詢響應耗時;MPP數據庫一般是列式的,即MPP數據庫通常將每一列存儲為一個對象,而不是將表中的每一行存儲為一個對象(事務數據庫的功能)。這種體系結構使復雜的分析查詢可以更快,更有效地處理。

9、標準化:支持SQL92 標準,支持 C API、ODBC、JDBC、ADO.NET 等接口規范。

我們這里順帶回顧下OLTP與OLAP區別:

OLTP(OnLine Transaction Processing ,聯機事務處理)系統:如mysql,這種關系型數據庫擅長事務處理,在數據操作中保持著很強的一致性和原子性 ,能夠很好的支持頻繁的數據插入和修改 ,但是,一旦數據量過大,OLTP便力不從心了。

OLAP(On-Line Analytical Processing,聯機分析處理)系統:例如Greenplum。并不特別關心對數據進行輸入、修改等事務性處理,它更關心對已有的大量數據進行多維度的、復雜的分析的一類數據系統。

與Hadoop的區別:

1、.底層數據庫不同:MPP跑的是SQL,而Hadoop底層處理的是MapReduce程序。SQL on Hadoop是利用Hadoop平臺存儲數據,在其之上實現SQL查詢引擎。最大的特點是Scalability非常好,可以支持超過1000個節點的集群。但是由于Hadoop的特點,很多查詢還是需要做大量的數據掃描操作,因此查詢速度往往比MPP要慢,而且支持的并發查詢數一般也比較低。

2、擴展能力不同:MPP雖然是宣稱可以橫向擴展Scale OUT,但是這種擴展一般是擴展到100左右,而Hadoop一般可以擴展1000+。
3、應用場景不同:Hadoop更適合處理非結構化和半結構化數據,尤其適合海量數據批處理等應用要求,多用于海量數據存儲查詢、批量數據ETL、非機構化數據分析(日志分析、文本分析)等;而MPP適合替代現有關系數據進行現有條件下的大數據處理,且具有較高的效率,適合多維度數據自助分析、數據集市等。如何場景中數據都是結構化的數據,且習慣使用傳統的RDBMS,可以考慮MPP,例如Greenplum/Gbase/elasticsearch/doris/MemSQL/Teradata等;但是如有很多非結構化數據,或者數據量巨大,有需要擴展到成百上千個數據節點需求的,這個時候Hadoop是更好的選擇,如Hive/Spark等。

與傳統數據庫的對比:


Doris 主要集成了 Google Mesa 和 Apache Impala 的技術,基于列式存儲引擎,可以通過 MySQL 客戶端進行通信。Doris 的定位是面向在線報表和分析的數據倉庫系統,可以對標于商業的MPP 數據倉庫系統,比如Greenplum、Vertica、Teradata 等。Doris 的目標:


Doris優勢:

完全兼容MySQL協議;
采用列式存儲、對數據以高壓縮比進行壓縮存儲、向量化執行等先進技術,因此獲得了極高的查詢效率;
支持多種存儲模型:同時支持類似于Mesa將列分為Key和Value的存儲模型,同時支持Unique Key和Dup Key的存儲模型。用戶可以根據自己的業務場景,選用不同的存儲模型;
支持兩層分區;
支持多種數據導入方式;
安全資源隔離擴容縮容;
備份和恢復;
支持web監控和管理;

相關知識參考:

1、Apache Doris : 一個開源 MPP 數據庫的架構與實踐

2、Doris 建表、數據導入與刪除

3、Doris 數據模型、ROLLUP 及前綴索引

4、Doris官網; 官方中文文檔;

二、產品架構及原理


整體架構如下圖:


如上圖所示,Doris 的整體架構分為了兩層。多個 FE 組成第一層,提供 FE 的橫向擴展和高可用。多個 BE 組成第二層,負責數據存儲于管理。Doris 的整體架構和 TiDB 類似,借助 MySQL 協議,用戶使用任意 MySQL 的 ODBC/JDBC以及MySQL 的客戶端,都可以直接訪問 Doris。Doris 中的模塊包括 FE 和 BE 兩類:FE 主要負責元數據的管理、存儲,以及查詢的解析等;一個用戶請求經過 FE 解析、規劃后,具體的執行計劃會發送給 BE,BE 則會完成查詢的具體執行。BE 節點主要負責數據的存儲、以及查詢計劃的執行。目前平臺的 FE 部分主要使用 Java,BE 部分主要使用 C++。

2.1、組件及原理

FE(Frontend):,Doris的前端節點。它主要負責接收和返回客戶端請求、元數據、集群管理和查詢計劃生成。各個 FE 之間,通過 bdbje(BerkeleyDB Java Edition,在 Doris 中,使用 bdbje 完成元數據操作日志的持久化、FE 高可用等功能)協議進行 leader 選舉,數據同步等工作。FE角色分為追隨者Follower和觀察者 Observer,其中Leader是Follower組中選舉產生的;其中一個 follower 成為 leader 節點,負責元數據的寫入操作。當 leader 節點宕機后,其他 follower 節點會重新選舉出一個 leader,保證服務的高可用。observer 節點僅從 leader 節點進行元數據同步,不參與選舉。可以橫向擴展以提供元數據的讀服務的擴展性。

BE(Backend): Doris的后端節點。主要負責數據存儲與管理、查詢計劃執行等工作。

Broker:Broker是一個無狀態的進程。主要是讓 Doris 在類 Unix 的文件系統接口中可以訪問如 HDFS 上的數據那樣的外部數據源,從而可以用于數據導入或數據導出操作。

Tablet:Tablet是一張表的實際物理存儲單元。在由BE組成分布式存儲層中,經過分區分桶后,以Tablet為單位存儲一張表。每個 Tablet 包括元信息和幾個連續的 RowSet。 .

Rowset:Rowset是tablet中某次數據變化的數據集合,數據變化包括:數據的導入、刪除、更新。Rowset按版本信息記錄。每次更改都會生成一個版本。

Version:由Start和End兩個屬性組成,維護數據變化的記錄信息。通常用來表示 Rowset 的版本范圍,新導入后會生成一個 Start 和 End 相等的 Rowset,在 Compaction 之后生成一個有范圍的 Rowset 版本。

Segment:表示Rowset中的數據段。多個 Segment 形成一個 Rowset。

Compaction:合并連續版本的Rowset的過程稱為Compaction,合并過程中數據會被壓縮。

1)Doris 各節點認證機制

除了 Master FE 以外,其余角色節點(Follower FE,Observer FE,Backend),都需要通過 ALTER SYSTEM ADD 語句先注冊到集群,然后才能加入集群。

Master FE 在第一次啟動時,會在 doris-meta/image/VERSION 文件中生成一個 cluster_id。

FE 在第一次加入集群時,會首先從 Master FE 獲取這個文件。之后每次 FE 之間的重新連接(FE 重啟),都會校驗自身 cluster id 是否與已存在的其它 FE 的 cluster id 相同。如果不同,則該 FE 會自動退出。

BE 在第一次接收到 Master FE 的心跳時,會從心跳中獲取到 cluster id,并記錄到數據目錄的 cluster_id 文件中。之后的每次心跳都會比對 FE 發來的 cluster id。如果 cluster id 不相等,則 BE 會拒絕響應 FE 的心跳。

心跳中同時會包含 Master FE 的 ip。當 FE 切主時,新的 Master FE 會攜帶自身的 ip 發送心跳給 BE,BE 會更新自身保存的 Master FE 的 ip。

2)BE 進程文件句柄數:

BE進程文件句柄數,受min_file_descriptor_number/max_file_descriptor_number兩個參數控制。

如果不在[min_file_descriptor_number, max_file_descriptor_number]區間內,BE進程啟動會出錯,可以使用ulimit進行設置。

min_file_descriptor_number的默認值為65536。

max_file_descriptor_number的默認值為131072.

ulimit -n 65536; 表示將文件句柄設成65536。

啟動BE進程之后,可以通過 cat /proc/$pid/limits 查看進程實際生效的句柄數;如果使用了supervisord,遇到句柄數錯誤,可以通過修改supervisord的minfds參數解決。

vim /etc/supervisord.conf //修改如下minfds=65535 ; (min. avail startup file descriptors;default 1024)

2.2、Doris 數據分布

如果從表的角度來看數據結構,用戶的一張 Table 會拆成多個 Tablet,Tablet 寫入/存儲到Doris會存成多副本,存儲在不同的 BE 中,從而保證數據的高可用和高可靠。類似于kafka的分區存儲多副本。

2.3、Doris 數據模型

1)Doris 數據模型特點

1、鍵值對存儲形式:類似于字典搜索查詢的鍵值對格式,Doris 中所有數據分成兩列:Key 列和 Value 列。如下圖所示,Time、Id、Country 列共同組成 Key 列,Clicks、Cost 列為 Value 列。Key 列有序可進行快速查找,Value 列可以按照具體聚合類型內部完成數據聚合。


2、Key 列
全局有序
排列,查詢時方便快速定位查找。Doris 數據模型的一個顯著特點是 Key 列全局唯一,因此存在相同 Key 值的不同 Value,則后面的數據與前面的數據自動做 ( SUM,MIN,MAX,REPLACE ) 等聚合處理。例如,下圖中綠色方框中的兩行,相同的 Key 值對應不同的 Value;因此,新的 Value 到達后,就會與先前的中間數據作 SUM 處理,得到最新的數據,不僅提升效率,還可提高數據處理的準確性。

2)按列存儲

在 Doris 中,數據以表(Table)的形式進行邏輯上的描述。Column 可以分為兩大類:Key 和 Value。從業務角度看,Key 和 Value 可以分別對應維度列指標列

1、Doris 的數據是按列存儲的,每一列單獨存放。
2、查詢時,只訪問查詢涉及的,大量降低 I/O。
3、數據類型一致,方便壓縮。
4、數據包建索引,數據即索引。
5、利用原始過濾條件以及 min、max 和 sum 等智能索引技術,將數據集查詢范圍盡可能地縮小,大大減少 I/O,提升查詢效率。

3)物化視圖

物化視圖是提取某些維度的組合建立對用戶透明的卻有真實數據的視圖表格。Doris 的物化視圖可以保證用戶在更新時,直接更新原始表,Doris 會保證原表、物化視圖原子生效。在查詢的時候用戶也只需指定原始表,Doris 會根據查詢的具體條件,選擇適合的物化視圖完成查詢。通常用戶可以通過物化視圖功能完成以下兩種功能:

1、更換索引列進行重排列
2、針對指定列做聚合查詢

示例如下:

2.4、Doris 關鍵技術

1)數據可靠性

1、元數據使用 Memory+Checkpoint+Journal ,使用 BTBJE ( 類似于 Raft ) 協議實現高可用性和高可靠性。

2、Doris 內部自行管理數據的多副本和自動修復。保證數據的高可用、高可靠。在服務器宕機的情況下,服務依然可用,數據也不會丟失。

2)易運維

1、部署方便:Doris 部署無外部依賴,只需要部署 BE 和 IBE 即可搭建起一個集群。
2、操作方便:它支持 Online Schema Change(在線更改表模式( 加減列,創建 Rollup )) ,不會影響當前服務,不會阻塞讀、寫等操作;這種執行是異步的 ( 用戶不需要一直盯在那里 );
3、副本自動均衡:傳統數據庫的擴(縮)容比較麻煩,有時甚至需要重做數據;而 Doris 數據庫只需要一條 SQL ( 無須額外操作 ) 即可實現擴(縮)容。
4、內置監控:使用 Prometheus、Grafana 將監控項指標列出。

數據庫同步操作和異步操作卻別:

同步,是所有的操作都做完,才返回給用戶結果;即寫完數據庫之后,再響應用戶,用戶體驗不好;

異步,不用等所有操作等做完,就相應用戶請求;即先相應用戶請求,然后慢慢去寫數據庫,用戶體驗較好。緩存機制(也就是消息隊列),就是異步操作的一個典型應用。

3)MySQL 兼容性

MySQL 的兼容性主要體現在以下兩方面:

1、兼容 MySQL 的網絡協議 ( MySQL Network Protocol )

2、兼容 MySQL 語法,使用 MySQL 語法可對 Doris 數據庫進行查詢;比如:MySQL 的調度服務器 Proxy,可以直接用作 Doris 的 Proxy。

3、Doris 的前端展示,可以使用 MySQL 專屬展示器 Tableu。

4、Doris 與 R 語言可以實現無縫對接,用 R 語言可直接操作 Doris 數據庫,進行數據分析、數據挖掘等工作。

4)支持 MPP

MPP 即 Massively Parallel Processing,大規模并行處理,即海量數據并發查詢。比如下面的語句:

SELECT k1,SUM(v1) FROM A,B WHERE A.k2=B.k2 GROUP BY k1 ORDER BY SUM(v1)

上述語句包含了合并、聚合計算、排序等多種操作;在執行時,MPP 會將其拆分成多份,分布到每臺機器執行,最后再將結果匯總。假如有10臺機器,在大數據量下,這種查詢執行方式可以使得查詢性能達到10倍的提升。如下圖所示:

三、部署配置

3.1、最低環境要求

CPU:2C(最低)8C(推薦)
內存:4G(最低)48G(推薦)
硬盤:100G(最低)400G(推薦),推薦使用 ext4 文件系統;FE的磁盤空間主要用于存儲元數據,包括日志和圖像。通常它的范圍從幾百 MB 到幾 GB。而BE的磁盤空間主要用于存儲用戶數據。總磁盤空間按用戶總數據*3(3份)計算。然后額外預留 40% 的空間用于后臺壓縮和一些中間數據存儲。
平臺:MacOS(Intel)、LinuxOS、Windows虛擬機
系統:CentOS(7.1及以上)、Ubuntu(16.04及以上)
軟件:JDK(1.8及以上)、GCC(4.8.2及以上)

下表是官網推薦的生產環境配置:

環境網絡要求:

其他注意事項及部署規劃參考:

1、單臺機器可以部署多個BE實例,但只能部署一個FE。如果需要三份數據,則每臺機器至少需要一個 BE 實例(而不是每臺機器三個 BE 實例)。多個FE服務器時鐘必須一致(允許最大5秒時鐘偏差);
2、測試環境也可以只用一個 BE 進行測試。在實際生產環境中,BE實例的數量直接決定了整體的查詢延遲。
所有部署節點都關閉 Swap。
3、FE 節點數據至少為 1(1 個 Follower)。當部署一個 Follower 和一個 Observer 時,可以實現高讀取可用性。當部署三個 Follower 時,可以實現讀寫高可用性(HA)。Followers 的數量必須是奇數,Observers 的數量是任意的。
4、當集群可用性要求較高時(例如提供在線服務),可以部署三個 Follower 和一到三個 Observer。對于線下業務,建議部署1個Follower和1-3個Observer。
5、通常我們推薦大約10到100臺機器來充分發揮Doris的性能(其中3臺部署FE(HA),其余部署BE);當然,Doris 的性能與節點的數量和配置呈正相關。最少四臺機器(一臺 FE,三臺 BE,一臺 BE 混合一臺 Observer FE 提供元數據備份)和較低的配置,Doris 仍然可以流暢運行。部署多個 FE 實例時,請確保 FE 的 http 端口配置相同
6、如果 FE 和 BE 混用,要注意資源競爭,保證元數據目錄和數據目錄分配到不同的磁盤上。
7、Broker 是訪問外部數據源的進程,例如 hdfs。通常,每臺機器上都會部署一個代理實例;
8、在多網卡/docker環境下,因目前 Doris 不會自動識別可用 IP。所以我們必須通過FE和BE的priority_networks配置項強制指定正確的IP。配置項需要寫在fe.conf和be.conf中。該配置項用于告訴進程在FE或BE啟動時應該綁定哪個IP。如:priority_networks=10.1.3.0/24;注意:當配置了優先網絡并啟動了FE或BE時,只能保證FE或BE的IP綁定正確。在 ADD BACKEND 或 ADD FRONTEND 語句中,還需要指定 IP 匹配優先級網絡配置,否則無法建立集群。如果之前已經綁定過,可DROP移除添加錯誤的 BE,并重新使用正確的 IP 來執行 ALTER SYSTEM ADD BACKEND “10.1.3.2:9050”;目前, Broker 的服務默認綁定到 0.0.0.0。只需使用 ADD BROKER 時配置正確的可訪問代理 IP即可。
9、默認情況下,doris 區分大小寫。如果需要不區分大小寫的表名,則需要在集群初始化之前進行設置。集群初始化完成后無法更改表名區分大小寫。配置參看Variable。
10、FE配置文件fe.conf中的JAVA_OPTS默認為java最大堆內存為4GB,建議生產環境調整為8G以上。尤其集群方式部署時。

3.2、環境部署

1)部署前準備

vi /etc/security/limits.conf //修改系統可打開/操作最大文件數* soft nofile 65536 * hard nofile 65536//配置Doris需要的環境變量 vim /etc/profile.d/doris.shexport DORIS_HOME=/opt/app export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_202 export CLASSPATH=.:$JAVA_HOME/lib export PATH=$PATH:$DORIS_HOME/fe/bin:$DORIS_HOME/be/bin:$JAVA_HOME/bin:$PATH # save and sourcesource /etc/profile.d/doris.sh//jdk安裝 https://www.oracle.com/webapps/redirect/signon?nexturl=https://download.oracle.com/otn/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jdk-8u202-linux-x64.rpm #源碼 https://www.oracle.com/webapps/redirect/signon?nexturl=https://download.oracle.com/otn/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jdk-8u202-linux-x64.tar.gztar -xzf jdk-8u301-linux-x64.tar.gz -C /opt/app/ java -version alternatives --list//Doris的元數據要求時間精度小于5000ms,所以集群內所有機器需要同步時鐘,避免時鐘問題導致元數據不一致導致服務異常;配置NTP服務;chrony 是網絡時間協議(NTP)的通用實現。chrony 包含兩個程序:chronyd 是一個可以在啟動時啟動的守護程序。chronyc 是一個命令行界面程序,用于監視 chronyd 的性能并在運行時更改各種操作參數。 yum -y install chronysystemctl enable chronyd systemctl start chronydvim /etc/chrony.conf# 使用 pool.ntp.org 項目中的公共服務器。以server開,理論上想添加多少時間服務器都可以。 # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst server s1a.time.edu.cn iburst server ntp.aliyun.com iburst# 根據實際時間計算出服務器增減時間的比率,然后記錄到一個文件中,在系統重啟后為系統做出最佳時間補償調整。 # Record the rate at which the system clock gains/losses time. driftfile /var/lib/chrony/drift# 如果系統時鐘的偏移量大于1秒,則允許系統時鐘在前三次更新中步進。 # Allow the system clock to be stepped in the first three updates if its offset is larger than 1 second. makestep 1.0 3# 啟用實時時鐘(RTC)的內核同步。 # Enable kernel synchronization of the real-time clock (RTC). rtcsync# 通過使用 hwtimestamp 指令啟用硬件時間戳 # Enable hardware timestamping on all interfaces that support it. #hwtimestamp *# Increase the minimum number of selectable sources required to adjust the system clock. #minsources 2# 指定 NTP 客戶端地址,以允許或拒絕連接到扮演時鐘服務器的機器 # Allow NTP client access from local network. allow 172.168.18.0/24# Serve time even if not synchronized to a time source. #local stratum 10# 指定包含 NTP 身份驗證密鑰的文件。 # Specify file containing keys for NTP authentication. #keyfile /etc/chrony.keys# 指定日志文件的目錄。 # Specify directory for log files. logdir /var/log/chrony# 選擇日志文件要記錄的信息。 # Select which information is logged. #log measurements statistics tracking# 查看時間同步狀態 timedatectl status # 開啟網絡時間同步 timedatectl set-ntp true#客戶端配置,chrony.conf 修改兩處 server 192.168.8.5 iburst allow 192.168.8.5systemctl enable chronyd systemctl restart chronyd# 查看時間同步狀態 timedatectl status # 開啟網絡時間同步 timedatectl set-ntp true# 查看 ntp_servers chronyc sources -v# 查看 ntp_servers 狀態 chronyc sourcestats -v# 查看 ntp_servers 是否在線 chronyc activity -v# 查看 ntp 詳細信息 chronyc tracking -v # 查看日期時間、時區及 NTP 狀態 timedatectl# 查看時區列表 timedatectl list-timezones timedatectl list-timezones | grep -E "Asia/S.*"# 修改時區 timedatectl set-timezone Asia/Shanghai# 修改日期時間(可以只修改其中一個) timedatectl set-time "2019-09-19 15:50:20"# 開啟 NTP timedatectl set-ntp true/flase//Linux swap分區會對Doris造成嚴重的性能問題,安裝前需要禁用swap分區 sudo swapoff -a //立刻生效 # 啟用命令 sudo swapon -a #永久生效 sudo mount -n -o remount,rw / vi /etc/fstab //在swap分區這行前加 # 禁用掉 reboot

注意:對于JDK,2019年4月16日當天,Oracle發布了Oracle JDK的8u211和8u212兩個版本(屬于JDK8系列),并從這兩個版本開始將JDK的授權許可從BCL換成了OTN!也就是從這兩個版本開始商用收費了!

2)軟件下載安裝

軟件下載地址:https://doris.apache.org/zh-CN/downloads/downloads.html,目前最新版為1.0.0;

1》單機部署:

wget https://dist.apache.org/repos/dist/release/incubator/doris/1.0/1.0.0-incubating/apache-doris-1.0.0-incubating-bin.tar.gztar -zxvf apache-doris-1.0.0-incubating-bin.tar.gz mv apache-doris-1.0.0-incubating-bin /opt/doris cd /opt/doris## 編輯配置前端配置文件,即 FE-Config vi fe/conf/fe.conf # Uncomment priority_networks and modify parameters priority_networks = 127.0.0.0/24 # save and exit## 配置后端,即BE vi be/conf/be.conf # Uncomment priority_networks and modify parameters priority_networks = 127.0.0.0/24 # save and exit#啟動 start_fe.sh --daemon start_be.sh --daemon

2》集群部署:

節點名稱ip地址角色/功能
Hadoop-master172.16.18.2FE-Leader+BE+broke+FE
Hadoop-slave1172.16.18.3BE+FE-Flower+broke
Hadoop-slave2172.16.18.4FE-Observer+broke

注意: FE 節點數據至少為1(1 個 Follower)。當部署 1 個 Follower 和 1 個 Observer 時,可以實現讀高可用。當部署 3 個 Follower 時,可以實現讀寫高可用(HA)。Follower 的數量必須為奇數,Observer 數量隨意。一個機器上只能部署一個 FE ,因為所有 FE 節點的 http_port 需要相同,可以部署多個 BE 或者 FE + BE 。

FE 集群從 Follower 中自動選出 Master 節點,所有更改狀態操作都由 Master 節點執行, 從 FE 的 Master 節點可以讀到最新的狀態。更改操作可以從非 Master 節點發起,繼而轉發給 Master 節點執行, 非 Master 節點記錄最近一次更改操作在復制日志中的 LSN ,讀操作可以直接在非 Master 節點上執行,但需要等待非 Master 節點的狀態已經同步到最近一次更改操作的 LSN,因此讀寫非 Master 節點滿足順序一致性。

Observer 節點能夠增加FE集群的讀負載能力,時效性要求放寬的非緊要用戶可以讀 Observer 節點。FE 節點之間的時鐘相差不能超過5s, 使用 NTP 協議校準時間。Broker的節點上提前裝置JDK環境,版本最低值1.8 及以上。

生產環境可使用3臺FE+7臺BE組成,3臺FE組成HA,用戶可以在多個 FE 之上部署負載均衡層來實現 Doris 的高可用。而BE計算能力不足時,隨時擴展BE即可。下表是一個網絡示例:

1> FE前端部署

下載源碼包,解壓,將源碼編譯生成的 output下的fe文件夾拷貝到 FE的節點指定部署路徑下并進入該目錄其中,meta_dir目錄是Metadata存儲目錄;默認值為 ${DORIS_HOME}/doris-meta。該目錄需要手動創建。生產環境強烈建議單獨指定目錄,不要放在Doris安裝目錄下,最好是單獨的磁盤下。

#源碼包下載,需要編譯 wget https://www.apache.org/dyn/closer.cgi/incubator/doris/1.0/1.0.0-incubating/apache-doris-1.0.0-incubating-src.tar.gz#sudo yum groupinstall 'Development Tools' && sudo yum install maven cmake byacc flex automake libtool bison binutils-devel zip unzip ncurses-devel curl git wget python2 glibc-static libstdc++-static java-1.8.0-openjdk sudo yum install centos-release-scl sudo yum install devtoolset-10 scl enable devtoolset-10 bash#如果當前倉庫沒有提供devtoolset-10 可以添加如下repo 使用oracle 提供 package [ol7_software_collections] name=Software Collection packages for Oracle Linux 7 ($basearch) baseurl=http://yum.oracle.com/repo/OracleLinux/OL7/SoftwareCollections/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=1 enabled=1cat /proc/cpuinfo | grep avx2 //編譯之前先檢查是否支持avx2指令,如不支持需要加 USE_AVX2=0 #編譯,編譯完成后,產出文件在 output/ 目錄中 sh build.sh USE_AVX2=0 sh build.sh#二進制包,362M大小 wget https://www.apache.org/dyn/closer.cgi/incubator/doris/1.0/1.0.0-incubating/apache-doris-1.0.0-incubating-bin.tar.gztar -zxvf apache-doris-1.0.0-incubating-bin.tar.gz -C /opt/app/mkdir /opt/app/doris-metavim conf/fe.conf //修改如下meta_dir = /opt/app/doris-meta#或者 grep -vE "^$|^#" /opt/app/apache-doris-1.0.0/fe/conf/fe.conf > /opt/app/apache-doris-1.0.0/fe/conf/fe.conf //修改配置如下LOG_DIR = ${DORIS_HOME}/log meta_dir = /opt/app/doris-meta DATE = `date +%Y%m%d-%H%M%S` JAVA_OPTS="-Xmx4096m -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"JAVA_OPTS_FOR_JDK_9="-Xmx4096m -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" sys_log_level = INFO enable_http_server_v2 = true http_port = 8030 rpc_port = 9020 query_port = 9030 edit_log_port = 9010 mysql_service_nio_enabled = true priority_networks = 172.16.18.0/24 //是 FE 和 BE 都有一個配置,其主要目的是在多網卡的情況下,協助 FE 或 BE 識別自身 ip 地址。priority_network 采用 CIDR 表示法#完成后,啟動FE,FE后臺執行 sh bin/start_fe.sh --daemon#修改第一臺fe節點為helper節點 bin/start_fe.sh --helper 172.16.18.2:9010 --daemon //FE集群實例首次啟動,必需使用--helper參數,不然后續加入集群不成功#擴容FE節點,可以將新節點添加為follower mysql -h 127.0.0.1 -P 9030 -uroot -p > ALTER SYSTEM ADD FOLLOWER "172.16.18.3:9010"; > ALTER SYSTEM ADD OBSERVER "172.16.18.4:9010"; > SHOW FRONTENDS;

將上述配置好的FE配置文件,復制到其他FE實例的主機上,分別啟動FE。FE 進程啟動后,會首先加載元數據,根據 FE 角色的不同,在日志中會看到 transfer from UNKNOWN to MASTER/FOLLOWER/OBSERVER。最終會看到 thrift server started 日志,并且可以通過 mysql 客戶端連接到 FE,則表示 FE 啟動成功。FE 節點首次啟動時,需要指定現有集群中的一個節點作為 helper 節點,從該節點獲得集群的所有 FE 節點的配置信息,才能建立通信連接,因此首次啟動需要指定 --helper 參數。

3》部署BE:

BE配置文件中,主要是配置項 storage_root_path:數據存放目錄。默認在be/storage下,需要手動創建該目錄。多個路徑之間使用英文狀態的分號 ; 分隔(最后一個目錄后不要加 ;)。可以通過路徑區別存儲目錄的介質,HDD或SSD。可以添加容量限制在每個路徑的末尾,通過英文狀態逗號,隔開。示例:

配置1:storage_root_path=/home/disk1/doris.HDD,50;/home/disk2/doris.SSD,10;/home/disk2/doris

說明:
/home/disk1/doris.HDD,50,表示存儲限制為50GB,HDD;
/home/disk2/doris.SSD,10,存儲限制為10GB,SSD;
/home/disk2/doris,存儲限制為磁盤最大容量,默認為HDD

配置2:不論HDD磁盤目錄還是SSD磁盤目錄,都無需添加后綴,而用storage_root_path參數里指定medium
storage_root_path=/home/disk1/doris,medium:hdd,capacity:50;/home/disk2/doris,medium:ssd,capacity:50

說明:
/home/disk1/doris,medium:hdd,capacity:10,表示存儲限制為10GB, HDD;
/home/disk2/doris,medium:ssd,capacity:50,表示存儲限制為50GB, SSD;

wget https://www.apache.org/dyn/closer.cgi/incubator/doris/1.0/1.0.0-incubating/apache-doris-1.0.0-incubating-bin.tar.gzpython -m SimpleHTTPServer 12345 #如果默認python為python2 python -m http.server 12345 #如果默認python為python3 #那么其他節點就可從 wget http://172.16.18.2:12345/apache-dorios-0.15.1-new.tar.gz #其它節點獲取包grep -vE "^$|^#" /opt/app/apache-doris-1.0.0/be/conf/be.conf >/opt/app/apache-doris-1.0.0/be/conf/be.conf //修改為storage_root_path = /opt/app/doris-meta/storage PPROF_TMPDIR="$DORIS_HOME/log/" sys_log_level = INFO be_port = 9060 //如果 be 部署在 hadoop 集群中,注意調整 be.conf 中的 webserver_port = 8040 ,以免造成端口沖突 webserver_port = 8040 heartbeat_service_port = 9050 brpc_port = 8060#啟動,啟動后進入后臺執行 sh bin/start_be.sh --daemon#擴容BE節點 mysql -h 127.0.0.1 -P 9030 -uroot -p > ALTER SYSTEM ADD BACKEND "172.16.18.3:9050"; > ALTER SYSTEM ADD BACKEND "172.16.18.4:9050"; > SHOW BACKENDS; //查看當前集群的BE節點

注: BE 的第一次啟動,或者該 BE 尚未加入任何集群,則 BE 日志會定期滾動 waiting to receive first heartbeat from frontend 字樣。表示 BE 還未通過 FE 的心跳收到 Master 的地址,正在被動等待。這種錯誤日志,在 FE 中 ADD BACKEND 并發送心跳后,就會消失。如果在接到心跳后,又重復出現 master client, get client from cache failed.host: , port: 0, code: 7 字樣,說明 FE 成功連接了 BE,但 BE 無法主動連接 FE。可能需要檢查 BE 到 FE 的 rpc_port 的連通性。當BE 已經被加入集群,日志中應該每隔 5 秒滾動來自 FE 的心跳日志:get heartbeat, host: xx.xx.xx.xx, port: 9020, cluster id: xxxxxx,表示心跳正常。其次,日志中應該每隔 10 秒滾動 finish report task success. return code: 0 的字樣,表示 BE 向 FE 的通信正常。同時,如果有數據查詢,應該能看到不停滾動的日志,并且有 execute time is xxx 日志,表示 BE 啟動成功,并且查詢正常。

4》FS_Broker 部署
Broker 以插件的形式,獨立于 Doris 部署。如果需要從第三方存儲系統導入數據,需要部署相應的 Broker,默認提供了讀取 HDFS ;fs_broker 是無狀態的,建議每一個 FE 和 BE 節點都部署一個 Broker。

1、在相應 broker/conf/ 目錄下對應的配置文件中,可以修改相應配置;
2、啟動:bin/start_broker.sh --daemon
3、添加 Broker:要讓 Doris 的 FE 和 BE 知道 Broker 在哪些節點上,通過 sql 命令添加 Broker 節點列表
4、mysql -h 127.0.0.1 -P 9030 -uroot //連接FE,其中broker_ipc_port 在 Broker 配置文件中conf/apache_hdfs_broker.conf配置的
ALTER SYSTEM ADD BROKER broker_name “broker_host1:broker_ipc_port1”,“broker_host2:broker_ipc_port2”,…;
SHOW PROC “/brokers”; //查看 Broker 狀態

#擴容BE節點 mysql -h 127.0.0.1 -P 9030 -uroot -p > ALTER SYSTEM ADD BROKER MY_BROKER "172.16.18.3:8000"; > ALTER SYSTEM ADD BROKER MY_BROKER "172.16.18.4:8000"; > SHOW BROKER; //查看當前集群的BROKER節點

示例:使用 load broker 從 hdfs 導入數據至 doris(網絡示例)

> create database example_db; > CREATE TABLE example_db.table_hash ( k1 BOOLEAN, k2 TINYINT, k3 DECIMAL(10, 2) DEFAULT "10.5", v1 CHAR(10) REPLACE, v2 INT SUM ) ENGINE=olap AGGREGATE KEY(k1, k2, k3) COMMENT "my first doris table" DISTRIBUTED BY HASH(k1) BUCKETS 32;#在hdfs上創建一個txt文件 cat hytest.txt 0,100,9,xxx 1,200,8,sss 0,300,7,bbbhdfs dfs -put hytest.txt hdfs://172.16.18.201:8020/tmp/hy/#使用load broker導入數據 > LOAD LABEL example_db.label_filter (DATA INFILE("hdfs://10.202.77.201:8020/hive/warehouse/sfbdp/TMP/tmp_test_etl/emp_dept")INTO TABLE `table_hash`COLUMNS TERMINATED BY ","(k1,k2,v1,v2) ) with broker 'my_broker' ("username"="root","password"="" );#查看導入情況 > SHOW LOAD FROM example_db order by createtime desc limit 1\G;

3)驗證

FE:瀏覽器輸入http://fe_host:fe_http_port/api/bootstrap //返回 {“status”:“OK”,“msg”:“Success”}即表啟動成功
BE:瀏覽器輸入http://be_host:be_http_port/api/health //返回:{“status”: “OK”,“msg”: “To Be added”},則表示啟動成功
Doris Web UI:http://FE_IP:FE_HTTP_PORT(默認8030),賬號root,密碼為空

配置FE的參數,打開web端頁面:

驗證:http://doris_fe:8030/rest/v1/system?path=//backends

4)使用mysql-client注冊BE到FE

Doris 使用 MySQL 協議進行通信,用戶可以通過 MySQL Client 或 MySQL JDBC 連接到 Doris 集群。選擇 MySQL 客戶端版本時,建議使用 5.1 之后的版本,因為 5.1 之前不支持超過 16 個字符的用戶名。Doris SQL 語法基本遵循 MySQL 語法。BE 節點需要先在 FE 中添加,才可加入集群。注冊執行以下命令:

yum install -y mysql #./mysql-client -h fe_host -P query_port -uroot mysql -h 127.0.0.1 -P 9030 -uroot > SHOW FRONTENDS; //查看當前集群的FE節點 # Register BE 添加BE節點,執行:ALTER SYSTEM ADD BACKEND "be_host:heartbeat-service_port"; > ALTER SYSTEM ADD BACKEND "127.0.0.1:9050"; > #添加Broker節點 ALTER SYSTEM ADD BROKER broker_name "host:port"; > > ALTER SYSTEM ADD BROKER my_broker "127.0.0.1:8000";#訪問FE mysql -h FE-host -P 9030 -u username -p password > set enable_profile=true; //啟用FE report功能 > SHOW PROC '/backends'; //查看 BE 運行情況 > SHOW BACKENDS; //查看當前集群的BE節點 > SHOW BROKER; //查看當前集群的Broker節點

更多sql使用參看:查詢執行統計;

注意:BE注冊成功FE后,如果心跳正常,BE 的日志中會顯示 get heartbeat, host: xx.xx.xx.xx, port: 9020, cluster id: xxxxxx。如果心跳失敗,在 FE 的日志中會出現 backend[10001] got Exception: org.apache.thrift.transport.TTransportException 類似的字樣,或者其他 thrift 通信異常日志,表示 FE 向 10001 這個 BE 的心跳失敗。這里需要檢查 FE 向 BE host 的心跳端口的連通性。如果 BE 向 FE 的通信正常,則 BE 日志中會顯示 finish report task success. return code: 0 的字樣。否則會出現 master client, get client from cache failed 的字樣。這種情況下,需要檢查 BE 向 FE 的 rpc_port 的連通性。

5)FE負載均衡

1>

2>ProxySQL負載部署

四、配置文件說明

五、應用案例借鑒

5.1、Doris 在 Elasticsearch 的應用

我們知道,在處理大量數據時,全文查找會用到ES,然ES 的優點是索引,可支持多列索引,甚至可支持全文語義索引(如 term,match,fuzzy 等);然而其缺點是沒有分布式計算引擎,不支持 join 等操作;對此,Palo 提供了豐富的 SQL 計算能力,以及分布式查詢能力;然而其索引性能較低,不支持全文索引。而Doris 可分別借鑒 ES 和 Palo 的長處,支持 Elasticsearch 多表 Join 操作,同時引入 Elasticsearch 的語義搜索功能,擴充了 Doris 的查詢能力。

示例:

1)建立一張 ES 的外部表。

2)在 ES 外部表中導入一些數據

3)使用和 ES 一樣的搜索語句,進行全文檢索查詢;類似于下圖這樣的搜索語句,在 SQL 中比較難以表達,但是在 ES 中較容易實現。

5.2、與Kafka 消息隊列配合使用

1)Doris 內部支持訂閱 Kafka 數據流,實現直接對接 Kafka,創建如下sql:

2)用戶數據源經 Kafka 消息隊列收集后,可以依次進入到 Doris 中,通過 Doris 做報表展示和決策分析等工作。


3)方案優點

無需額外組件,用戶可直接通過命令實現 Kafka 消息訂閱。
精確傳輸,秒級延遲。
Doris 可自動感知 Kafka 中 partition 變化,合理調度并發導入。
在數據導入這一過程中,支持對 Kafka 原始數據做二次處理(如轉換,過濾等)。

六、FAQ

6.1、FE啟動報錯:java.lang.IllegalArgumentException: type mismatch

-Xmx8192m -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:/home/doris/fe/log/fe.gc.log.20220623-184807 Thu Jun 23 18:48:07 CST 2022 java.lang.IllegalArgumentException: type mismatchat org.apache.doris.common.ConfigBase.isBoolean(ConfigBase.java:289)at org.apache.doris.common.ConfigBase.setConfigField(ConfigBase.java:233)at org.apache.doris.common.ConfigBase.setFields(ConfigBase.java:201)at org.apache.doris.common.ConfigBase.initConf(ConfigBase.java:116)at org.apache.doris.common.ConfigBase.init(ConfigBase.java:94)at org.apache.doris.PaloFe.start(PaloFe.java:88)at org.apache.doris.PaloFe.main(PaloFe.java:63)

啟動腳本如下所示:

curdir=$(dirname "$0") #獲取當前啟動腳本的路徑 curdir=$(cd "$curdir"pwd )OPTS=$(getopt \-n $0 \-o '' \-l 'daemon' \-l 'helper:' \-- "$@")eval set -- "$OPTS"RUN_DAEMON=0 HELPER= while true; docase "$1" in--daemon)RUN_DAEMON=1shift;;--helper)HELPER=$2shift 2;;--)shiftbreak;;*)ehco "Internal error"exit 1;;esac doneexport DORIS_HOME=$(cd "$curdir/.."pwd )# export env variables from fe.conf # # JAVA_OPTS # LOG_DIR # PID_DIR export JAVA_OPTS="-Xmx1024m" export LOG_DIR="$DORIS_HOME/log" export PID_DIR=$(cd "$curdir"pwd )while read line; doenvline=$(echo $line | sed 's/[[:blank:]]*=[[:blank:]]*/=/g' | sed 's/^[[:blank:]]*//g' | egrep "^[[:upper:]]([[:upper:]]|_|[[:digit:]])*=")envline=$(eval "echo $envline")if [[ $envline == *"="* ]]; theneval 'export "$envline"'fi done < $DORIS_HOME/conf/fe.confif [ -e $DORIS_HOME/bin/palo_env.sh ]; thensource $DORIS_HOME/bin/palo_env.sh fiif [ -z "$JAVA_HOME" ]; thenJAVA=$(which java) elseJAVA="$JAVA_HOME/bin/java" fiif [ ! -x "$JAVA" ]; thenecho "The JAVA_HOME environment variable is not defined correctly"echo "This environment variable is needed to run this program"echo "NB: JAVA_HOME should point to a JDK not a JRE"exit 1 fi# get jdk version, return version as an Integer. # 1.8 => 8, 13.0 => 13 jdk_version() {local resultlocal IFS=$'\n'# remove \r for Cygwinlocal lines=$("$JAVA" -Xms32M -Xmx32M -version 2>&1 | tr '\r' '\n')for line in $lines; doif [[ (-z $result) && ($line = *"version \""*) ]]; thenlocal ver=$(echo $line | sed -e 's/.*version "\(.*\)"\(.*\)/\1/; 1q')# on macOS, sed doesn't support '?'if [[ $ver = "1."* ]]; thenresult=$(echo $ver | sed -e 's/1\.\([0-9]*\)\(.*\)/\1/; 1q')elseresult=$(echo $ver | sed -e 's/\([0-9]*\)\(.*\)/\1/; 1q')fifidoneecho "$result" }# need check and create if the log directory existed before outing message to the log file. if [ ! -d $LOG_DIR ]; thenmkdir -p $LOG_DIR fi# check java version and choose correct JAVA_OPTS java_version=$(jdk_version) final_java_opt=$JAVA_OPTS if [ $java_version -gt 8 ]; thenif [ -z "$JAVA_OPTS_FOR_JDK_9" ]; thenecho "JAVA_OPTS_FOR_JDK_9 is not set in fe.conf" >> $LOG_DIR/fe.outexit 1fifinal_java_opt=$JAVA_OPTS_FOR_JDK_9 fi echo "using java version $java_version" >> $LOG_DIR/fe.out echo $final_java_opt >> $LOG_DIR/fe.out # add libs to CLASSPATH for f in $DORIS_HOME/lib/*.jar; doCLASSPATH=$f:${CLASSPATH} done export CLASSPATH=${CLASSPATH}:${DORIS_HOME}/libpidfile=$PID_DIR/fe.pidif [ -f $pidfile ]; thenif kill -0 $(cat $pidfile) > /dev/null 2>&1; thenecho Frontend running as process $(cat $pidfile). Stop it first.exit 1fi fiif [ ! -f /bin/limit ]; thenLIMIT= elseLIMIT=/bin/limit fiecho $(date) >> $LOG_DIR/fe.outif [ x"$HELPER" != x"" ]; then# change it to '-helper' to be compatible with code in FrontendHELPER="-helper $HELPER" fiif [ ${RUN_DAEMON} -eq 1 ]; thennohup $LIMIT $JAVA $final_java_opt org.apache.doris.PaloFe ${HELPER} "$@" >> $LOG_DIR/fe.out 2>&1 < /dev/null & else$LIMIT $JAVA $final_java_opt org.apache.doris.PaloFe ${HELPER} "$@" < /dev/null fiecho $! > $pidfile

調試如下:

從上圖看,問題出現在腳本的166-167行,如下所示:

………………………… 153 if [ ! -f /bin/limit ]; then 154 LIMIT= 155 else 156 LIMIT=/bin/limit 157 fi 158 159 echo $(date) >> $LOG_DIR/fe.out 160 161 if [ x"$HELPER" != x"" ]; then 162 # change it to '-helper' to be compatible with code in Frontend 163 HELPER="-helper $HELPER" 164 fi 165 166 if [ ${RUN_DAEMON} -eq 1 ]; then 167 nohup $LIMIT $JAVA $final_java_opt org.apache.doris.PaloFe ${HELPER} "$@" >> $LOG_DIR/fe.out 2>&1 < /dev/null & 168 else 169 $LIMIT $JAVA $final_java_opt org.apache.doris.PaloFe ${HELPER} "$@" < /dev/null 170 fi 171 172 echo $! > $pidfile

發現之前調試,未加–daemon參數,重新調試:

查看:tail -200f /home/doris/fe/log/fe.gc.log.20220623-192315

ava HotSpot(TM) 64-Bit Server VM (25.333-b02) for linux-amd64 JRE (1.8.0_333-b02), built on Apr 26 2022 05:49:04 by "java_re" with gcc 7.3.0 Memory: 4k page, physical 65807148k(25585204k free), swap 0k(0k free) CommandLine flags: -XX:+CMSClassUnloadingEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:-CMSParallelRemarkEnabled -XX:InitialHeapSize=1052914368 -XX:MaxHeapSize=8589934592 -XX:MaxNewSize=1134141440 -XX:MaxTenuringThreshold=7 -XX:OldPLABSize=16 -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:SoftRefLRUPolicyMSPerMB=0 -XX:SurvivorRatio=8 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:+UseMembar -XX:+UseParNewGC Heappar new generation total 309056K, used 126388K [0x00000005c0000000, 0x00000005d4f50000, 0x0000000603990000)eden space 274752K, 46% used [0x00000005c0000000, 0x00000005c7b6d188, 0x00000005d0c50000)from space 34304K, 0% used [0x00000005d0c50000, 0x00000005d0c50000, 0x00000005d2dd0000)to space 34304K, 0% used [0x00000005d2dd0000, 0x00000005d2dd0000, 0x00000005d4f50000)concurrent mark-sweep generation total 686784K, used 0K [0x0000000603990000, 0x000000062d840000, 0x00000007c0000000)Metaspace used 11394K, capacity 11616K, committed 11776K, reserved 1058816Kclass space used 1376K, capacity 1476K, committed 1536K, reserved 1048576K

gcc --version //驗證gcc版本,輸出如下

gcc (GCC) 10.2.0

可能原因: Doris會檢查編譯和運行的Java版本是否兼容,如果不兼容,會拋出Java版本不匹配異常信息并終止啟動。

java -version //默認的java版本 java version "1.8.0_333" Java(TM) SE Runtime Environment (build 1.8.0_333-b02) Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)

經最后最小化調試發現,是配置文件dynamic_partition_enable = ture導致的上述錯誤。應該是true,修正dynamic_partition_enable = true(寫入永久生效)后程序啟動正常。查詢官網,該配置項為FE master獨有,且默認是true,即開啟狀態,而是FE啟動后通過 ADMIN SHOW FRONTEND CONFIG;來查看當前值。然后可以連接任意FE,執行如下命令修改配置:

ADMIN SET FRONTEND CONFIG ("dynamic_partition_enable" = "true"); #驗證 set forward_to_master = true; ADMIN SHOW FRONTEND CONFIG;#重新啟動FE,注意helper后的ip不能是本機 sh ./bin/start_fe.sh --helper 172.18.1.74:9010 --daemon #啟動驗證 jps 16608 PaloFe 17694 Jpsnetstat -antp|grep 9030 tcp6 0 0 :::9030 :::* LISTEN 16608/java /usr/local/mysql/bin/mysql -h 172.18.1.38 -P 9030 -uroot -p Enter password:

總結

以上是生活随笔為你收集整理的大数据之实时数据分析之Apache Doris数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

黄色网址国产 | 国产精品美乳一区二区免费 | 国产精品第2页 | 福利一区在线视频 | 色噜噜色噜噜 | 99热手机在线 | 国产中文字幕一区二区三区 | a久久免费视频 | 久久超碰网| 亚洲 欧洲av| 精品1区二区 | 免费在线国产精品 | h久久| 99久久婷婷国产一区二区三区 | 日韩精品一区二区三区水蜜桃 | 黄色软件网站在线观看 | 亚洲国产激情 | 美女精品国产 | 亚洲伦理中文字幕 | 午夜精品久久久久久久久久久 | 日日夜夜人人精品 | 精品一二区| 亚洲激情视频 | 久久一二三四 | 国产一级免费观看 | 五月婷婷爱 | 黄视频色网站 | 成年人国产视频 | 久久亚洲美女 | 欧美嫩草影院 | 国产精品毛片完整版 | 天天色天天综合网 | 国产精品精品 | 在线观看你懂的网址 | 日韩免费观看一区二区三区 | 中文字幕韩在线第一页 | 99r精品视频在线观看 | 久久精品视频在线观看免费 | 91精品国产综合久久福利 | 亚洲精品国产精品久久99 | 婷婷婷国产在线视频 | www.亚洲黄 | 久久8| 亚洲九九精品 | 国产涩图| 在线观看黄av | 四虎免费在线观看视频 | 天天干国产 | 丰满少妇久久久 | 草久草久 | 精品国产aⅴ一区二区三区 在线直播av | 精品视频免费久久久看 | 国产精品亚洲片夜色在线 | 亚洲国产精品成人综合 | av综合 日韩 | 精品国产91亚洲一区二区三区www | 日韩欧美高清在线观看 | 国产香蕉久久精品综合网 | 日韩三级.com | 亚洲国产三级在线 | 日本精品一区二区三区在线播放视频 | 欧美性生交大片免网 | 国产精彩在线视频 | 久久99深爱久久99精品 | 成年人在线免费视频观看 | 中文字幕视频网 | 亚洲综合在线播放 | 在线播放国产一区二区三区 | a在线一区 | 成人av在线影院 | 六月色 | 日韩在线观看影院 | 国产在线视频一区二区 | 99精品免费久久久久久久久日本 | 国产精品视频区 | 夜夜视频欧洲 | 亚州中文av | 黄视频色网站 | 天堂中文在线播放 | 国产精品mv| 麻豆国产精品一区二区三区 | 最新av在线网站 | 麻豆果冻剧传媒在线播放 | 久久精品国产免费 | 国产成人99久久亚洲综合精品 | 91传媒视频在线观看 | 91视频在线免费 | 亚洲九九精品 | 国产精品毛片完整版 | 国产福利资源 | 亚洲精品观看 | 亚洲理论电影 | 69国产盗摄一区二区三区五区 | 成人国产网站 | 麻豆免费观看视频 | 亚洲欧美日韩不卡 | 免费在线中文字幕 | 中文字幕在线视频免费播放 | 69精品 | 亚洲国产一二三 | 国产精品一区一区三区 | 91完整视频 | 在线视频国产区 | 日韩在线大片 | 国产精品免费在线播放 | 日韩在线视 | 99久久精品免费看国产麻豆 | 精品久久久久久亚洲综合网站 | 欧美视频18 | 激情久久久久 | 久久久一本精品99久久精品 | 欧美性脚交 | 探花视频在线观看 | 成人欧美一区二区三区在线观看 | 国产91影视 | 久久国产电影院 | 在线亚洲小视频 | 欧美日韩在线网站 | 天天综合网入口 | 日韩中文字幕免费看 | 日本高清免费中文字幕 | 国产免费一区二区三区最新 | av成人在线观看 | 韩国av电影在线观看 | 久久99精品久久久久久三级 | 午夜久久福利视频 | 青春草免费在线视频 | 亚洲天堂社区 | 国产一在线精品一区在线观看 | 成人va天堂| 中文字幕亚洲欧美 | 99在线热播精品免费 | 精品中文字幕视频 | 国产.精品.日韩.另类.中文.在线.播放 | 亚洲精品mv在线观看 | 午夜久久久久久久久久影院 | 91福利社区在线观看 | 激情久久久久久久久久久久久久久久 | av不卡中文 | 亚洲欧美偷拍另类 | 国产视频在线免费 | 久草网视频在线观看 | 99国产精品久久久久久久久久 | 亚洲欧美日韩中文在线 | 天天射天天舔天天干 | 成人黄色电影在线播放 | 久久99精品热在线观看 | 成人在线视频免费观看 | 中文字幕色综合网 | 在线免费视频 你懂得 | 亚洲欧美日韩精品久久奇米一区 | 国产精品日韩欧美 | 激情欧美丁香 | 操操操影院 | 一级黄视频 | 天天曰夜夜操 | 免费看一级特黄a大片 | 97国产情侣爱久久免费观看 | 国产亚洲婷婷 | 欧美一性一交一乱 | 欧美性一级观看 | 成人国产精品免费观看 | 99久热精品| 波多野结衣电影一区二区 | 中文字幕高清 | av在线免费网 | 五月天综合激情 | av一级久久 | 亚洲精品美女久久久久 | 国产精品久久久久久麻豆一区 | 成人动图 | 中文字幕在线精品 | 国产亚洲精品美女 | 国产性xxxx | 91免费网站在线观看 | 色婷婷午夜 | 久久成人麻豆午夜电影 | 日韩伦理片hd | 91九色视频网站 | 欧美久久久久久久久久久 | 国内精品亚洲 | 不卡电影免费在线播放一区 | 国产精品久久久久毛片大屁完整版 | 亚洲人片在线观看 | 色综合久久久久久久久五月 | 91香蕉视频污在线 | 天天干天天干天天操 | 久久久精品国产免费观看一区二区 | 六月丁香在线视频 | 久久福利剧场 | 探花视频免费观看高清视频 | 国精产品999国精产品视频 | 超碰97中文| 一级久久精品 | 天天摸天天舔天天操 | 91大神一区二区三区 | 久草久草在线 | 夜夜澡人模人人添人人看 | 亚洲一区久久久 | 亚洲开心色 | 在线观看的av网站 | 五月色婷 | 成人在线播放免费观看 | 97超碰免费 | 手机av在线网站 | 欧美在线视频精品 | 狠狠狠综合 | 粉嫩高清一区二区三区 | 一区三区视频 | 日韩精品中文字幕久久臀 | 精品99久久 | 久久久三级视频 | 久久亚洲欧美日韩精品专区 | av免费电影在线观看 | 韩国中文三级 | 黄污在线观看 | 日韩成年视频 | 国产精品女人网站 | 日韩国产精品一区 | 免费视频一二三 | 国产一区免费观看 | 亚洲精品乱码久久久久久写真 | 五月婷婷黄色 | 亚洲日本激情 | 色中文字幕在线观看 | 色综合色综合久久综合频道88 | 精品国产伦一区二区三区观看方式 | 亚洲三级视频 | 久久精品国产一区二区 | 欧美精品乱码久久久久久按摩 | 亚洲欧美日韩精品一区二区 | 一二区精品 | 激情影院在线 | 久草爱| 91精品国产成 | 精品久久1 | 久亚洲精品 | 在线视频区 | 在线观看网站你懂的 | 久久精品99久久久久久2456 | 日韩中字在线观看 | 亚洲最新av在线网址 | 91人人澡人人爽 | 97热在线观看 | 99精彩视频在线观看免费 | 亚洲精品福利在线 | 黄色小说在线免费观看 | 日韩精品91偷拍在线观看 | 91插插插免费视频 | 精品国产一区二区三区四区在线观看 | 91在线免费公开视频 | 免费视频三区 | 91在线www| 中文欧美字幕免费 | 久久夜色电影 | 开心综合网 | 欧美一二三区在线观看 | 久草视频视频在线播放 | 国产看片网站 | 国产精品毛片久久蜜 | 91资源在线 | 亚洲性xxxx| 免费看片网址 | 狠狠干狠狠操 | av视屏在线播放 | 国产97碰免费视频 | 中文理论片 | 久久影视精品 | 日韩大片在线免费观看 | 天天色 天天 | 日韩理论电影在线观看 | 亚洲精品视频在线播放 | 国产精品电影一区二区 | 91理论片午午伦夜理片久久 | 福利视频一二区 | 国产成人久 | 六月丁香婷 | 亚洲作爱| 日韩va欧美va亚洲va久久 | 九九九九九九精品任你躁 | 亚洲高清在线精品 | av片在线观看 | 国产精品白浆 | 久精品在线| 午夜久久福利影院 | 久久精品麻豆 | 婷久久| 最近中文字幕在线播放 | 亚洲人在线7777777精品 | 国产精品视频免费在线观看 | 免费a级毛片在线看 | 亚洲精品在线网站 | 91视频在线观看大全 | 国产精品自产拍在线观看中文 | 成人一级免费电影 | 久久久久久国产精品999 | av综合av| 日本久久久久 | 日本在线观看中文字幕 | 午夜影视剧场 | 国产精品观看 | 日本三级在线观看中文字 | 日本精品一区二区在线观看 | 久久久久成人精品 | 久久免费国产精品1 | 美女久久久久 | 少妇搡bbbb搡bbb搡忠贞 | 日韩色高清 | ww视频在线观看 | 91人人射| 伊人天堂久久 | 西西www4444大胆视频 | 国产成人精品一区二区三区免费 | 免费国产在线精品 | 99久久精品免费看国产 | 国产精品久久久久久久久久久久午夜 | 青青视频一区 | 麻豆视频入口 | 99日精品| 日韩两性视频 | 日韩在线国产 | 国内精品久久久久影院一蜜桃 | 香蕉视频在线免费 | 久草在线免费资源站 | 爱av在线网| 91日韩在线视频 | 亚洲影视资源 | 日韩网站中文字幕 | 中文字幕第一页在线vr | 精品国产乱码久久久久久浪潮 | 国产主播99| 婷婷六月综合网 | 亚洲人人av | 99在线高清视频在线播放 | 日韩在线字幕 | 看毛片网站 | 一本一本久久a久久精品综合小说 | 蜜桃视频在线观看一区 | 婷婷四房综合激情五月 | 国产亚洲精品无 | 97香蕉久久超级碰碰高清版 | 四虎永久视频 | 国产精品美女久久久久久久 | 在线视频1卡二卡三卡 | 久久999久久 | 深爱五月激情网 | 国产视频99 | 成人啪啪18免费游戏链接 | 国产精品入口传媒 | 日韩在线观看a | 日韩欧美视频一区 | 人人看97 | 国产亚洲精品久久久久久电影 | 国产精品美女久久久 | av视屏在线播放 | 丝袜av一区 | 国产精品av在线免费观看 | www日韩| 亚洲精品男人天堂 | 国产精品18久久久久久首页狼 | 91在线视频免费观看 | 欧美日韩色婷婷 | 夜夜夜夜爽| 午夜精品久久久久久久99水蜜桃 | 久久婷婷精品 | 91成人天堂久久成人 | 九九热.com| 国产一区二区精品久久 | 丁香激情婷婷 | 91伊人影院 | 日韩一二区在线 | 天天操综| 99re8这里有精品热视频免费 | 久久av电影| 麻豆精品91 | 999久久久久| 亚洲精品乱码久久久久久按摩 | 久久成人精品视频 | 亚洲午夜久久久久 | 超碰人在线 | 三日本三级少妇三级99 | 中文字幕在线视频网站 | 日韩精品一区二区在线 | 超碰在线个人 | 亚洲精品视频在线观看免费视频 | 国产亚洲视频系列 | 国产激情久久久 | 国产高清精 | 男女视频国产 | 色婷婷狠狠五月综合天色拍 | 狠狠干天天 | 性色av免费观看 | 成人中文字幕+乱码+中文字幕 | 亚洲成人黄色av | 日韩免费中文字幕 | 亚洲影视九九影院在线观看 | 国模视频一区二区 | www.干| 亚洲精品乱码久久久久久蜜桃不爽 | 中文字幕 国产精品 | 国产精品国产三级国产专区53 | 国产免费黄色 | 久久精品牌麻豆国产大山 | 久久综合久久伊人 | 麻豆播放 | 99久热在线精品视频成人一区 | 国产精品日韩在线观看 | 四虎成人精品永久免费av九九 | 欧美国产精品一区二区 | 丁香花五月 | 亚洲三级毛片 | 欧美视频在线二区 | 国产福利在线不卡 | 国产高清在线永久 | 豆豆色资源网xfplay | 欧美日韩国产一区二区在线观看 | 久久全国免费视频 | 在线观看视频在线 | 91精品国产综合久久婷婷香蕉 | 91免费看黄 | 国产精品青草综合久久久久99 | 欧美夫妻性生活电影 | 色视频国产直接看 | 国产a视频免费观看 | 色综合久久中文综合久久牛 | 黄色片网站免费 | 久久er99热精品一区二区三区 | 国产精品久久久久久久久久久久午夜 | 超碰人人舔 | 精品在线视频播放 | 中文字幕 成人 | 97福利在线 | 国产精品久久久久久久久久久免费 | 欧美日韩在线播放 | 国产福利一区二区三区在线观看 | 欧美性色19p | 久草视频手机在线 | 免费在线看成人av | 国产精品久久久久久久久久三级 | 亚洲激情视频在线 | 国产精品va视频 | 国产手机av | 波多野结衣综合网 | 久久a视频| 日日夜夜天天久久 | 9色在线视频 | 天天操天天操天天 | 国产亚洲综合性久久久影院 | 精品一区二区av | 亚洲精品午夜久久久 | 亚洲一区二区天堂 | 国产一区在线免费 | 黄色aaa毛片 | 日本中文字幕电影在线免费观看 | 免费福利在线观看 | 国产精品久久久影视 | 午夜av电影| 99r精品视频在线观看 | 特级毛片aaa | 欧美大片在线看免费观看 | 去干成人网 | 五月婷婷激情综合网 | 网站在线观看你们懂的 | 日韩欧美国产成人 | 久久香蕉国产精品麻豆粉嫩av | 欧美一区二区三区在线视频观看 | 丁香婷婷综合五月 | 日韩高清 一区 | 亚洲天天摸日日摸天天欢 | 波多野结衣在线视频一区 | 亚洲va在线va天堂va偷拍 | 在线中文视频 | 91九色精品 | 五月天丁香亚洲 | 99久久久久久久 | 亚洲另类视频在线观看 | 国产美女搞久久 | 国产精品日韩在线 | 热99久久精品 | 久久精品在线 | 国产精品高清一区二区三区 | 亚洲精品高清视频在线观看 | 国产精品久久久久久久久婷婷 | 天天操天天操天天操天天操天天操天天操 | 国产91精品久久久久久 | 欧美粗又大 | 久久综合九色综合97婷婷女人 | 国产一区二区三区四区大秀 | 99精品视频免费看 | 亚洲区二区 | 久久精品日产第一区二区三区乱码 | 欧美在线aaa | 热久久99这里有精品 | 欧美俄罗斯性视频 | 四虎永久免费网站 | 一区二区视频播放 | 美女网站免费福利视频 | 亚洲污视频 | 国产精品99久久久久久小说 | 亚洲 综合 国产 精品 | 久久精品79国产精品 | 午夜精品久久久久久久爽 | 91精品国自产拍天天拍 | 国产美女在线免费观看 | 美女视频久久久 | 色综合久久综合中文综合网 | 91干干干| 婷婷久久久 | 国产小视频精品 | 精品在线不卡 | 久久久久久97三级 | 五月黄色| 五月天狠狠操 | 视频在线播放国产 | av三级在线看| 久久成人国产精品入口 | 91经典在线 | 久久视频在线看 | 欧美一区二区三区在线视频观看 | 久久精品韩国 | 国产在线自 | 精品一区二区三区香蕉蜜桃 | 国产亚洲精品成人av久久影院 | 中文字幕在线视频第一页 | 国产h片在线观看 | 麻豆传媒视频在线播放 | 国产色综合 | 二区三区精品 | 午夜视频黄 | 黄色大全视频 | 久久国产女人 | 久久久久久国产一区二区三区 | 久久久久久久久久久久久9999 | 欧美一区二区日韩一区二区 | 精品在线观看一区二区 | 免费在线中文字幕 | 99久久精品免费一区 | 国产一级淫片免费看 | 日韩久久午夜一级啪啪 | 欧美久久久久久久久久久久久 | 国产精品美女久久久久久 | 国产精品视频永久免费播放 | 碰超人人 | 日韩91在线 | 奇米导航 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 久久精品视频国产 | 91精品国产91热久久久做人人 | 欧美有色 | 亚洲精品美女视频 | 免费观看一区二区 | 国产va精品免费观看 | 九九久久国产 | 色a在线观看 | 亚洲午夜久久久久久久久电影网 | 国产精品videossex国产高清 | 97精品国产一二三产区 | 亚洲资源| 天天色天天骑天天射 | 国产小视频福利在线 | 久久综合国产伦精品免费 | 久久久国产精品人人片99精片欧美一 | 国产糖心vlog在线观看 | 亚洲成人av在线 | 狠狠操狠狠干天天操 | 亚洲免费av观看 | 亚洲精品视频网站在线观看 | 四虎影视www| 免费看黄视频 | 狠狠干五月天 | 成年人在线观看免费视频 | 麻豆成人小视频 | 在线视频 区 | 精品免费久久久久久 | 最近日本中文字幕 | 国产精品欧美久久久久天天影视 | 精品国精品自拍自在线 | 欧美久久久久久久久久久久 | 天天在线视频色 | 黄色小视频在线观看免费 | 亚洲激情视频在线 | 亚洲精品一区二区三区四区高清 | 五月天亚洲精品 | 久草99| 国产成人精品网站 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 开心婷婷色 | 欧美日韩国产伦理 | 亚洲成人999 | 人人插超碰 | 正在播放国产一区二区 | 黄色软件视频大全免费下载 | 欧美精品中文 | 日韩欧美中文 | 久久五月情影视 | 国产精品久久久久久久久费观看 | 视频在线亚洲 | 日日操天天操夜夜操 | 一本一本久久a久久精品综合妖精 | 亚洲aⅴ在线 | 国产专区精品 | 欧美精品亚洲精品 | 69久久久久久久 | 国精产品999国精产品视频 | 日韩四虎 | 国产精品第二页 | 国产精品视频线看 | 欧美 日韩 久久 | 手机成人在线电影 | 久久久久久久av麻豆果冻 | 国产va饥渴难耐女保洁员在线观看 | 欧美性生活一级片 | 成人国产在线 | 久久人人爽爽人人爽人人片av | 久久视频免费在线观看 | 亚洲精品资源在线 | 99国产精品久久久久老师 | 天天干天天操天天操 | 国产精品美女久久久久久久网站 | 国产精品久久久久一区二区三区 | 国产黄色一级大片 | 久久久免费观看视频 | 中文字幕久久精品一区 | 国产精品久久久久久久久久久久午夜 | 国产精品久久久久久久久久免费看 | 久久96国产精品久久99软件 | 日本特黄一级 | 91成人在线观看高潮 | 国产成人在线播放 | 女人18片| 99电影456麻豆| 国产福利91精品张津瑜 | 国产精品日韩久久久久 | 国产91精品一区二区绿帽 | 欧美激情视频在线观看免费 | 一区二区三区中文字幕在线观看 | 亚洲资源一区 | 欧美激情视频在线免费观看 | 日韩精品久久久久久久电影竹菊 | 午夜精品一区二区国产 | 国内视频在线 | 黄污视频大全 | 亚洲精品国偷拍自产在线观看蜜桃 | 激情动态 | 日韩精品免费一区二区在线观看 | 国产成本人视频在线观看 | 91av网址 | 91av看片| 天天天干天天射天天天操 | 成人av在线资源 | 亚州精品在线视频 | 五月天激情婷婷 | 综合激情av | 精品国产三级a∨在线欧美 免费一级片在线观看 | 日日夜夜免费精品视频 | 99精品网站 | 成人影音av | 久久激情视频免费观看 | av在线最新 | 安徽妇搡bbbb搡bbbb | 亚洲aⅴ在线观看 | 91亚洲精品乱码久久久久久蜜桃 | 一区二区欧美激情 | 精品国产诱惑 | 国产女教师精品久久av | 国产精品久久电影网 | 日本中文一级片 | 免费看污污视频的网站 | 97碰碰精品嫩模在线播放 | 国产小视频在线免费观看 | 一区二区三区在线免费观看 | 午夜视频一区二区三区 | 久久一区国产 | 不卡国产在线 | 98超碰在线观看 | 欧美一区二区日韩一区二区 | 欧美日韩观看 | 国产精品久久久久久久久久新婚 | 国产精彩视频一区二区 | 日韩久久久久久久久久 | 免费成人在线视频网站 | av免费网页 | 国产偷国产偷亚洲清高 | 久久成年人网站 | 日av免费 | 国产美女在线精品免费观看 | 欧美一级艳片视频免费观看 | 国产一性一爱一乱一交 | 久久久久久福利 | www.久久91 | 日韩一级电影在线 | 欧美一级免费黄色片 | 手机在线免费av | 久热久草在线 | 日韩精品无 | 免费观看性生活大片 | 伊人春色电影网 | 在线免费观看黄色小说 | 日日操天天操狠狠操 | 久久免费国产视频 | 91精品啪 | 四虎欧美| 日韩视频一区二区三区在线播放免费观看 | 精品久久网站 | 国产一级不卡视频 | 精品国产精品久久一区免费式 | 日本久久片 | 久久久综合九色合综国产精品 | 欧美人人爱 | 午夜国产福利在线 | 欧美中文字幕第一页 | 7777精品伊人久久久大香线蕉 | 欧美片网站yy| 久久国产精品视频观看 | 国产视频在线观看一区二区 | 久久五月婷婷综合 | 色妞色视频一区二区三区四区 | 色999视频| 色综合天天色 | 高清不卡一区二区三区 | 午夜精品一区二区国产 | 亚洲va欧洲va国产va不卡 | 99视频在线免费看 | 免费三级a | 欧美一二三区在线播放 | 亚洲欧美日韩国产一区二区 | 欧美三级高清 | 五月婷婷深开心 | 精品99久久久久久 | 亚洲精品自拍视频在线观看 | 开心色插 | 婷婷激情五月综合 | 缴情综合网五月天 | 99这里只有精品视频 | 久久免费视频4 | 亚洲黄色在线 | 国产福利久久 | 玖玖玖国产精品 | 在线免费观看不卡av | 色婷婷视频在线 | 国产女人40精品一区毛片视频 | 成人一区不卡 | 高清一区二区三区av | 国产亚洲在| 五月天久久久久久 | 91理论片午午伦夜理片久久 | 欧美日韩首页 | 狠狠操精品 | 操操操干干干 | 国产精品日韩久久久久 | 午夜av电影院 | 国产精品区在线观看 | 91精品在线免费观看视频 | 天天撸夜夜操 | 狠狠色丁香婷婷综合欧美 | 国产欧美精品一区二区三区 | 亚洲国产精品999 | 日韩免费中文 | 国产精品美乳一区二区免费 | 久久久污 | 激情久久影院 | 日韩成人av在线 | 在线观看亚洲专区 | 国产美女主播精品一区二区三区 | 99精品欧美一区二区三区黑人哦 | 在线观看亚洲国产 | 最近中文字幕在线 | 99久久精品免费看国产免费软件 | 欧美一级高清片 | 国产精彩视频一区二区 | 四虎欧美 | 亚洲闷骚少妇在线观看网站 | 久久九九免费 | 久久免费视频5 | 麻豆91视频 | 欧美亚洲国产一卡 | 怡红院av久久久久久久 | 久久久久久久久免费 | 久久成 | 91资源在线免费观看 | 欧美日韩一区二区在线 | 午夜精品久久久久久久久久久 | 在线日韩| 4438全国亚洲精品在线观看视频 | 五月天久久久久久 | 日韩高清不卡一区二区三区 | 99精品色| 亚洲国产中文字幕 | 中文字幕视频一区二区 | 玖玖在线资源 | 午夜免费在线观看 | 成人欧美日韩国产 | 奇米导航| 婷婷色 亚洲 | 97碰视频| 国产精品黑丝在线观看 | 久久综合婷婷综合 | 狠狠色丁香婷婷 | 国内精品国产三级国产aⅴ久 | 久久久久伊人 | 国产精品一二三 | 国内精品久久久久影院一蜜桃 | 亚洲日韩欧美一区二区在线 | 婷婷久久久 | 国产成人高清av | 亚洲午夜av久久乱码 | 成人久久综合 | 久久久99精品免费观看乱色 | 久久精品小视频 | 国产一级特黄毛片在线毛片 | 九色视频网 | 日日夜夜精品视频天天综合网 | 99免费在线观看视频 | 亚洲国产婷婷 | 久草视频在 | 色网免费观看 | 超碰公开在线观看 | 国产午夜剧场 | 日韩视频一区二区在线 | 免费成人在线网站 | 日韩欧美视频一区二区 | 久久综合丁香 | 在线视频亚洲 | 成人精品影视 | 国产亚州精品视频 | 久久色视频 | 超碰97国产精品人人cao | 国内精品久久久久影院一蜜桃 | 黄色免费看片网站 | 国产成人三级在线播放 | 欧美天堂久久 | 在线看一区二区 | 久久久久久片 | 在线 国产 亚洲 欧美 | 久久午夜影视 | 高清免费av在线 | 日本中文一级片 | 欧美性生爱 | 国产中文字幕在线看 | 超碰在97| 国产久草在线 | 免费看的国产视频网站 | 九九热免费在线视频 | 国产精品一区二区三区电影 | 国产精品国产三级国产aⅴ入口 | 久久人网 | 久久久久在线观看 | 国产精品毛片久久 | 成人97视频一区二区 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 久久亚洲欧美日韩精品专区 | av免费看网站 | 日韩欧美视频免费观看 | 亚洲精品白浆高清久久久久久 | 亚洲最新视频在线 | 黄网站色视频 | 欧洲精品在线视频 | 久久这里只有精品9 | 国产精品永久在线 | 天堂va在线观看 | 亚洲精品国产视频 | aa级黄色大片 | 成人毛片在线观看视频 | 中文日韩在线视频 | 人人干人人超 | 久久久久国产精品www | 久久国产亚洲精品 | 欧美精品在线视频观看 | 狠狠色丁香婷婷综合久久片 | 欧美日一级片 | 国产在线播放一区 | 97人人澡人人爽人人模亚洲 | 九色在线视频 | 国产中文自拍 | 国产视频精品久久 | 久久一线| 久久婷婷国产色一区二区三区 | 99在线播放 | 99视频精品免费视频 | 日韩中文字幕91 | 久久久久一区二区三区四区 | 成人亚洲欧美 | 国产系列在线观看 | 亚洲最新av网址 | 亚洲综合激情 | 99精品在线看 | 午夜精品三区 | 国产精品视频地址 | 高清av影院 | 久久精品99久久久久久 | 狠狠久久伊人 | 亚洲精品国产精品国自产在线 | 亚洲成人av在线电影 | 永久免费毛片 | 在线观看亚洲专区 | 色综合久久久网 | 久久久久久电影 | 狠狠色噜噜狠狠狠合久 | 国产精品不卡在线观看 | 国产清纯在线 | 激情婷婷丁香 | 久久久精品欧美一区二区免费 | 三级免费黄 | www.狠狠 | 韩国精品在线观看 | 天天天天色射综合 | 91麻豆精品国产91久久久无限制版 | 日韩免费看的电影 | 天天干天天干天天干 | 国产亚洲精品成人av久久ww | 在线香蕉视频 | 91在线精品观看 | 丁香花中文字幕 | 国产网站在线免费观看 | 欧美日韩中文国产一区发布 | 怡红院久久 | 久久a视频 | 久久久久久久免费看 | 97夜夜澡人人爽人人免费 | 超碰97人 | 99精品国产免费久久 | 91亚色在线观看 | 免费看污在线观看 | 欧美午夜理伦三级在线观看 | 青青网视频 | 午夜色大片在线观看 | 国产福利一区二区三区视频 | 狠狠色丁香婷婷综合 | 久久久福利 | 久久99国产一区二区三区 | 成人污视频在线观看 | 国产精品一区二区三区电影 | 天天摸天天弄 | 正在播放 久久 | 亚洲专区欧美 | 日韩在线高清免费视频 | 久久福利影视 | 91久久精品一区 | 国产精品第一页在线 | 精品视频成人 | 亚洲精品乱码久久久久v最新版 | 天天艹天天爽 | 又黄又网站| 免费福利在线播放 | 激情综合色播五月 | 五月天久久狠狠 | 九九久久成人 | www.五月婷| 国产又粗又猛又色又黄视频 | 国产精品av免费观看 | 中文字幕 第二区 | www.黄色片网站| 伊甸园永久入口www 99热 精品在线 | 国产高清绿奴videos | 亚洲欧洲av| 欧美日视频| 国产欧美精品一区二区三区四区 | 色婷婷午夜 | 国产视频在线观看一区二区 | 亚洲一区欧美激情 | www.亚洲精品在线 | 波多野结衣在线中文字幕 | 亚洲成av人片在线观看无 | 免费观看www7722午夜电影 | 超碰在线94 | 日韩av在线免费看 | 在线精品在线 | 久久久久久久久国产 | 亚洲视频,欧洲视频 | 精品国产乱码久久久久久1区二区 | 欧美一级视频在线观看 | 久久国产成人午夜av影院宅 | 亚洲精品乱码久久久久v最新版 | 欧美日本在线观看视频 | 亚洲国产精品va在线看黑人动漫 | 国产又粗又长又硬免费视频 | 狠狠色丁香婷婷综合 | 99色视频| 国产在线播放一区二区 | 欧美日韩国产二区 | 久草电影网 | 久久一区二区三区国产精品 | 欧美在线一二区 | 成人久久亚洲 | 国产网站av | 久久久99精品免费观看 | 亚洲精品综合欧美二区变态 | 一级a性色生活片久久毛片波多野 | 国产精品成人品 | 久草91视频| 三级动态视频在线观看 | 欧美激情一区不卡 | 激情丁香5月 | 日日夜夜婷婷 | 中文字幕在线看 | 成人资源站 | 成人电影毛片 | 日韩三区在线 |