Skip to main content
NetApp artificial intelligence solutions
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Procedura di distribuzione

In questa convalida dell'architettura di riferimento, abbiamo utilizzato una configurazione Dremio composta da un coordinatore e quattro esecutoriFigura che mostra l'architettura di Dremio con NetApp Storage Controller

Configurazione NetApp

  • Inizializzazione del sistema di archiviazione

  • Creazione di una macchina virtuale di archiviazione (SVM)

  • Assegnazione delle interfacce di rete logiche

  • Configurazione e licenza NFS, S3

Per NFS (Network File System) procedere come segue: 1. Creare un volume Flex Group per NFSv4 o NFSv3. Nella nostra configurazione per questa convalida, abbiamo utilizzato 48 SSD, 1 SSD dedicato al volume root del controller e 47 SSD distribuiti per NFSv4]]. Verificare che il criterio di esportazione NFS per il volume Flex Group disponga di autorizzazioni di lettura/scrittura per la rete dei server Dremio.

  1. Su tutti i server Dremio, creare una cartella e montare il volume Flex Group su questa cartella tramite un'interfaccia logica (LIF) su ciascun server Dremio.

Per S3 (Simple Storage Service) seguire i passaggi indicati di seguito:

  1. Impostare un object-store-server con HTTP abilitato e lo stato di amministrazione impostato su "attivo" utilizzando il comando "vserver object-store-server create". Hai la possibilità di abilitare HTTPS e impostare una porta di ascolto personalizzata.

  2. Creare un utente object-store-server utilizzando il comando "vserver object-store-server user create -user <username>".

  3. Per ottenere la chiave di accesso e la chiave segreta, è possibile eseguire il seguente comando: "set diag; vserver object-store-server user show -user <nomeutente>". Tuttavia, in futuro, queste chiavi verranno fornite durante il processo di creazione dell'utente oppure potranno essere recuperate tramite chiamate API REST.

  4. Creare un gruppo object-store-server utilizzando l'utente creato nel passaggio 2 e concedere l'accesso. In questo esempio abbiamo fornito "FullAccess".

  5. Crea due bucket S3 impostandone il tipo su "S3". Uno per la configurazione di Dremio e uno per i dati del cliente.

Configurazione del guardiano dello zoo

Puoi utilizzare la configurazione zookeeper fornita da Dremio. In questa convalida, abbiamo utilizzato uno zookeeper separato. Abbiamo seguito i passaggi menzionati in questo collegamento web https://medium.com/@ahmetfurkandemir/distributed-hadoop-cluster-1-spark-with-all-dependincies-03c8ec616166

Configurazione di Dremio

