commit 7fe4e678a5f6c9067b5f2e43644058ae2ee76969
Author: Chen, Li
Date: Sat May 9 15:53:43 2026 +0800
doris init
diff --git a/Doris.md b/Doris.md
new file mode 100644
index 0000000..a887c30
--- /dev/null
+++ b/Doris.md
@@ -0,0 +1,26 @@
+### Doris
+
+因VM CPU不支持AVX2指令集,需要构建最新版本(4.1)Doris-noavx2镜像,此版本对比正常版本性能会低一些
+
+#### VM信息
+| VM | Service | Port |
+| :---: | :---: | --- |
+| 6.86.80.12 | Doris FE | 9030(msql port)8030(http port) |
+| 6.86.80.13 | Doris BE | 9050(health) |
+
+#### Resource配置
+创建AI Resource语句,以下Resource已创建好,相关函数使用参考 [Doris官网](https://doris.apache.org/zh-CN/docs/4.x/ai/ai-overview)
+```
+CREATE RESOURCE 'deepseek_v3'
+PROPERTIES (
+ 'type' = 'ai',
+ 'ai.provider_type' = 'openai',
+ 'ai.endpoint' = 'http://6.86.80.4:30080/v1/chat/completions',
+ 'ai.model_name' = 'deepseek-v3.2',
+ 'ai.temperature' = '0.7',
+ 'ai.max_retries' = '3',
+ 'ai.api_key' = 'sk-5HeY7gfSIlyZMacfuXOf5cphpymsNqufEu1ou4U3avbULcyY'
+);
+
+SELECT AI_GENERATE('deepseek_v3', 'Hello') AS Result;
+```
\ No newline at end of file
diff --git a/be/Dockerfile b/be/Dockerfile
new file mode 100644
index 0000000..cb026a4
--- /dev/null
+++ b/be/Dockerfile
@@ -0,0 +1,18 @@
+FROM eclipse-temurin:17.0.18_8-jre-ubi9-minimal
+
+ENV JAVA_HOME="/opt/java/openjdk"
+ENV PATH="/opt/apache-doris/be/bin:$PATH"
+ENV TZ="Asia/Shanghai"
+
+RUN mkdir -p /opt/apache-doris
+
+RUN microdnf install -y util-linux && \
+ microdnf clean all
+
+COPY apache-doris-4.1.0-bin-x64-noavx2/be /opt/apache-doris/be
+
+RUN chmod 755 /opt/apache-doris/be/bin/start_be.sh
+
+EXPOSE 9060 9050 8060 8040
+
+ENTRYPOINT ["/opt/apache-doris/be/bin/start_be.sh", "--console"]
\ No newline at end of file
diff --git a/be/be.conf b/be/be.conf
new file mode 100644
index 0000000..a4e8edb
--- /dev/null
+++ b/be/be.conf
@@ -0,0 +1,96 @@
+# 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.
+
+CUR_DATE=`date +%Y%m%d-%H%M%S`
+
+# Log dir
+LOG_DIR="${DORIS_HOME}/log/"
+
+# For jdk 17, this JAVA_OPTS will be used as default JVM options
+JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djol.skipHotspotSAAttach=true -Xmx2048m -DlogPath=$LOG_DIR/jni.log -Xlog:gc*:$LOG_DIR/be.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -XX:+IgnoreUnrecognizedVMOptions -Darrow.enable_null_check_for_get=false --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.cs=ALL-UNNAMED --add-opens=java.base/sun.security.action=ALL-UNNAMED --add-opens=java.base/sun.util.calendar=ALL-UNNAMED --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED"
+# Set your own JAVA_HOME
+# JAVA_HOME=/path/to/jdk/
+
+# https://github.com/apache/doris/blob/master/docs/zh-CN/community/developer-guide/debug-tool.md#jemalloc-heap-profile
+# https://jemalloc.net/jemalloc.3.html
+JEMALLOC_CONF="percpu_arena:percpu,background_thread:true,metadata_thp:auto,muzzy_decay_ms:5000,dirty_decay_ms:5000,oversize_threshold:0,prof:true,prof_active:false,lg_prof_interval:-1,lg_extent_max_active_fit:8"
+JEMALLOC_PROF_PRFIX="jemalloc_heap_profile_"
+
+# ports for admin, web, heartbeat service
+be_port = 9060
+webserver_port = 8040
+heartbeat_service_port = 9050
+brpc_port = 8060
+arrow_flight_sql_port = 8050
+
+# HTTPS configures
+enable_https = false
+# path of certificate in PEM format.
+ssl_certificate_path = "$DORIS_HOME/conf/cert.pem"
+# path of private key in PEM format.
+ssl_private_key_path = "$DORIS_HOME/conf/key.pem"
+
+# 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 or IP format, e.g. 10.10.10.1
+# Default value is empty.
+priority_networks = 6.86.80.0/24
+
+# data root path, separate by ';'
+# You can specify the storage type for each root path, HDD (cold data) or SSD (hot data)
+# eg:
+# storage_root_path = /home/disk1/doris;/home/disk2/doris;/home/disk2/doris
+# storage_root_path = /home/disk1/doris,medium:SSD;/home/disk2/doris,medium:SSD;/home/disk2/doris,medium:HDD
+# /home/disk2/doris,medium:HDD(default)
+#
+# you also can specify the properties by setting ':', separate 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,medium:HDD
+
+# Default dirs to put jdbc drivers,default value is ${DORIS_HOME}/jdbc_drivers
+# jdbc_drivers_dir = ${DORIS_HOME}/jdbc_drivers
+
+# Advanced configurations
+# INFO, WARNING, ERROR, FATAL
+sys_log_level = INFO
+# sys_log_roll_mode = SIZE-MB-1024
+# sys_log_roll_num = 10
+# sys_log_verbose_modules = *
+# log_buffer_level = -1
+
+# aws sdk log level
+# Off = 0,
+# Fatal = 1,
+# Error = 2,
+# Warn = 3,
+# Info = 4,
+# Debug = 5,
+# Trace = 6
+# Default to turn off aws sdk log, because aws sdk errors that need to be cared will be output through Doris logs
+aws_log_level = 2
+
+# azure sdk log level
+# Verbose = 1,
+# Informational = 2,
+# Warning = 3,
+# Error = 4
+azure_log_level = 4
+## If you are not running in aws cloud, you can disable EC2 metadata
+AWS_EC2_METADATA_DISABLED=true
diff --git a/be/docker-compose.yml b/be/docker-compose.yml
new file mode 100644
index 0000000..2693053
--- /dev/null
+++ b/be/docker-compose.yml
@@ -0,0 +1,22 @@
+version: '3.8'
+
+services:
+ doris-be:
+ image: doris-be:4.1
+ container_name: doris-be
+ restart: always
+ security_opt:
+ - label=disable
+ ulimits:
+ nofile:
+ soft: 655350
+ hard: 655350
+ environment:
+ - TZ=Asia/Shanghai
+ - DORIS_HOME=/opt/apache-doris/be
+ network_mode: host
+ volumes:
+ - "/etc/localtime:/etc/localtime:ro"
+ - "/home/tscnlich/doris/storage:/opt/apache-doris/be/storage/"
+ - "/home/tscnlich/doris/logs:/opt/apache-doris/be/log/"
+ - "/home/tscnlich/doris/be.conf:/opt/apache-doris/be/conf/be.conf"
diff --git a/fe/Dockerfile b/fe/Dockerfile
new file mode 100644
index 0000000..80c1dc0
--- /dev/null
+++ b/fe/Dockerfile
@@ -0,0 +1,17 @@
+FROM eclipse-temurin:17.0.18_8-jre-ubi9-minimal
+
+ENV JAVA_HOME="/opt/java/openjdk"
+ENV PATH="/opt/apache-doris/fe/bin:$PATH"
+ENV TZ="Asia/Shanghai"
+
+RUN mkdir -p /opt/apache-doris && \
+ microdnf install -y mariadb util-linux && \
+ microdnf clean all
+
+COPY apache-doris-4.1.0-bin-x64-noavx2/fe /opt/apache-doris/fe
+
+RUN chmod 755 /opt/apache-doris/fe/bin/start_fe.sh
+
+EXPOSE 8030 9010 9020 9030
+
+ENTRYPOINT ["/opt/apache-doris/fe/bin/start_fe.sh", "--console"]
\ No newline at end of file
diff --git a/fe/docker-compose.yml b/fe/docker-compose.yml
new file mode 100644
index 0000000..c303e60
--- /dev/null
+++ b/fe/docker-compose.yml
@@ -0,0 +1,16 @@
+version: '3.8'
+
+services:
+ doris-fe:
+ image: doris-fe:4.1
+ container_name: doris-fe
+ restart: always
+ environment:
+ - TZ=Asia/Shanghai
+ - DORIS_HOME=/opt/apache-doris/fe
+ network_mode: host
+ volumes:
+ - "/etc/localtime:/etc/localtime:ro"
+ - "/home/tscnlich/doris/meta:/opt/apache-doris/fe/doris-meta/"
+ - "/home/tscnlich/doris/logs:/opt/apache-doris/fe/log/"
+ - "/home/tscnlich/doris/fe.conf:/opt/apache-doris/fe/conf/fe.conf"
\ No newline at end of file
diff --git a/fe/fe.conf b/fe/fe.conf
new file mode 100644
index 0000000..7ee6154
--- /dev/null
+++ b/fe/fe.conf
@@ -0,0 +1,73 @@
+# 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
+#####################################################################
+
+CUR_DATE=`date +%Y%m%d-%H%M%S`
+
+# Log dir
+LOG_DIR = ${DORIS_HOME}/log
+
+# For jdk 17, this JAVA_OPTS will be used as default JVM options
+JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djavax.security.auth.useSubjectCredsOnly=false -Xmx8192m -Xms8192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR -Xlog:gc*,classhisto*=trace:$LOG_DIR/fe.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Darrow.enable_null_check_for_get=false --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.cs=ALL-UNNAMED --add-opens=java.base/sun.security.action=ALL-UNNAMED --add-opens=java.base/sun.util.calendar=ALL-UNNAMED --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED"
+
+# Set your own JAVA_HOME
+# JAVA_HOME=/path/to/jdk/
+
+##
+## the lowercase properties are read by main program.
+##
+
+# store metadata, must be created before start FE.
+# Default value is ${DORIS_HOME}/doris-meta
+# meta_dir = ${DORIS_HOME}/doris-meta
+
+# Default dirs to put jdbc drivers,default value is ${DORIS_HOME}/jdbc_drivers
+# jdbc_drivers_dir = ${DORIS_HOME}/jdbc_drivers
+
+http_port = 8030
+rpc_port = 9020
+query_port = 9030
+edit_log_port = 9010
+arrow_flight_sql_port = 8070
+
+# 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 or IP format, e.g. 10.10.10.1
+# Default value is empty.
+priority_networks = 6.86.80.0/24
+
+# Advanced configurations
+# log_roll_size_mb = 1024
+# INFO, WARN, ERROR, FATAL
+sys_log_level = INFO
+# NORMAL, BRIEF, ASYNC
+sys_log_mode = ASYNC
+# sys_log_roll_num = 10
+# sys_log_verbose_modules = org.apache.doris
+# audit_log_dir = $LOG_DIR
+# audit_log_modules = slow_query, query
+# audit_log_roll_num = 10
+# meta_delay_toleration_second = 10
+# qe_max_connection = 1024
+# qe_query_timeout_second = 300
+# qe_slow_log_ms = 5000