All Products
Search
Document Center

Object Storage Service:Kueri data OSS menggunakan Apache Impala (CDH6)

Last Updated:Mar 21, 2026

Cloudera's Distribution Including Apache Hadoop (CDH) adalah distribusi Apache Hadoop. Object Storage Service (OSS) mendukung Hadoop 3.0.0. Panduan ini menjelaskan cara mengaktifkan komponen CDH 6 seperti Hadoop, Hive, Spark, dan Impala untuk mengkueri data OSS dengan memandu Anda melalui seluruh proses konfigurasi: menghubungkan CDH ke OSS, menambahkan JAR OSS yang diperlukan ke classpath Impala, serta memverifikasi pengaturan menggunakan kueri benchmark TPC-DS.

Panduan ini menggunakan CDH 6.0.1 sebagai versi referensi.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Kluster CDH 6 yang sedang Berjalan. Untuk instruksi penyiapan, lihat Cloudera Installation Guide.

  • Akses jaringan dari semua node kluster ke Titik akhir OSS di Wilayah target Anda

  • ID AccessKey dan Rahasia AccessKey Alibaba Cloud dengan izin baca/tulis pada bucket target

Langkah 1: Tambahkan konfigurasi OSS

Gunakan alat manajemen kluster Cloudera Manager (CM) untuk menambahkan parameter berikut. Jika CM tidak mengelola kluster Anda, tambahkan parameter yang sama secara langsung ke core-site.xml.

ParameterDeskripsiNilai yang direkomendasikan
fs.oss.endpointTitik akhir untuk wilayah tempat bucket Anda beradaoss-cn-zhangjiakou-internal.aliyuncs.com
fs.oss.accessKeyIdID AccessKey yang digunakan untuk mengakses OSSID AccessKey Anda
fs.oss.accessKeySecretRahasia AccessKey yang digunakan untuk mengakses OSSRahasia AccessKey Anda
fs.oss.implKelas implementasi sistem file OSS Hadooporg.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem
fs.oss.buffer.dirDirektori file sementara untuk buffering lokal/tmp/oss
fs.oss.connection.secure.enabledApakah HTTPS diaktifkan. Mengaktifkan HTTPS mengurangi throughput.false
fs.oss.connection.maximumJumlah maksimum koneksi bersamaan ke OSS2048

Untuk referensi parameter lengkap, lihat dokumentasi modul Hadoop-Aliyun.

Setelah menyimpan konfigurasi, restart kluster sesuai permintaan CM.

Verifikasi koneksi OSS

Jalankan perintah berikut untuk memastikan Hadoop dapat membaca dari dan menulis ke OSS:

# Daftar objek di bucket Anda
hadoop fs -ls oss://${your-bucket-name}/

# Buat direktori uji coba
hadoop fs -mkdir oss://${your-bucket-name}/hadoop-test

Jika kedua perintah berhasil, konfigurasi sudah benar. Jika salah satu gagal, periksa nilai parameter — terutama fs.oss.endpoint dan kredensial AccessKey.

Seluruh konten dalam ${} adalah Variabel lingkungan. Modifikasi variabel lingkungan tersebut.

Langkah 2: Konfigurasikan Apache Impala

CDH 6 secara default sudah mendukung OSS, tetapi classpath Impala tidak menyertakan file JAR OSS yang diperlukan. Lakukan langkah-langkah berikut di setiap node Impala.

Buat tautan simbolik

Buka direktori ${CDH_HOME}/lib/impala dan buat tautan simbolik ke file JAR OSS:

cd lib/
ln -s ../../../jars/hadoop-aliyun-3.0.0-cdh6.0.1.jar hadoop-aliyun.jar
ln -s ../../../jars/aliyun-sdk-oss-2.8.3.jar aliyun-sdk-oss-2.8.3.jar
ln -s ../../../jars/jdom-1.1.jar jdom-1.1.jar

Perbarui CLASSPATH di file startup Impala

Buka direktori ${CDH_HOME}/bin. Di masing-masing tiga file — impalad, statestored, dan catalogd — tambahkan baris berikut tepat sebelum perintah exec terakhir:

export CLASSPATH=${CLASSPATH}:${IMPALA_HOME}/lib/hadoop-aliyun.jar:${IMPALA_HOME}/lib/aliyun-sdk-oss-2.8.3.jar:${IMPALA_HOME}/lib/jdom-1.1.jar

Setelah memperbarui ketiga file tersebut, restart proses Impala terkait di semua node.

