Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

Deployment手順

共同作成者

このリファレンスアーキテクチャの検証では、1人のコーディネータと4人のExecutorで構成されるDremio構成を使用しました。NetAppストレージコントローラを使用したdremioアーキテクチャを示す図

NetAppセットアップ

  • ストレージシステムの初期化

  • Storage Virtual Machine(SVM)の作成

  • 論理ネットワークインターフェイスの割り当て

  • NFS、S3の構成とライセンス

NFS(ネットワークファイルシステム)については、以下の手順を実行してください。NFSv4またはNFSv3用のFlex Groupボリュームを作成します。この検証のセットアップでは、48本のSSD、コントローラのルートボリューム専用のSSD 1本、NFSv4用に47本のSSDを使用しました。]Flex GroupボリュームのNFSエクスポートポリシーにDremioサーバーネットワークに対する読み取り/書き込み権限があることを確認します。

  1. すべてのDremioサーバーで、フォルダーを作成し、各Dremioサーバーの論理インターフェイス(LIF)を使用してFlex Groupボリュームをこのフォルダーにマウントします。

S3(Simple Storage Service)については、次の手順を実行してください。

  1. vserver object-store-server createコマンドを使用して、HTTPを有効にし、管理ステータスを「up」に設定します。HTTPSを有効にし、カスタムリスナーポートを設定することもできます。

  2. 「vserver object-store-server user create -user <username>」コマンドを使用して、object-store-serverユーザを作成します。

  3. アクセスキーとシークレットキーを取得するには、次のコマンドを実行します。"set diag;vserver object-store-server user show -user <username>"。ただし、今後は、これらのキーはユーザ作成プロセス中に提供されるか、REST API呼び出しを使用して取得できます。

  4. 手順2で作成したユーザを使用してオブジェクトストアサーバグループを作成し、アクセスを許可します。この例では、「FullAccess」を提供しています。

  5. タイプを「S3」に設定して、S3バケットを2つ作成します。1つはDremio構成用、もう1つは顧客データ用です。

ZooKeeperのセットアップ

Dremioが提供するzookeeper設定を使用できます。この検証では、別 々 のzookeeperを使用しました。このWebリンクで説明されている手順に従いました。 https://medium.com/@ahmetfurkandemir/distributed-hadoop-cluster-1-spark-with-all-dependincies-03c8ec616166

Dremioセットアップ

私たちはこのウェブリンクをたどって、tar ball経由でDremioをインストールしました。

  1. Dremioグループを作成します。

    sudo groupadd -r dremio
  2. dremioユーザーを作成します。

    sudo useradd -r -g dremio -d /var/lib/dremio -s /sbin/nologin dremio
  3. 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. tarファイルを https://download.dremio.com/community-server/

  5. Dremioを/opt/dremioディレクトリに解凍します。

    sudo tar xvf dremio-enterprise-25.0.3-202405170357270647-d2042e1b.tar.gz -C /opt/dremio --strip-components=1
  6. 構成フォルダのシンボリックリンクを作成します。

    sudo ln -s /opt/dremio/conf /etc/dremio
  7. サービス設定をセットアップします(systemd setup)。

    1. dremioデーモンのユニットファイルを/opt/dremio/share/dremio.serviceから/etc/systemd/system/dremio.serviceにコピーします

    2. システムの再起動

      sudo systemctl daemon-reload
    3. dremioを有効にしてブート時に起動します。

      sudo systemctl enable dremio
  8. コーディネータにDremioを設定します。詳細については、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. Dremioの設定はNetAppオブジェクトストレージに格納されます。今回の検証では、「dremioconf」バケットはONTAP S3バケットにあります。下の図は、「dremioconf」S3バケットの「scratch」フォルダと「uploads」フォルダからの詳細を示しています。

NetAppオブジェクトストレージを使用したdremioを示す図

  1. ExecutorsでDremioを設定します。このセットアップでは、3つのExecutorがあります。

    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–コーディネータ設定と同じです。

メモ NetAppは、Datalake環境とLakehouse環境向けのプライマリオブジェクトストレージソリューションとしてStorageGRIDを推奨しています。さらに、ファイルとオブジェクトの二重性にはNetApp ONTAPが採用されています。本ドキュメントでは、お客様のご要望に応じてONTAP S3を対象にテストを実施し、データソースとして正常に機能しています。

複数ソースの設定

  1. DremioでONTAP S3とStorageGRIDをs3ソースとして設定します。

    1. Dremioダッシュボード→データセット→ソース→ソースの追加。

    2. [全般]セクションで、AWSアクセスとシークレットキーを更新してください

    3. 詳細オプションで、互換モードを有効にし、以下の詳細で接続プロパティを更新します。ONTAP S3またはStorageGRIDのNetAppストレージコントローラのエンドポイントIP/Name。

      fs.s3a.endoint = 10.63.150.69
      fs.s3a.path.style.access = true
      fs.s3a.connection.maximum=1000
    4. 可能な場合はローカルキャッシュを有効にし、可能な場合は使用可能な合計キャッシュの最大割合= 100

    5. 次に、NetAppオブジェクトストレージのバケットのリストを表示します。NetAppオブジェクトストレージからのファイルのリストを示す図

    6. StorageGRIDバケットの詳細の表示例NetAppオブジェクトストレージからのファイルのリストを示す図

  2. DremioでNAS(特にNFS)をソースとして設定します。

    1. Dremioダッシュボード→データセット→ソース→ソースの追加。

    2. [全般]セクションで、名前とNFSマウントパスを入力します。NFSマウントパスがDremioクラスタ内のすべてのノードの同じフォルダにマウントされていることを確認してください。

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:~#