Resumen de la implementación de dababend basada en minio

Databend es un nuevo almacén de datos de código abierto, flexible y de bajo costo que también puede realizar análisis en tiempo real basados ​​en el almacenamiento de objetos . Esperando su atención, exploremos juntos las soluciones de almacenamiento de datos nativas de la nube para crear una nueva generación de nube de datos de código abierto.

Construcción minio

esbirro 192.168.10.159

cd /data 
mkdir minio
cd minio 
wget https://dl.min.io/server/minio/release/linux-amd64/minio
export MINIO_ROOT_USER=minioadmin
export MINIO_ROOT_PASSWORD=minioadmin
#./minio server ./data
./minio server --address :29000 ./data

Use la interfaz WEB para abrir la prueba de administración de MinIO y cree un: depósito de curva de datos

 descarga de curva de datos

Descarga del sitio web oficial: solo se puede descargar la última versión, y el uso de la última versión puede requerir la actualización de las bibliotecas dependientes correspondientes. Si existe un riesgo, utilícelo en Docker.

Databend: active su almacenamiento de objetos para análisis en tiempo real | Curva de datos

Descarga de la versión histórica:

Etiquetas · datafuselabs/databend · GitHub

Experiencia: Puede descargar modificando el número de versión del siguiente enlace

https://repo.databend.rs/databend/v0.9.50-nightly/databend-v0.9.50-nightly-x86_64-unknown-linux-musl.tar.gz

mkdir databend_cluster

tar -zxvf databend-v0.9.50-nightly-x86_64-unknown-linux-musl.tar.gz -C databend_cluster

despliegue de un solo punto

Configuración de databend-query

# Storage config.
[storage]
# fs | s3 | azblob | obs
type = "s3"

# Set a local folder to store your data.
# Comment out this block if you're NOT using local file system as storage.
[storage.fs]
data_path = "./.databend/stateless_test_data"

# To use S3-compatible object storage, uncomment this block and set your values.
[storage.s3]
bucket = "databend"
endpoint_url = "https://192.168.10.159:29000"
access_key_id = "minioadmin"
secret_access_key = "minioadmin"

Iniciar curva de datos

./script/start.sh
ps axu |grep curva de datos

Cerrar curva de datos

./script/stop.sh 

Conectarse a Databend

Databend tiene tres puertos de servicio externo de forma predeterminada:
MySQL: 3307 es compatible con MySQL cli y conexión de aplicaciones.
Clickhouse: protocolo de controlador http 8124 Clickhouse

Aquí tomamos la conexión del cliente MySQL como ejemplo:

mysql -h 127.0.0.1 -P3307 -uroot

Tenga en cuenta que la raíz puede iniciar sesión sin una contraseña a través de localhost . La administración de autoridad de Databend se refiere al diseño de MySQL 8.0, y los usuarios de Databend se pueden administrar de acuerdo con la administración de usuarios de MySQL 8.0.

mysql8 crear usuario 

crear usuario 'xx'@'%' identificado por 'xxx';
otorgar todos los privilegios en *.* a 'xx'@'%' con opción de concesión;
privilegios de vaciado;

prueba

Después de que el cliente mysql inicie sesión

create database test;
use test;

# construir tabla

CREATE TABLE `p_msg` (
  `id` int ,
  `tt` varchar(3000) ,
  `author` varchar(255) ,
  `tags` varchar(255) ,
  `insert_time` timestamp ,
  `pubtime` datetime  
) ;

# insertar datos de prueba

INSERT INTO `test`.`p_msg`(`id`, `tt`, `author`, `tags`, `insert_time`, `pubtime`) VALUES (1, '“The world as we have created it is a process of our thinking. It cannot be changed without changing our thinking.”', 'Albert Einstein', 'change', '2022-10-07 10:32:00', '2022-10-07 10:32:00');

Después de que se inserten los datos, los datos entrarán en el cubo de la curva de datos de minio la próxima vez.

 La tabla de prueba correspondiente se puede consultar según sea necesario:

 fuente:

Implementación de Databend de instancia única basada en MinIO | Principiantes (1)

implementación de clúster de curva de datos

Conceptos en un clúster de Databend