Abbiamo seguito questo collegamento web per installare Dremio tramite tarball.

  1. Crea un gruppo Dremio.

    sudo groupadd -r dremio
  2. Crea un utente dremio.

    sudo useradd -r -g dremio -d /var/lib/dremio -s /sbin/nologin dremio
  3. Crea directory Dremio.

    sudo mkdir /opt/dremio
    sudo mkdir /var/run/dremio && sudo chown dremio:dremio /var/run/dremio
    sudo mkdir /var/log/dremio && sudo chown dremio:dremio /var/log/dremio
    sudo mkdir /var/lib/dremio && sudo chown dremio:dremio /var/lib/dremio
  4. Scarica il file tar da https://download.dremio.com/community-server/

  5. Scompattare Dremio nella directory /opt/dremio.

    sudo tar xvf dremio-enterprise-25.0.3-202405170357270647-d2042e1b.tar.gz -C /opt/dremio --strip-components=1
  6. Creare un collegamento simbolico per la cartella di configurazione.

    sudo ln -s /opt/dremio/conf /etc/dremio
  7. Imposta la configurazione del servizio (configurazione SystemD).

    1. Copiare il file dell'unità per il demone dremio da /opt/dremio/share/dremio.service a /etc/systemd/system/dremio.service.

    2. Riavviare il sistema

      sudo systemctl daemon-reload
    3. Abilita l'avvio di dremio all'avvio.

      sudo systemctl enable dremio
  8. Configurare Dremio sul coordinatore. Per maggiori informazioni, vedere Configurazione di Dremio

    1. Dremio.conf

      root@hadoopmaster:/usr/src/tpcds# cat /opt/dremio/conf/dremio.conf
      
      paths: {
        # the local path for dremio to store data.
        local: ${DREMIO_HOME}"/dremiocache"
      
        # the distributed path Dremio data including job results, downloads, uploads, etc
        #dist: "hdfs://hadoopmaster:9000/dremiocache"
        dist: "dremioS3:///dremioconf"
      }
      
      services: {
        coordinator.enabled: true,
        coordinator.master.enabled: true,
        executor.enabled: false,
        flight.use_session_service: false
      }
      
      zookeeper: "10.63.150.130:2181,10.63.150.153:2181,10.63.150.151:2181"
      services.coordinator.master.embedded-zookeeper.enabled: false
      root@hadoopmaster:/usr/src/tpcds#
    2. Core-site.xml

      root@hadoopmaster:/usr/src/tpcds# cat /opt/dremio/conf/core-site.xml
      <?xml version="1.0" encoding="UTF-8"?>
      <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
      <!--
        Licensed 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. See accompanying LICENSE file.
      -->
      
      <!-- Put site-specific property overrides in this file. -->
      
      <configuration>
      	<property>
      		<name>fs.dremioS3.impl</name>
      		<value>com.dremio.plugins.s3.store.S3FileSystem</value>
      	</property>
      	<property>
                      <name>fs.s3a.access.key</name>
                      <value>24G4C1316APP2BIPDE5S</value>
      	</property>
      	<property>
                      <name>fs.s3a.endpoint</name>
                      <value>10.63.150.69:80</value>
              </property>
      	<property>
             		<name>fs.s3a.secret.key</name>
             		<value>Zd28p43rgZaU44PX_ftT279z9nt4jBSro97j87Bx</value>
         	</property>
         	<property>
             		<name>fs.s3a.aws.credentials.provider</name>
             		<description>The credential provider type.</description>
             		<value>org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider</value>
         	</property>
      	<property>
                      <name>fs.s3a.path.style.access</name>
                      <value>false</value>
              </property>
      	<property>
          		<name>hadoop.proxyuser.dremio.hosts</name>
          		<value>*</value>
        	</property>
        	<property>
          		<name>hadoop.proxyuser.dremio.groups</name>
          		<value>*</value>
        	</property>
        	<property>
          		<name>hadoop.proxyuser.dremio.users</name>
          		<value>*</value>
      	</property>
      	<property>
      		<name>dremio.s3.compat</name>
      		<description>Value has to be set to true.</description>
      		<value>true</value>
      	</property>
      	<property>
      		<name>fs.s3a.connection.ssl.enabled</name>
      		<description>Value can either be true or false, set to true to use SSL with a secure Minio server.</description>
      		<value>false</value>
      	</property>
      </configuration>
      root@hadoopmaster:/usr/src/tpcds#
  9. La configurazione di Dremio è archiviata nell'archivio oggetti NetApp . Nella nostra convalida, il bucket "dremioconf" risiede in un bucket S3 ontap. L'immagine sottostante mostra alcuni dettagli delle cartelle "scratch" e "uploads" del bucket S3 "dremioconf".

Figura che mostra dremio con storage di oggetti NetApp

  1. Configurare Dremio sugli esecutori. Nella nostra configurazione abbiamo 3 esecutori.

    1. dremio.conf

      paths: {
        # the local path for dremio to store data.
        local: ${DREMIO_HOME}"/dremiocache"
      
        # the distributed path Dremio data including job results, downloads, uploads, etc
        #dist: "hdfs://hadoopmaster:9000/dremiocache"
        dist: "dremioS3:///dremioconf"
      }
      
      services: {
        coordinator.enabled: false,
        coordinator.master.enabled: false,
        executor.enabled: true,
        flight.use_session_service: true
      }
      
      zookeeper: "10.63.150.130:2181,10.63.150.153:2181,10.63.150.151:2181"
      services.coordinator.master.embedded-zookeeper.enabled: false
    2. Core-site.xml: uguale alla configurazione del coordinatore.

