部署程序
在此參考架構驗證中、我們使用由一位協調者和四位執行者組成的 Dremio 組態
NetApp 設定
-
儲存系統初始化
-
建立儲存虛擬機器( SVM )
-
邏輯網路介面指派
-
NFS 、 S3 組態和授權
請遵循下列 NFS (網路檔案系統)步驟: 1.為 NFSv4 或 NFSv3 建立 Flex Group Volume 。在我們的驗證設定中、我們使用了 48 個 SSD 、 1 個 SSD 專用於控制器的根磁碟區、 47 個 SSD 散佈於 NFSv4 中 ] 。確認 Flex Group Volume 的 NFS 匯出原則具有 Dremio 伺服器網路的讀取 / 寫入權限。
-
在所有 Dremio 伺服器上、建立一個資料夾、並透過每個 Dremio 伺服器上的邏輯介面( LIF )、將 Flex Group Volume 掛載至此資料夾。
請依照下列步驟執行 S3 ( Simple Storage Service ):
-
使用「 vserver object-store-server create 」命令設定物件儲存區伺服器、並將管理狀態設定為「 up 」。您可以選擇啟用 HTTPS 並設定自訂接聽程式連接埠。
-
使用「 vserver object-store-server user create -user <username> 」命令建立物件儲存伺服器使用者。
-
若要取得存取金鑰和秘密金鑰、您可以執行下列命令:「 Set diag; vserver object-store-server user show -user <username> 」。不過、在使用者建立程序期間、將會提供這些金鑰、也可以使用 REST API 呼叫來擷取這些金鑰。
-
使用在步驟 2 中建立的使用者建立物件儲存區伺服器群組、並授予存取權。在此範例中、我們提供了「 FullAccess 」。
-
將 S3 儲存區的類型設定為「 S3 」、即可建立兩個 S3 儲存區。一個用於 Dremio 組態、另一個用於客戶資料。
zookeeper 設定
您可以使用 Dremio 提供的 zookeper 組態。在這項驗證中、我們使用了獨立的 zookeeper 。我們遵循本網頁連結中所述的步驟 https://medium.com/@ahmetfurkandemir/distributed-hadoop-cluster-1-spark-with-all-dependincies-03c8ec616166
Dremio 設定
我們跟隨這個網頁連結、透過 tar ball 安裝 Dremio 。
-
建立 Dremio 群組。
sudo groupadd -r dremio
-
建立 dremio 使用者。
sudo useradd -r -g dremio -d /var/lib/dremio -s /sbin/nologin dremio
-
建立 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
-
將 Dremio 解壓縮至 /opt/dremio 目錄。
sudo tar xvf dremio-enterprise-25.0.3-202405170357270647-d2042e1b.tar.gz -C /opt/dremio --strip-components=1
-
為組態資料夾建立符號連結。
sudo ln -s /opt/dremio/conf /etc/dremio
-
設定您的服務組態( SystemD 設定)。
-
從 /opt/dremio/share/dremio.service 將 dremio 守護程序的單元文件複製到 /etc/systemd/system/dremio.service 。
-
重新啟動系統
sudo systemctl daemon-reload
-
啟用 dremio 以在開機時啟動。
sudo systemctl enable dremio
-
-
在協調器上設定 Dremio 。如需詳細資訊、請參閱 Dremio 組態
-
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#
-
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#
-
-
Dremio 組態儲存在 NetApp 物件儲存區中。在我們的驗證中、「 dremioconf 」貯體位於 ONTAP S3 貯體中。下圖顯示「 dremioconf 」 S3 儲存區的「 Scratch 」和「 uploads 」資料夾中的一些詳細資料。
-
在執行者上設定 Dremio 。在我們的設定中、我們有 3 位執行者。
-
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
-
Core-site.xml –與協調者組態相同。
-
NetApp 建議 StorageGRID 做為其主要目標儲存解決方案、以用於 Datalake 和 Lakehouse 環境。此外、 NetApp ONTAP 也用於檔案 / 物件雙重性。在本文中、我們已針對客戶的要求、對 ONTAP S3 進行測試、並成功地做為資料來源。 |
多個來源設定
-
在 Dremio 中將 ONTAP S3 和 StorageGRID 設定為 S3 來源。
-
Dremio 儀表板 → 資料集 → 來源 → 新增來源。
-
請在一般章節中更新 AWS 存取和秘密金鑰
-
在進階選項中、啟用相容模式、以下列詳細資料更新連線內容。來自 NetApp 儲存控制器的端點 IP/ 名稱、來自 ONTAP S3 或 StorageGRID 。
fs.s3a.endoint = 10.63.150.69 fs.s3a.path.style.access = true fs.s3a.connection.maximum=1000
-
盡可能啟用本機快取、盡可能使用的可用快取總容量百分比上限 = 100
-
然後檢視 NetApp 物件儲存區的貯體清單。
-
StorageGRID 貯體詳細資料的範例檢視
-
-
在 Dremio 中將 NAS (特別是 NFS )設定為來源。
-
Dremio 儀表板 → 資料集 → 來源 → 新增來源。
-
在一般區段中、輸入名稱和 NFS 裝載路徑。請確定 NFS 裝載路徑已掛載於 Dremio 叢集中所有節點的同一個資料夾。
-
+
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:~#