배포 절차
이 참조 아키텍처 검증에서 우리는 하나의 코디네이터와 네 개의 실행자로 구성된 Dremio 구성을 사용했습니다.
NetApp 설정
-
스토리지 시스템 초기화
-
스토리지 가상 머신(SVM) 생성
-
논리적 네트워크 인터페이스 할당
-
NFS, S3 구성 및 라이센싱
NFS(네트워크 파일 시스템)의 경우 아래 단계를 따르세요. 1. NFSv4 또는 NFSv3에 대한 Flex Group 볼륨을 만듭니다. 이 검증을 위한 설정에서 우리는 48개의 SSD를 사용했는데, 그 중 1개는 컨트롤러의 루트 볼륨에 전용으로 사용되었고, 47개는 NFSv4에 분산되어 있었습니다. Flex Group 볼륨에 대한 NFS 내보내기 정책에 Dremio 서버 네트워크에 대한 읽기/쓰기 권한이 있는지 확인합니다.
-
모든 Dremio 서버에서 폴더를 만들고 각 Dremio 서버의 논리 인터페이스(LIF)를 통해 Flex Group 볼륨을 이 폴더에 마운트합니다.
S3(Simple Storage Service)의 경우 아래 단계를 따르세요.
-
"vserver object-store-server create" 명령을 사용하여 HTTP를 활성화하고 관리 상태를 'up'으로 설정한 객체 저장소 서버를 설정합니다. HTTPS를 활성화하고 사용자 정의 리스너 포트를 설정할 수 있습니다.
-
"vserver object-store-server user create -user <username>" 명령을 사용하여 object-store-server 사용자를 생성합니다.
-
액세스 키와 비밀 키를 얻으려면 다음 명령을 실행하세요: "set diag; vserver object-store-server user show -user <username>". 하지만 앞으로는 이러한 키가 사용자 생성 프로세스 중에 제공되거나 REST API 호출을 사용하여 검색할 수 있습니다.
-
2단계에서 생성한 사용자를 사용하여 객체-저장소-서버 그룹을 설정하고 액세스 권한을 부여합니다. 이 예에서는 "FullAccess"를 제공했습니다.
-
유형을 "S3"로 설정하여 두 개의 S3 버킷을 만듭니다. 하나는 Dremio 구성용이고 다른 하나는 고객 데이터용입니다.
Zookeeper 설정
Dremio가 제공하는 Zookeeper 구성을 사용할 수 있습니다. 이 검증에서 우리는 별도의 Zookeeper를 사용했습니다. 우리는 이 웹 링크에 언급된 단계를 따랐습니다. https://medium.com/@ahmetfurkandemir/distributed-hadoop-cluster-1-spark-with-all-dependincies-03c8ec616166
Dremio 설정
우리는 이 웹링크를 따라 타르볼을 통해 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
-
tar 파일을 다운로드하세요 https://download.dremio.com/community-server/
-
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 설정)을 설정합니다.
-
dremio 데몬의 단위 파일을 /opt/dremio/share/dremio.service에서 /etc/systemd/system/dremio.service로 복사합니다.
-
시스템 재시작
sudo systemctl daemon-reload
-
부팅 시 dremio를 시작하도록 설정합니다.
sudo systemctl enable 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#
-
코어-사이트.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 Datalake 및 Lakehouse 환경을 위한 기본 개체 스토리지 솔루션으로 StorageGRID 권장합니다. 또한 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 마운트 경로를 입력합니다. Dremio 클러스터의 모든 노드에서 NFS 마운트 경로가 동일한 폴더에 마운트되었는지 확인하세요.
-
+
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:~#