Langkah 3: Verifikasi dengan kueri TPC-DS

Jalankan kueri benchmark TPC-DS terhadap data OSS untuk memastikan Impala dapat mengkueri OSS dengan benar.

Kueri TPC-DS ditulis dalam HiveQL. SQL Impala sangat kompatibel dengan HiveQL, sehingga sebagian besar kueri TPC-DS dapat dijalankan di Impala tanpa modifikasi. Sebagian kecil kueri menggunakan sintaks yang tidak didukung Impala dan harus dilewati atau disesuaikan.

Sebagai referensi, lihat Apache Impala dan repositori hive-testbench.

Hasilkan data sampel

Clone repositori hive-testbench dan hasilkan set data TPC-DS (faktor skala 50) di OSS:

git clone https://github.com/hortonworks/hive-testbench.git
cd hive-testbench
git checkout hive14
./tpcds-build.sh
FORMAT=textfile ./tpcds-setup.sh 50 oss://{your-bucket-name}/

Buat tabel eksternal

Gunakan pernyataan DDL di ddl-tpcds/text/alltables.sql untuk membuat tabel yang mengarah ke data OSS. Ganti ${LOCATION} di setiap pernyataan dengan path OSS yang sesuai.

Contoh berikut membuat tabel eksternal call_center:

CREATE EXTERNAL TABLE call_center(
      cc_call_center_sk         bigint
,     cc_call_center_id         string
,     cc_rec_start_date         string
,     cc_rec_end_date           string
,     cc_closed_date_sk         bigint
,     cc_open_date_sk           bigint
,     cc_name                   string
,     cc_class                  string
,     cc_employees              int
,     cc_sq_ft                  int
,     cc_hours                  string
,     cc_manager                string
,     cc_mkt_id                 int
,     cc_mkt_class              string
,     cc_mkt_desc               string
,     cc_market_manager         string
,     cc_division               int
,     cc_division_name          string
,     cc_company                int
,     cc_company_name           string
,     cc_street_number          string
,     cc_street_name            string
,     cc_street_type            string
,     cc_suite_number           string
,     cc_city                   string
,     cc_county                 string
,     cc_state                  string
,     cc_zip                    string
,     cc_country                string
,     cc_gmt_offset             double
,     cc_tax_percentage         double
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
LOCATION 'oss://{your-bucket-name}/50/call_center';
Penting

Gunakan CREATE EXTERNAL TABLE, bukan CREATE TABLE, untuk tabel yang didukung OSS.

Verifikasi bahwa ke-24 tabel telah dibuat:

SHOW TABLES;

Jalankan kueri TPC-DS

Hubungkan ke shell Impala dan jalankan salah satu file SQL yang tersedia:

impala-shell -i cdh-slave01 -d default -f sample-queries-tpcds/query13.sql

Kueri dalam query13.sql melakukan join enam tabel — store, store_sales, customer_demographics, household_demographics, customer_address, dan date_dim — serta mengembalikan metrik agregat penjualan. Eksekusi yang berhasil menghasilkan output seperti berikut:

+-------------------+-------------------------+----------------------------+----------------------------+
| avg(ss_quantity)  | avg(ss_ext_sales_price) | avg(ss_ext_wholesale_cost) | sum(ss_ext_wholesale_cost) |
+-------------------+-------------------------+----------------------------+----------------------------+
| 30.87106918238994 | 2352.642327044025       | 2162.600911949685          | 687707.09                  |
+-------------------+-------------------------+----------------------------+----------------------------+
Fetched 1 row(s) in 353.16s

Direktori sample-queries-tpcds/ berisi file SQL tambahan (query3.sql hingga query98.sql) untuk pengujian performa yang lebih luas.

Batasan

Perhatikan batasan berikut saat menggunakan Impala untuk mengkueri data OSS:

  • Kompatibilitas kueri TPC-DS: Sebagian besar kueri TPC-DS dapat dijalankan di Impala tanpa modifikasi, tetapi sebagian kecil menggunakan sintaks HiveQL yang tidak didukung Impala. Lewati atau sesuaikan kueri tersebut.

  • Jenis tabel: Selalu gunakan CREATE EXTERNAL TABLE untuk tabel yang didukung OSS.

  • Performa: Latensi kueri OSS lebih tinggi dibandingkan HDFS. OSS paling cocok untuk data dingin atau beban kerja arsip di mana efisiensi biaya lebih penting daripada kecepatan kueri.

Langkah selanjutnya

Referensi