Hay dos roles en el clúster de Databend: databend-metacluster y databend-query cluster. Entre ellos, el clúster de databend-meta debe iniciarse primero, y se recomienda estar en el estado awayson en el entorno de producción, y al menos 3 nodos; el clúster de consulta de databend puede ser múltiple.

En producción, recomendamos implementar un metaclúster de databend globalmente. databend-meta no consume muchos recursos y también puede compartir recursos con otros programas.

databend-query tiene por defecto la capacidad máxima de simultaneidad. Bajo un solo nodo databend-query, un SQL hará todo lo posible para que todos los NÚCLEOS de CPU de un solo nodo sean simultáneos; en el modo de clúster, databend-query realizará cálculos en todo el clúster Concurrente Planificación.

Aislamiento de recursos de clúster
En el clúster de la curva de datos, hay varios conceptos importantes de aislamiento de recursos: tent_id, cluster_id, max_threads. Para que todos comprendan mejor el clúster de curvas de datos, primero debemos comprender estos tres conceptos.

1. tent_id : ID de arrendatario, que se utiliza para identificar a qué arrendatario pertenece la consulta de curva de datos. Cuando el id_inquilino es el mismo, esta consulta de curva de datos puede obtener el siguiente inquilino: lista de usuarios y permisos, definición de datos correspondiente, etc.

2. cluster_id : ID de clúster, este parámetro se adjunta a Tenant_id, primero debe verificar bajo qué Tenant_id se encuentra, y luego puede obtener los metadatos correspondientes y luego verificar si hay miembros con el mismo ID de clúster. Si se encuentra un miembro con el mismo cluster_id, se formará automáticamente un clúster, que se puede encontrar en la tabla system.clusters Después de que la solicitud SQL llegue al nodo, la potencia informática se coordinará entre los nodos con el mismo tent_id y clúster_id. El tent_id es el mismo, pero el cluster_id es diferente, lo que puede aislar el poder de cómputo, pero todos comparten una lista de datos y usuarios.

 Se comparte la metainformación correspondiente bajo el mismo teamt_id, y se calcula y comparte el cluster_id correspondiente. Por lo tanto, Databend es compatible con el modelo multiinquilino nativo y admite varios clústeres en el mismo inquilino .

3. max_threads : controle cuántos núcleos de CPU puede usar un sql en databend-query. El valor predeterminado es el núcleo de CPU admitido por el nodo. Por ejemplo, algunos SQL complejos pueden limitar el número de concurrencia a través de max_threads en el caso de memoria insuficiente para reducir el uso de la memoria.

planificación de clústeres

192.160.10.153 databend-meta(single) databend-query

192.160.10.159 databend-meta databend-consulta

192.160.10.160 databend-meta databend-consulta

databend-metacluster 

/etc/hosts

192.168.10.153 meta01
192.168.10.159 meta02
192.168.10.160 meta03

Configuración 192.160.10.153

vi configs/databend-meta.toml

log_dir                 = "/var/log/databend"
admin_api_address       = "0.0.0.0:28101"
grpc_api_address        = "0.0.0.0:9191"
# databend-query fetch this address to update its databend-meta endpoints list,
# in case databend-meta cluster changes.
grpc_api_advertise_host = "192.168.10.153"

[raft_config]
id            = 1
raft_dir      = "/var/lib/databend/raft"
raft_api_port = 28103

# Assign raft_{listen|advertise}_host in test config.
# This allows you to catch a bug in unit tests when something goes wrong in raft meta nodes communication.
raft_listen_host = "192.168.10.153"
raft_advertise_host = "192.168.10.153"

# Start up mode: single node cluster
single        = true

192.160.10.159 configuración

vi configs/databend-meta.toml

log_dir                 = "/var/log/databend"
admin_api_address       = "0.0.0.0:28101"
grpc_api_address        = "0.0.0.0:9191"
# databend-query fetch this address to update its databend-meta endpoints list,
# in case databend-meta cluster changes.
grpc_api_advertise_host = "meta02"

[raft_config]
id            = 2
raft_dir      = "/var/lib/databend/raft"
raft_api_port = 28103