Nota NetApp consiglia StorageGRID come soluzione di archiviazione di oggetti primaria per gli ambienti Datalake e Lakehouse. Inoltre, NetApp ONTAP viene utilizzato per la dualità file/oggetto. Nel contesto di questo documento, abbiamo condotto dei test su ONTAP S3 in risposta alla richiesta di un cliente, e il sistema funziona correttamente come fonte di dati.

Configurazione di più sorgenti

  1. Configurare ONTAP S3 e storageGRID come sorgente S3 in Dremio.

    1. Dashboard di Dremio → set di dati → fonti → aggiungi fonte.

    2. Nella sezione generale, aggiorna l'accesso AWS e la chiave segreta

    3. Nell'opzione avanzata, abilita la modalità compatibilità e aggiorna le proprietà di connessione con i dettagli seguenti. L'IP/nome dell'endpoint dal controller di archiviazione NetApp da ontap S3 o storageGRID.

      fs.s3a.endoint = 10.63.150.69
      fs.s3a.path.style.access = true
      fs.s3a.connection.maximum=1000
    4. Abilita la memorizzazione nella cache locale quando possibile, percentuale massima della cache totale disponibile da utilizzare quando possibile = 100

    5. Quindi visualizza l'elenco dei bucket dall'archiviazione di oggetti NetApp .Figura che mostra l'elenco dei file dall'archiviazione di oggetti NetApp

    6. Visualizzazione di esempio dei dettagli del bucket storageGRIDFigura che mostra l'elenco dei file dall'archiviazione di oggetti NetApp

  2. Configurare NAS (in particolare NFS) come sorgente in Dremio.

    1. Dashboard di Dremio → set di dati → fonti → aggiungi fonte.

    2. Nella sezione generale, immettere il nome e il percorso di montaggio NFS. Assicurarsi che il percorso di montaggio NFS sia montato sulla stessa cartella su tutti i nodi del cluster Dremio.

Figura che mostra l'elenco dei file dall'archiviazione di oggetti NetApp

+

root@hadoopmaster:~# for i in hadoopmaster hadoopnode1 hadoopnode2 hadoopnode3 hadoopnode4; do ssh $i "date;hostname;du -hs /opt/dremio/data/spill/ ; df -h //dremionfsdata "; done
Fri Sep 13 04:13:19 PM UTC 2024
hadoopmaster
du: cannot access '/opt/dremio/data/spill/': No such file or directory
Filesystem                   Size  Used Avail Use% Mounted on
10.63.150.69:/dremionfsdata  2.1T  921M  2.0T   1% /dremionfsdata
Fri Sep 13 04:13:19 PM UTC 2024
hadoopnode1
12K	/opt/dremio/data/spill/
Filesystem                   Size  Used Avail Use% Mounted on
10.63.150.69:/dremionfsdata  2.1T  921M  2.0T   1% /dremionfsdata
Fri Sep 13 04:13:19 PM UTC 2024
hadoopnode2
12K	/opt/dremio/data/spill/
Filesystem                   Size  Used Avail Use% Mounted on
10.63.150.69:/dremionfsdata  2.1T  921M  2.0T   1% /dremionfsdata
Fri Sep 13 16:13:20 UTC 2024
hadoopnode3
16K	/opt/dremio/data/spill/
Filesystem                   Size  Used Avail Use% Mounted on
10.63.150.69:/dremionfsdata  2.1T  921M  2.0T   1% /dremionfsdata
Fri Sep 13 04:13:21 PM UTC 2024
node4
12K	/opt/dremio/data/spill/
Filesystem                   Size  Used Avail Use% Mounted on
10.63.150.69:/dremionfsdata  2.1T  921M  2.0T   1% /dremionfsdata
root@hadoopmaster:~#