Anda dapat menggunakan E-MapReduce (EMR) JindoFS dalam mode cache untuk terhubung ke Object Storage Service (OSS) yang digunakan sebagai data lake.
Informasi latar belakang
Anda dapat menggunakan EMR JindoFS dalam mode cache atau penyimpanan blok untuk terhubung ke OSS.
Ketika menggunakan JindoFS dalam mode cache, file disimpan sebagai objek di OSS, dan objek yang sering diakses akan disimpan di disk lokal kluster EMR untuk meningkatkan efisiensi akses data. Dalam mode ini, JindoFS dapat mengakses objek di OSS tanpa perlu mengonversi format objek. JindoFS sepenuhnya kompatibel dengan klien OSS. Untuk informasi lebih lanjut, lihat Gunakan JindoFS dalam mode cache.
Mode penyimpanan blok memastikan operasi baca dan tulis yang efisien serta aksesibilitas metadata yang tinggi. JindoFS menggunakan OSS sebagai backend penyimpanan. Dalam mode ini, JindoFS menyimpan data sebagai blok di OSS dan menggunakan Namespace Service untuk memelihara metadata. Hal ini memastikan performa tinggi saat membaca dan menulis data atau mengakses metadata. Untuk informasi lebih lanjut, lihat Gunakan JindoFS dalam mode penyimpanan blok.
Prasyarat
Kluster EMR telah dibuat. Untuk informasi lebih lanjut, lihat Buat kluster.
Sebelum membuat kluster, perhatikan hal-hal berikut:
Kluster EMR dan OSS milik akun Alibaba Cloud yang sama. Disarankan agar kluster EMR dan Bucket OSS berada di wilayah yang sama.
Saat membuat kluster, aktifkan Assign Public IP Address untuk mengakses kluster melalui Internet dan Remote Logon untuk masuk ke server jarak jauh menggunakan Shell.
SmartData dan Bigboot adalah layanan dependen untuk konfigurasi JindoFS. Jika layanan ini tidak dipilih secara default, pilih layanan tersebut.
Tugas pengiriman telah dibuat. Untuk informasi lebih lanjut, lihat Gunakan konsol Tablestore untuk mengirimkan data ke OSS.
Prosedur
Gunakan EMR JindoFS dalam mode cache untuk terhubung ke OSS dan aktifkan cache lokal. Untuk informasi lebih lanjut, lihat Gunakan JindoFS dalam mode cache.
Setelah mengaktifkan cache lokal, blok data panas akan disimpan di disk lokal. Secara default, fitur ini dinonaktifkan, yang berarti EMR langsung membaca data dari OSS. Setelah mengaktifkan cache lokal, Jindo secara otomatis mengelola data yang disimpan. Jindo membersihkan data berdasarkan penggunaan ruang disk yang dikonfigurasikan. Konfigurasikan penggunaan untuk membersihkan data yang tersimpan dan sesuaikan penggunaan ruang disk lokal.
Mulai Spark SQL.
Gunakan alat logon jarak jauh seperti PuTTY untuk masuk ke server EMR Header.
Jalankan perintah berikut untuk menjalankan Spark SQL:
spark-sql --master yarn --num-executors 5 --executor-memory 1g --executor-cores 2
Gunakan pernyataan SQL untuk membuat tabel eksternal yang memetakan ke folder OSS.
Dapatkan pernyataan SQL di konsol Tablestore. Contoh berikut hanya digunakan sebagai referensi:
CREATE EXTERNAL TABLE lineitem (l_orderkey bigint,l_linenumber bigint,l_receiptdate string,l_returnflag string,l_tax double,l_shipmode string,l_suppkey bigint,l_shipdate string,l_commitdate string,l_partkey bigint,l_quantity double,l_comment string,l_linestatus string,l_extendedprice double,l_discount double,l_shipinstruct string) PARTITIONED BY (`year` int, `month` int) STORED AS PARQUET LOCATION 'jfs://test/' ;
Untuk mendapatkan pernyataan SQL di konsol Tablestore, gunakan metode berikut:
Pada tab Deliver Data to OSS, klik Lihat Pernyataan SQL untuk Membuat Tabel di kolom Actions yang sesuai dengan tugas pengiriman. Anda dapat melihat dan menyalin pernyataan SQL. Gambar berikut menunjukkan contoh pernyataan SQL yang digunakan untuk membuat tabel eksternal.

Eksekusi pernyataan SQL berikut untuk memuat partisi data dari sumber OSS.
lineitem adalah nama tabel eksternal.
msck repair table lineitem;
Kueri data.
select * from lineitem limit 1;