JindoSDK adalah klien Layanan Penyimpanan Objek (OSS) yang mudah digunakan dan dioptimalkan untuk ekosistem Hadoop dan Spark. Ini menyediakan implementasi Hadoop FileSystem yang sangat dioptimalkan untuk OSS, menawarkan performa lebih baik dibandingkan klien OSS komunitas Hadoop ketika digunakan dengan Impala untuk menanyakan data di layanan OSS-HDFS.
Prasyarat
Secara default, sebuah Akun Alibaba Cloud memiliki izin untuk mengakses layanan OSS-HDFS dari kluster non-EMR dan melakukan operasi umum. Jika Anda ingin menggunakan Pengguna Resource Access Management (RAM) untuk mengakses layanan OSS-HDFS, Pengguna RAM tersebut harus diberikan izin yang diperlukan. Untuk informasi lebih lanjut, lihat Berikan Pengguna RAM Izin untuk Mengakses Layanan OSS-HDFS dari Kluster Non-EMR.
Sebuah Instance ECS telah dibeli untuk digunakan sebagai lingkungan penerapan. Untuk informasi lebih lanjut, lihat Beli Sebuah Instance ECS.
Sebuah lingkungan runtime Hadoop telah dibuat. Untuk informasi lebih lanjut, lihat Buat Lingkungan Runtime Hadoop.
Layanan OSS-HDFS diaktifkan untuk sebuah bucket, dan Anda telah diberi izin untuk mengakses layanan tersebut. Untuk informasi lebih lanjut, lihat Aktifkan Layanan OSS-HDFS.
Prosedur
Sambungkan ke sebuah Instance ECS. Untuk informasi lebih lanjut, lihat Sambungkan ke Sebuah Instance.
Konfigurasikan JindoSDK.
Unduh versi terbaru paket JAR JindoSDK. Untuk informasi lebih lanjut, lihat tautan unduhan di GitHub.
Ekstrak paket JAR JindoSDK.
Kode contoh berikut menunjukkan cara mengekstrak paket bernama
jindosdk-x.x.x-linux.tar.gz. Jika Anda menggunakan versi JindoSDK yang berbeda, ganti nama paket dengan nama sebenarnya dari paket Anda.tar zxvf jindosdk-x.x.x-linux.tar.gzCatatanx.x.x mewakili nomor versi paket JAR JindoSDK.
Salin paket JAR JindoSDK yang diunduh ke classpath Impala.
cp jindosdk-x.x.x-linux/lib/*.jar $HIVE_HOME/lib/
Konfigurasikan kelas implementasi untuk layanan OSS-HDFS dan Pasangan Kunci Akses.
Konfigurasikan kelas implementasi untuk layanan OSS-HDFS dalam file core-site.xml Impala.
<configuration> <property> <name>fs.AbstractFileSystem.oss.impl</name> <value>com.aliyun.jindodata.oss.JindoOSS</value> </property> <property> <name>fs.oss.impl</name> <value>com.aliyun.jindodata.oss.JindoOssFileSystem</value> </property> </configuration>Dalam file core-site.xml Impala, konfigurasikan ID AccessKey dan Rahasia AccessKey untuk bucket tempat layanan OSS-HDFS diaktifkan.
<configuration> <property> <name>fs.oss.accessKeyId</name> <value>LTAI********</value> </property> <property> <name>fs.oss.accessKeySecret</name> <value>KZo1********</value> </property> </configuration>
Konfigurasikan titik akhir layanan OSS-HDFS.
Untuk mengakses sebuah bucket OSS menggunakan layanan OSS-HDFS, Anda harus mengonfigurasi sebuah titik akhir. Format jalur yang direkomendasikan adalah
oss://{yourBucketName}.{yourBucketEndpoint}/{path}. Sebagai contoh:oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampleobject.txt. Setelah konfigurasi selesai, JindoSDK menggunakan titik akhir dalam jalur akses untuk mengakses antarmuka layanan OSS-HDFS.Anda juga dapat mengonfigurasi titik akhir layanan OSS-HDFS dengan cara lain. Metode konfigurasi ini memiliki urutan prioritas. Untuk informasi lebih lanjut, lihat Lampiran 1: Cara Lain untuk Mengonfigurasi Sebuah Titik Akhir.
Gunakan Impala untuk menanyakan data di layanan OSS-HDFS.
Buat sebuah tabel.
CREATE EXTERNAL TABLE customer_demographics ( `cd_demo_sk` INT, `cd_gender` STRING, `cd_marital_status` STRING, `cd_education_status` STRING, `cd_purchase_estimate` INT, `cd_credit_rating` STRING, `cd_dep_count` INT, `cd_dep_employed_count` INT, `cd_dep_college_count` INT) STORED AS PARQUET LOCATION 'oss://bucket.endpoint/dir';Tanyakan data dalam tabel.
select * from customer_demographics;