Instalación de ambiente
Como base de datos OLAP de arquitectura MPP de código abierto, Doris puede ejecutarse en la mayoría de los servidores comerciales principales. Para aprovechar al máximo las ventajas de concurrencia de la arquitectura MPP y las características de alta disponibilidad de Doris, recomendamos que la implementación de Doris siga los siguientes requisitos:
sistema operativo linux | requisitos de la versión |
---|---|
sistema linux | Versión |
CentOS | 7.1 y superior |
ubuntu | 16.04 y superior |
Requisitos de Software
software | Versión |
---|---|
Java | 1.8 y superior |
CCG | 4.8.2 y superior |
Requisitos de instalación del sistema operativo
Establecer el número máximo del sistema de identificadores de archivos abiertos
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
Sincronización de reloj
Los metadatos de Doris requieren una precisión de tiempo de menos de 5000ms, por lo que todas las máquinas del clúster deben sincronizar sus relojes para evitar anomalías en el servicio causadas por inconsistencias en los metadatos causadas por problemas de reloj.
Cierra la partición de intercambio (swap)
La partición de intercambio de Linux causará serios problemas de rendimiento a Doris, y la partición de intercambio debe desactivarse antes de la instalación.
Verifique si la partición de intercambio está habilitada:
free -m
Si está habilitado, modifique el elemento de configuración y comente esta línea:
#/swapfile none swap sw 0 0
Luego reinicie para reiniciar.
sistema de archivos linux
Aquí recomendamos usar el sistema de archivos ext4 Al instalar el sistema operativo, seleccione el sistema de archivos ext4.
Entorno de desarrollo y pruebas.
módulo | UPC | Memoria | disco | red | número de instancias |
---|---|---|---|---|---|
Interfaz | 8 núcleos + | 8GB+ | SSD o SATA, 10GB+* | Gigabit Ethernet | 1 |
back-end | 8 núcleos + | 16GB+ | SSD o SATA, 50GB+ * | Gigabit Ethernet | 1-3 * |
Entorno de producción
módulo | UPC | Memoria | disco | red | Número de instancias (requisito mínimo) |
---|---|---|---|---|---|
Interfaz | 16 núcleos+ | 64GB+ | SSD o tarjeta RAID, 100GB+ * | NIC de 10 gigabits | 1-3 * |
back-end | 16 núcleos+ | 64GB+ | SSD o SATA, 100G+* | NIC de 10 gigabits | 3 * |
entorno java
Ingrese jps en la línea de comando, si se informa el error -bash: jps: comando no encontrado, significa que jdk debe reinstalarse. Si jdk se ha instalado normalmente, omita esta sección.
ingrese el comando
whereis java
Esta es solo la ruta de ejecución de Java, no la ruta de instalación de Java.
ingrese el comando
which java
Esta ruta es un enlace suave de la ruta java, obtenga la dirección a la que apunta el enlace:
ls -l /usr/bin/java
Continúe consultando la dirección real:
ls -l /etc/alternatives/java
La ruta encontrada es el openjdk que viene con CentOS, por lo que necesitamos descargar jdk1.8 del sitio web oficial de Oracle y reinstalarlo.Primero, desinstale el openjdk original:
rpm -qa | grep java #查看java文件
sudo rpm -qa | grep java | xargs rpm -e --nodeps #root权限下删除所有java文件
Sitio web oficial de descarga de jdk: https://www.oracle.com/java/technologies/downloads/#java8-linux
Descargue la versión inferior, descomprima:
tar -zxvf jdk-8u351-linux-x64.tar.gz
En el directorio de Linux:
los archivos /usr/local generalmente se almacenan para que otro host almacene software de instalación adicional, generalmente programas instalados al compilar el código fuente, como jdk, nginx, rabbitmq; /opt es el directorio para software de instalación adicional,
como mysql, redis, zookeeper;
muchas aplicaciones y archivos de usuarios /usr se colocan en este directorio
Configure las variables de entorno de Java:
vim /etc/profile
Adjuntar al final:
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_351 #jdk安装目录
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
Actualizar el archivo de perfil:
source /etc/profile
Compruebe si la instalación fue exitosa:
java -version
javac
Ingrese la línea de comando jps:
es normal en este momento.
entorno CCG
Verifique si GCC está instalado y asegúrese de que la versión sea 4.8.2 y superior:
a@a:~$ gcc
Command 'gcc' not found, but can be installed with:
sudo apt install gcc
a@a:~$ sudo apt install gcc # 安装GCC
a@a:~$ gcc -v # 查看GCC版本
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.1' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-Av3uEd/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
instalación mysql
El protocolo mysql utilizado por doris debe conectarse y usarse a través de mysql. Si no hay mysql, primero debe instalar mysql:
mysql
sudo apt install mysql-client-core-8.0 # version 8.0.30-0ubuntu0.20.04.2, or
sudo apt install mariadb-client-core-10.3 # version 1:10.3.34-0ubuntu0.20.04.1
Descarga del paquete de instalación
Primero consulta el modelo de CPU:
cat /proc/cpuinfo
Si la CPU es compatible con avx2, descargue directamente los tres archivos en avx2.
Primero descomprima FE y BE, y luego coloque el tercer paquete java-udf-jar-with-dependencies.jar en el directorio apache-doris-be-1.2.1-bin-x86_64/lib. Si la ubicación del paquete está fuera de lugar, el BE subsiguiente no podrá iniciarse.
Establecer variables de entorno :
vim /etc/profile.d/doris.sh
FE
Configurar FE:
a@a:/opt/doris/apache-doris-fe-1.2.1-bin-x86_64/conf # pwd
a@a:/export/server/apache-doris-1.1.1-bin-x86/fe/conf # ll
# vim fe.conf
root@zhiyong-doris:/export/server/apache-doris-1.1.1-bin-x86/fe/conf# cat fe.conf
# 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
#####################################################################
# the output dir of stderr and stdout
LOG_DIR = ${DORIS_HOME}/log
DATE = `date +%Y%m%d-%H%M%S`
JAVA_OPTS="-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:$DORIS_HOME/log/fe.gc.log.$DATE"
# For jdk 9+, this JAVA_OPTS will be used as default JVM options
JAVA_OPTS_FOR_JDK_9="-Xmx8192m -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"
##
## the lowercase properties are read by main program.
##
# INFO, WARN, ERROR, FATAL
sys_log_level = INFO
# store metadata, must be created before start FE.
# Default value is ${DORIS_HOME}/doris-meta
meta_dir = ${DORIS_HOME}/doris-meta
http_port = 8030
rpc_port = 9020
query_port = 9030
edit_log_port = 13536
mysql_service_nio_enabled = true
# 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
# Default value is empty.
# priority_networks = 10.10.10.0/24;192.168.0.0/16
priority_networks = 192.168.88.0/24
# Advanced configurations
# log_roll_size_mb = 1024
# sys_log_dir = ${DORIS_HOME}/log
# sys_log_roll_num = 10
# sys_log_verbose_modules = org.apache.doris
# audit_log_dir = ${DORIS_HOME}/log
# audit_log_modules = slow_query, query
# audit_log_roll_num = 10
# meta_delay_toleration_second = 10
# qe_max_connection = 1024
# max_conn_per_user = 100
# qe_query_timeout_second = 300
# qe_slow_log_ms = 5000
Entre ellos, el puerto 9010 de edit_log_port es fácil de generar conflictos, así que preste atención. Además, el directorio ${DORIS_HOME}/doris-meta debe crearse con anticipación.
Iniciar FE
Ejecutar bajo la ruta bin de FE:
./start_fe.sh --daemon
jps # 查看FE是否启动,若有PaloFe,则说明FE启动成功
SER
Modifique la carpeta de configuración de BE De manera similar, modifique be.conf en la carpeta conf de BE:
# 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.
PPROF_TMPDIR="$DORIS_HOME/log/"
# INFO, WARNING, ERROR, FATAL
sys_log_level = INFO
# ports for admin, web, heartbeat service
be_port = 9060
webserver_port = 13535
heartbeat_service_port = 9050
brpc_port = 8060
# 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
# Default value is empty.
# priority_networks = 10.10.10.0/24;192.168.0.0/16
priority_networks = 192.168.88.0/24
# data root path, separate by ';'
# you can specify the storage medium of each root path, HDD or SSD
# you can add capacity limit at the end of each root path, seperate by ','
# eg:
# storage_root_path = /home/disk1/doris.HDD,50;/home/disk2/doris.SSD,1;/home/disk2/doris
# /home/disk1/doris.HDD, capacity limit is 50GB, HDD;
# /home/disk2/doris.SSD, capacity limit is 1GB, SSD;
# /home/disk2/doris, capacity limit is disk capacity, HDD(default)
#
# you also can specify the properties by setting '<property>:<value>', seperate 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
storage_root_path = /opt/doris/storage
# Advanced configurations
# sys_log_dir = ${DORIS_HOME}/log
# sys_log_roll_mode = SIZE-MB-1024
# sys_log_roll_num = 10
# sys_log_verbose_modules = *
# log_buffer_level = -1
# palo_cgroups
Cree el directorio de la carpeta de almacenamiento por adelantado.
Si se implementa en el clúster de hadoop, preste atención para ajustar webserver_port en be.conf.
Agregar todos los nodos BE en FE
Conectar doris:
mysql -h 192.168.88.21 -P 9030 -uroot
mysql> show databases;
mysql> use information_schema;
mysql> show tables;
mysql> ALTER SYSTEM ADD BACKEND "192.168.88.21:9050";
Iniciar SER
Ingrese en el directorio bin de BE:
./start_be.sh --daemon
Ver estado de BE:
mysql> SHOW PROC '/backends';
Si el elemento Alive es verdadero, significa que el entorno de inicio se inicia correctamente, y si es falso, significa que el inicio falla.
Si el inicio falla, puede verificar si las carpetas doris-meta y de almacenamiento se crearon con anticipación y si los puertos están en conflicto. Generalmente, los errores se deben a estas dos razones. Los errores a menudo se deben a problemas con la configuración completa. información.