# Assign raft_{listen|advertise}_host in test config.
# This allows you to catch a bug in unit tests when something goes wrong in raft meta nodes communication.
raft_listen_host = "meta02"
raft_advertise_host = "meta02"

# Start up mode: single node cluster
# single        = true
join            =["meta01:28103","meta03:28103"]

Configuración 192.160.10.160

vi configs/databend-meta.toml

log_dir                 = "/var/log/databend"
admin_api_address       = "0.0.0.0:28101"
grpc_api_address        = "0.0.0.0:9191"
# databend-query fetch this address to update its databend-meta endpoints list,
# in case databend-meta cluster changes.
grpc_api_advertise_host = "meta03"

[raft_config]
id            = 3
raft_dir      = "/var/lib/databend/raft"
raft_api_port = 28103

# Assign raft_{listen|advertise}_host in test config.
# This allows you to catch a bug in unit tests when something goes wrong in raft meta nodes communication.
raft_listen_host = "meta03"
raft_advertise_host = "meta03"

# Start up mode: single node cluster
# single        = true
join            =["meta01:28103","meta02:28103"]

Tenga en cuenta que la ip local no puede aparecer en el nodo de unión

Inicie el metanodo

La primera vez que necesita prestar atención, primero debe iniciar el primer nodo con único y otro verdadero, y luego iniciar otros nodos. Además del primer inicio, también debe prestar atención a al menos dos metanodos antes de iniciar el nodo de consulta; de lo contrario, es posible que la consulta no se agregue al clúster.

Para el segundo inicio, primero debe iniciar un nodo no único, iniciar el nodo único después de 2-3 segundos y finalmente iniciar otros nodos no únicos.

Inicie el script databend-meta

meta.sh

#!/bin/bash
ulimit  -n 65535
nohup bin/databend-meta --config-file=configs/databend-meta.toml  2>&1 >meta.log &

Vista de miembros del metaclúster

Debe verificar el puerto admin_api_address del nodo único.

curl 192.168.10.153:28101/v1/clúster/nodos

Si aparece la información del miembro del clúster, significa que el clúster se creó correctamente; de ​​lo contrario, debe verificar el registro.

clúster de consulta de curva de datos

configs/databend-query.toml

La configuración del nodo Consulta puede ser la misma y la configuración principal es la siguiente (tenga en cuenta que no todas las configuraciones se pueden copiar directamente):

flight_api_address = "0.0.0.0:9091"


# Storage config.
[storage]
# fs | s3 | azblob | obs
type = "s3"

# Set a local folder to store your data.
# Comment out this block if you're NOT using local file system as storage.
[storage.fs]
data_path = "./.databend/stateless_test_data"

# To use S3-compatible object storage, uncomment this block and set your values.
[storage.s3]
bucket = "databend"
endpoint_url = "https://192.168.10.159:29000"
access_key_id = "minioadmin"
secret_access_key = "minioadmin"

[meta]
# To enable embedded meta-store, set address to "".
embedded_dir = "./.databend/meta_embedded_1"
address = ["192.168.10.153:9191","192.168.10.159:9191","192.168.10.160:9191"]
username = "root"
password = "root"
client_timeout_in_second = 60
auto_sync_interval = 60

Inicie el nodo de consulta

nohup bin/databend-query --config-file=configs/databend-query.toml 2>&1 >query.log &

Ver información de miembros del clúster de consultas

seleccione * de system.clusters;

 verificar

En el nodo meta01, inicie sesión en la curva de datos, realice operaciones de creación de bases de datos, creación de tablas y almacenamiento, e inicie sesión en la curva de datos en los nodos meta02 y meta03 para ver los resultados de la operación, lo que indica que el clúster se ha creado correctamente.

secuencia de comandos del proceso de apagado

#Cerrar el metaproceso

matar -9 `pgrep -f "bin/databend-meta"`

#Cerrar el proceso de consulta

kill -9 `pgrep -f "bin/databend-query"`

fuente:

Implementación de clústeres de Databend | Principiantes (2)_Blog de Databend-Blog de CSDN

Implementación de clústeres de Databend | Principiantes (2)

Bienvenido | Curva de datos

Supongo que te gusta

Origin blog.csdn.net/csdncjh/article/details/132000922
Recomendado
Clasificación