Fluid adalah mesin orkestrasi dan akselerasi dataset terdistribusi yang bersifat open-source dan cloud-native Kubernetes. Fluid dirancang untuk aplikasi intensif data di lingkungan cloud-native, seperti aplikasi data besar dan AI. Dalam skenario edge, Fluid dapat secara signifikan mempercepat akses file dari node edge ke Object Storage Service (OSS). Topik ini menjelaskan cara menggunakan fitur akselerasi data Fluid dalam kluster ACK Edge.
Prasyarat
-
Anda memiliki kluster ACK Edge versi 1.18 atau lebih baru. Untuk informasi selengkapnya, lihat Create an ACK Edge cluster.
-
Anda telah membuat kelompok node edge dan menambahkan node edge ke dalamnya. Untuk informasi selengkapnya, lihat Create an edge node pool dan Add an edge node.
-
Anda telah menginstal suite AI cloud-native dan menerapkan komponen ack-fluid.
PentingJika Anda telah menginstal Fluid versi open source, uninstal terlebih dahulu sebelum menerapkan komponen ack-fluid.
-
Jika suite AI cloud-native belum diinstal: aktifkan Fluid data acceleration saat menginstal suite tersebut. Untuk informasi selengkapnya, lihat Deploy the AI suite console.
-
Jika suite AI cloud-native sudah diinstal: terapkan ack-fluid pada halaman Cloud-native AI Suite di ACK Console.
-
-
Anda telah terhubung ke kluster Kubernetes menggunakan kubectl. Untuk informasi selengkapnya, lihat Connect to an ACK cluster by using kubectl.
-
Anda telah mengaktifkan Object Storage Service (OSS). Untuk informasi selengkapnya, lihat Activate OSS.
Langkah 1: Siapkan data OSS
-
Jalankan perintah berikut untuk mengunduh data uji ke instans ECS.
wget https://archive.apache.org/dist/spark/spark-3.0.1/spark-3.0.1-bin-hadoop2.7.tgz -
Unggah data uji yang telah diunduh ke bucket OSS.
PentingLangkah-langkah berikut menggunakan contoh instans ECS yang menjalankan Alibaba Cloud Linux 3.2104 LTS 64-bit untuk menunjukkan cara mengunggah data ke OSS. Untuk sistem operasi lainnya, lihat ossutil quick start dan ossutil command reference 1.0.
-
Buat bucket bernama
examplebucket.-
Jalankan perintah berikut untuk membuat
examplebucket.ossutil mb oss://examplebucket -
Output berikut menunjukkan bahwa
examplebuckettelah dibuat.0.668238(s) elapsed
-
-
Unggah data uji yang telah diunduh ke bucket
examplebucket.ossutil cp spark-3.0.1-bin-hadoop2.7.tgz oss://examplebucket
Langkah 2: Buat Dataset dan JindoRuntime
-
Buat file
resource.yamldengan konten berikut. File ini memiliki dua tujuan:-
Membuat Dataset, yang mendeskripsikan dataset remote dan menyediakan informasi tentang sistem file dasar (UFS).
-
Membuat JindoRuntime untuk meluncurkan kluster JindoFS guna caching data.
apiVersion: data.fluid.io/v1alpha1 kind: Dataset metadata: name: hadoop spec: nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: alibabacloud.com/nodepool-id operator: In values: - npxxxxxxxxxxxxxx mounts: - mountPoint: oss://<oss_bucket>/<bucket_dir> options: fs.oss.endpoint: <oss_endpoint> name: hadoop path: "/" encryptOptions: - name: fs.oss.accessKeyId valueFrom: secretKeyRef: name: mysecret key: fs.oss.accessKeyId - name: fs.oss.accessKeySecret valueFrom: secretKeyRef: name: mysecret key: fs.oss.accessKeySecret --- apiVersion: data.fluid.io/v1alpha1 kind: JindoRuntime metadata: name: hadoop spec: nodeSelector: alibabacloud.com/nodepool-id: npxxxxxxxxxxxxxx replicas: 2 tieredstore: levels: - mediumtype: MEM path: /dev/shm volumeType: emptyDir quota: 2Gi high: "0.99" low: "0.95"Catatan-
Dalam kluster ACK Edge, Anda harus menggunakan
nodeAffinitydannodeSelectoruntuk menerapkan Dataset dan JindoRuntime ke kelompok node yang sama. Hal ini memastikan bahwa node dalam kelompok node tersebut dapat berkomunikasi. -
Karena manajemen node edge dan akses OSS keduanya memerlukan komunikasi jaringan cloud-to-edge, kami menyarankan agar Anda memastikan lebar pita jaringan yang mencukupi untuk menjaga stabilitas saluran kontrol.
Tabel berikut menjelaskan parameter-parameter tersebut.
Parameter
Deskripsi
mountPoint
oss://<oss_bucket>/<bucket_dir>menentukan path UFS yang akan dipasang. Path ini harus mengarah ke direktori, bukan file tunggal. Jangan sertakan endpoint dalam path ini.fs.oss.endpoint
replicas
mediumtype
path
quota
high
low
-
Langkah 3: Uji akselerasi akses data
-
Buat file bernama app.yaml dengan konten berikut.
apiVersion: v1 kind: Pod metadata: name: demo-app spec: nodeSelector: alibabacloud.com/nodepool-id: npxxxxxxxxxxxxx containers: - name: demo image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6 volumeMounts: - mountPath: /data name: hadoop volumes: - name: hadoop persistentVolumeClaim: claimName: hadoopCatatanDalam kluster ACK Edge, Anda harus menggunakan
nodeSelectoruntuk menerapkan pod uji ke kelompok node yang ditentukan dalam Langkah 2. -
Buka shell di dalam pod dan periksa ukuran file.
kubectl exec -it demo-app -- bash du -sh /data/spark-3.0.1-bin-hadoop2.7.tgzOutput yang diharapkan:
210M /data/spark-3.0.1-bin-hadoop2.7.tgz
(Opsional) Pembersihan
Saat akselerasi data tidak lagi diperlukan, hapus pod, Dataset, dan JindoRuntime.
Hapus pod:
kubectl delete pod demo-app
Hapus Dataset dan JindoRuntime:
kubectl delete dataset hadoop