Gerbang Kyuubi menyediakan antarmuka Java Database Connectivity (JDBC) dan Open Database Connectivity (ODBC), memungkinkan Anda menghubungkan Serverless Spark ke alat kueri SQL dan alat business intelligence (BI), seperti Tableau dan Power BI, untuk akses dan analisis data yang efisien. Gerbang ini juga mendukung aplikasi enterprise melalui fitur isolasi resource multi-tenant.
Buat Gerbang Kyuubi
-
Buka halaman Gateway.
-
Login ke Konsol EMR.
-
Pada panel navigasi di sebelah kiri, pilih EMR Serverless > Spark.
-
Pada halaman Spark, klik nama ruang kerja yang dituju.
-
Pada halaman EMR Serverless Spark, klik pada panel navigasi di sebelah kiri.
-
-
Pada halaman Kyuubi Gateway, klik Create Kyuubi Gateway.
-
Pada halaman Create Kyuubi Gateway, konfigurasikan parameter dan klik create.
Parameter
Deskripsi
Name
Nama gerbang baru. Nama hanya boleh berisi huruf kecil, angka, dan tanda hubung (-). Nama harus dimulai dan diakhiri dengan huruf atau angka.
Kyuubi Gateway Resources
Nilai default adalah
2 CPU, 8 GB.Spesifikasi yang didukung dan konkurensi maksimum yang direkomendasikan sebagai berikut:
-
1 CPU, 4 GB: 10 -
2 CPU, 8 GB: 20 -
4 CPU, 16 GB: 30 -
8 CPU, 32 GB: 45 -
16 CPU, 64 GB: 85 -
32 CPU, 128 GB: 135
CatatanBanyak item konfigurasi Spark dapat mengurangi konkurensi pengiriman instan untuk tugas Spark.
Kyuubi Version
Versi Kyuubi yang digunakan oleh gerbang saat ini.
CatatanJika Anda menggunakan DLF (sebelumnya DLF 2.5) pada Catalogs, Anda harus mengatur Kyuubi Version ke 1.9.2-0.0.1 atau versi yang lebih baru.
Engine Version
Versi engine yang digunakan oleh gerbang saat ini. Untuk informasi lebih lanjut tentang nomor versi engine, lihat Engine versions.
Associated Queue
Gerbang yang dibuat akan dideploy di antrian yang dipilih. Saat Anda mengirimkan tugas Spark melalui gerbang, tugas tersebut dikirim menggunakan identitas pembuat gerbang.
Authentication Method
Hanya otentikasi berbasis token yang didukung.
Setelah membuat gerbang, Anda harus menghasilkan token otentikasi unik untuknya. Token ini digunakan untuk verifikasi identitas dan kontrol akses dalam permintaan selanjutnya. Untuk informasi lebih lanjut tentang cara membuat token, lihat Gateway management.
High Service Availability
Setelah Anda mengaktifkan high availability (HA) layanan, tiga atau lebih server Kyuubi akan dideploy untuk menjamin HA.
Setelah mengaktifkan sakelar ini, Anda juga harus mengonfigurasi parameter berikut:
-
Number of Kyuubi Servers: Jumlah server Kyuubi.
-
Zookeeper cluster address: Gerbang Kyuubi ber-HA bergantung pada kluster Zookeeper. Masukkan titik akhir kluster Zookeeper. Pisahkan beberapa node dengan koma (,). Pastikan jaringan terhubung. Contoh:
zk1:2181,zk2:2181,zk3:2181.
Normal Network Connection
Pilih koneksi jaringan yang sudah ada untuk mengakses sumber data di VPC atau layanan eksternal. Untuk informasi lebih lanjut tentang cara membuat koneksi jaringan, lihat Network connectivity between EMR Serverless Spark and other VPCs.
Endpoint(Public)
Fitur ini dinonaktifkan secara default. Jika Anda mengaktifkan fitur ini, sistem mengakses Kyuubi melalui titik akhir publik. Jika tidak, Kyuubi diakses melalui titik akhir internal wilayah yang sama secara default.
Kyuubi Configuration
Masukkan informasi konfigurasi Kyuubi. Secara default, parameter dipisahkan dengan spasi. Contoh:
kyuubi.engine.pool.size 1.Hanya konfigurasi Kyuubi berikut yang didukung.
kyuubi.engine.pool.size kyuubi.engine.pool.size.threshold kyuubi.engine.share.level kyuubi.engine.single.spark.session kyuubi.session.engine.idle.timeout kyuubi.session.engine.initialize.timeout kyuubi.engine.security.token.max.lifetime kyuubi.session.engine.check.interval kyuubi.session.idle.timeout kyuubi.session.engine.request.timeout kyuubi.session.engine.login.timeout kyuubi.backend.engine.exec.pool.shutdown.timeout kyuubi.backend.server.exec.pool.shutdown.timeout kyuubi.backend.server.exec.pool.keepalive.time kyuubi.frontend.thrift.login.timeout kyuubi.operation.status.polling.timeout kyuubi.engine.pool.selectPolicy kyuubi.authentication kyuubi.kinit.principal kyuubi.kinit.keytab kyuubi.authentication.ldap.* kyuubi.hadoop.proxyuser.hive.hosts kyuubi.hadoop.proxyuser.hive.groups kyuubi.hadoop.proxyuser.kyuubi.hosts kyuubi.hadoop.proxyuser.kyuubi.groups kyuubi.ha.*Spark Configuration
Masukkan informasi konfigurasi Spark. Secara default, parameter dipisahkan dengan spasi. Semua parameter didukung kecuali yang bertipe
spark.kubernetes.*. Contoh:spark.sql.catalog.paimon.metastore dlf. -
-
Pada halaman Kyuubi Gateway, temukan gerbang yang telah Anda buat dan klik START di kolom Actions.
Kelola token
-
Pada halaman Kyuubi Gateway, temukan gerbang yang dituju dan klik Token Management di kolom Actions.
-
Klik Create Token.
-
Pada kotak dialog Create Token, konfigurasikan parameter dan klik OK.
Parameter
Deskripsi
Name
Nama token baru.
Expired At
Tetapkan waktu hidup (TTL) untuk token. Jumlah hari harus lebih besar dari atau sama dengan 1. Secara default, fitur ini diaktifkan dan token kedaluwarsa setelah 365 hari.
Assign Object
Catatan-
Jika Anda menggunakan DLF (sebelumnya DLF 2.5) secara default pada tab Catalogs, Anda harus mengonfigurasi parameter ini.
-
Pastikan Pengguna Resource Access Management (RAM) atau Peran RAM yang dikonfigurasi memiliki izin untuk mengakses DLF. Untuk informasi lebih lanjut tentang cara memberikan izin, lihat Add an authorization.
-
Pengguna RAM atau Peran RAM harus ditambahkan ke ruang kerja Spark sebelum muncul dalam daftar drop-down Assign Object. Untuk informasi lebih lanjut, lihat Manage users and roles.
Dari daftar drop-down, pilih Pengguna RAM atau Peran RAM yang telah Anda tambahkan di Access Control.
Tentukan Pengguna RAM atau Peran RAM yang akan diberi token. Pengguna atau peran ini digunakan untuk mengakses DLF saat Anda terhubung ke Gerbang Kyuubi untuk mengirimkan tugas Spark.
-
-
Salin informasi token.
PentingSetelah token dibuat, Anda harus segera menyalin informasi tokennya karena tidak dapat dilihat lagi nanti. Jika token kedaluwarsa atau hilang, Anda harus membuat atau mengatur ulang token tersebut.
Terhubung ke Gerbang Kyuubi
Saat terhubung ke Gerbang Kyuubi, ganti placeholder dalam URL JDBC dengan informasi aktual Anda:
-
<endpoint>: Titik akhir yang dapat Anda peroleh dari tab Overview. -
<port>: Nomor port. Gunakan port 443 untuk akses titik akhir publik dan port 80 untuk akses titik akhir internal wilayah yang sama. -
<token>: Token yang telah Anda salin dari tab Token Management. -
<tokenname>: Nama token. Anda dapat memperoleh nama tersebut dari tab Token Management. -
<UserName/RoleName>: Pengguna RAM atau Peran RAM yang telah Anda tambahkan di Access Control.
Terhubung menggunakan Beeline
Saat terhubung ke Gerbang Kyuubi, pastikan versi Beeline Anda kompatibel dengan versi sisi server Kyuubi. Jika belum menginstal Beeline, lihat Getting Started - Apache Kyuubi.
Lakukan salah satu operasi berikut berdasarkan katalog default yang digunakan pada halaman Catalogs.
Gunakan DLF (sebelumnya DLF 2.5)
beeline -u "jdbc:hive2://<endpoint>:<port>/;transportMode=http;user=<UserName/RoleName>;httpPath=cliservice/token/<token>"
Gunakan katalog lain
beeline -u "jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>"
Saat terhubung menggunakan Beeline, Anda dapat memodifikasi parameter sesi. Contoh: beeline -u "jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>;#spark.sql.shuffle.partitions=100;spark.executor.instances=2;".
Terhubung menggunakan Java
-
Perbarui file pom.xml.
Ganti
hadoop-commondanhive-jdbcdengan versi dependensi yang sesuai.<dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>2.3.9</version> </dependency> </dependencies> -
Tulis kode Java untuk terhubung ke Gerbang Kyuubi.
Lakukan salah satu operasi berikut berdasarkan katalog default yang digunakan pada halaman Catalogs.
Gunakan DLF (sebelumnya DLF 2.5)
import org.apache.hive.jdbc.HiveStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; public class Main { public static void main(String[] args) throws Exception { String url = "jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>;user=<UserName/RoleName>"; Class.forName("org.apache.hive.jdbc.HiveDriver"); Connection conn = DriverManager.getConnection(url); HiveStatement stmt = (HiveStatement) conn.createStatement(); String sql = "select * from students;"; System.out.println("Running " + sql); ResultSet res = stmt.executeQuery(sql); ResultSetMetaData md = res.getMetaData(); String[] columns = new String[md.getColumnCount()]; for (int i = 0; i < columns.length; i++) { columns[i] = md.getColumnName(i + 1); } while (res.next()) { System.out.print("Row " + res.getRow() + "=["); for (int i = 0; i < columns.length; i++) { if (i != 0) { System.out.print(", "); } System.out.print(columns[i] + "='" + res.getObject(i + 1) + "'"); } System.out.println(")]"); } conn.close(); } }Gunakan katalog lain
import org.apache.hive.jdbc.HiveStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; public class Main { public static void main(String[] args) throws Exception { String url = "jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>"; Class.forName("org.apache.hive.jdbc.HiveDriver"); Connection conn = DriverManager.getConnection(url); HiveStatement stmt = (HiveStatement) conn.createStatement(); String sql = "select * from students;"; System.out.println("Running " + sql); ResultSet res = stmt.executeQuery(sql); ResultSetMetaData md = res.getMetaData(); String[] columns = new String[md.getColumnCount()]; for (int i = 0; i < columns.length; i++) { columns[i] = md.getColumnName(i + 1); } while (res.next()) { System.out.print("Row " + res.getRow() + "=["); for (int i = 0; i < columns.length; i++) { if (i != 0) { System.out.print(", "); } System.out.print(columns[i] + "='" + res.getObject(i + 1) + "'"); } System.out.println(")]"); } conn.close(); } }
Terhubung menggunakan Python
-
Jalankan perintah berikut untuk menginstal paket PyHive dan Thrift.
pip3 install pyhive thrift -
Tulis skrip Python untuk terhubung ke Gerbang Kyuubi.
Contoh berikut menunjukkan skrip Python yang terhubung ke Gerbang Kyuubi dan menampilkan daftar database.
Lakukan salah satu operasi berikut berdasarkan katalog default yang digunakan pada halaman Catalogs.
Gunakan DLF (sebelumnya DLF 2.5)
from pyhive import hive if __name__ == '__main__': cursor = hive.connect('<endpoint>', port="<port>", scheme='http', username='<UserName/RoleName>', password='<token>').cursor() cursor.execute('show databases') print(cursor.fetchall()) cursor.close()Gunakan katalog lain
from pyhive import hive if __name__ == '__main__': cursor = hive.connect('<endpoint>', port="<port>", scheme='http', username='<tokenname>', password='<token>').cursor() cursor.execute('show databases') print(cursor.fetchall()) cursor.close()
Terhubung menggunakan REST API
Gerbang Kyuubi menyediakan REST API yang kompatibel dengan open-source untuk berinteraksi dengan layanan Kyuubi melalui HTTP. Saat ini, hanya path API berikut yang didukung:
-
/api/v1/sessions/* -
/api/v1/operations/* -
/api/v1/batches/*
Contoh berikut menunjukkan cara menggunakan REST API untuk terhubung ke Gerbang Kyuubi.
-
Contoh 1: Mulai sesi dan lakukan kueri SQL.
-
Buat sesi dan tentukan konfigurasi Spark.
Lakukan salah satu operasi berikut berdasarkan katalog default yang digunakan pada halaman Catalogs.
Catatan-
spark.emr.serverless.kyuubi.engine.queuemenentukan antrian yang digunakan oleh tugas Spark saat runtime. Ganti<dev_queue>dengan nama antrian aktual. -
Ganti
<UserName/Rolename>dengan nama pengguna atau nama peran aktual. -
<password>adalah placeholder. Anda dapat memasukkan nilai apa pun.
Gunakan DLF (sebelumnya DLF 2.5)
curl -X 'POST' \ 'http://<endpoint>:<port>/api/v1/sessions/token/<token>' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -u '<UserName/Rolename>:<password>' \ -d '{ "configs": { "set:hivevar:spark.emr.serverless.kyuubi.engine.queue": "<dev_queue>" } }'Gunakan katalog lain
curl -X 'POST' \ 'http://<endpoint>:<port>/api/v1/sessions/token/<token>' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "configs": { "set:hivevar:spark.emr.serverless.kyuubi.engine.queue": "<dev_queue>" } }'Pesan yang mirip dengan berikut akan dikembalikan. Dalam pesan tersebut,
identifieradalah handle sesi Kyuubi, yang secara unik mengidentifikasi sesi. Dalam topik ini, nilai ini disebut sebagai<sessionHandle>.{"identifier":"619e6ded-xxxx-xxxx-xxxx-c2a43f6fac46","kyuubiInstance":"0.0.0.0:10099"} -
-
Buat statement.
Gunakan DLF (sebelumnya DLF 2.5)
curl -X 'POST' \ 'http://<endpoint>:<port>/api/v1/sessions/<sessionHandle>/operations/statement/token/<token>' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -u '<UserName/RoleName>:<password>' \ -d '{ "statement": "select * from test;", "runAsync": true, "queryTimeout": 0, "confOverlay": { "additionalProp1": "string", "additionalProp2": "string" } }'Gunakan katalog lain
curl -X 'POST' \ 'http://<endpoint>:<port>/api/v1/sessions/<sessionHandle>/operations/statement/token/<token>' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "statement": "select * from test;", "runAsync": true, "queryTimeout": 0, "confOverlay": { "additionalProp1": "string", "additionalProp2": "string" } }'Pesan yang mirip dengan berikut akan dikembalikan. Dalam pesan tersebut,
identifieradalah handle operasi Kyuubi, yang secara unik mengidentifikasi operasi tertentu. Dalam topik ini, nilai ini disebut sebagai<operationHandle>.{"identifier":"a743e8ff-xxxx-xxxx-xxxx-a66fec66cfa4"} -
Ambil status pernyataan.
Gunakan DLF (sebelumnya DLF 2.5)
curl --location -X 'GET' \ 'http://<endpoint>:<port>/api/v1/operations/<operationHandle>/event/token/<token>' \ -H 'accept: application/json' \ -u '<UserName/RoleName>:<password>'Gunakan katalog lain
curl --location -X 'GET' \ 'http://<endpoint>:<port>/api/v1/operations/<operationHandle>/event/token/<token>' \ -H 'accept: application/json' -
Ambil hasil statement.
Gunakan DLF (sebelumnya DLF 2.5)
curl --location -X 'GET' \ 'http://<endpoint>:<port>/api/v1/operations/<operationHandle>/rowset/token/<token>/?maxrows=100&fetchorientation=FETCH_NEXT' \ -H 'accept: application/json' \ -u '<UserName/RoleName>:<password>'Gunakan katalog lain
curl --location -X 'GET' \ 'http://<endpoint>:<port>/api/v1/operations/<operationHandle>/rowset/token/<token>/?maxrows=100&fetchorientation=FETCH_NEXT' \ -H 'accept: application/json'
-
-
Contoh 2: Gunakan API batches untuk mengirim pekerjaan batch.
Kirim pekerjaan pemrosesan batch Spark ke Gerbang Kyuubi menggunakan REST API. Gerbang Kyuubi akan memulai aplikasi Spark dan menjalankan tugas yang ditentukan berdasarkan parameter dalam permintaan.
Dalam contoh ini, selain mengganti informasi seperti
<endpoint>,<port>, dan<token>, Anda juga harus mengklik spark-examples_2.12-3.3.1.jar untuk mengunduh paket JAR uji coba.CatatanPaket JAR ini adalah contoh sederhana yang disediakan bersama Spark dan digunakan untuk menghitung nilai Pi (π).
Gunakan DLF (sebelumnya DLF 2.5)
curl --location \ --request POST 'http://<endpoint>:<port>/api/v1/batches/token/<token>' \ --user '<UserName/RoleName>:<password>' \ --form 'batchRequest="{ \"batchType\": \"SPARK\", \"className\": \"org.apache.spark.examples.SparkPi\", \"name\": \"kyuubi-spark-pi\", \"resource\": \"oss://bucket/path/to/spark-examples_2.12-3.3.1.jar\" }";type=application/json'Gunakan katalog lain
curl --location \ --request POST 'http://<endpoint>:<port>/api/v1/batches/token/<token>' \ --form 'batchRequest="{ \"batchType\": \"SPARK\", \"className\": \"org.apache.spark.examples.SparkPi\", \"name\": \"kyuubi-spark-pi\", \"resource\": \"oss://bucket/path/to/spark-examples_2.12-3.3.1.jar\" }";type=application/json'
Terhubung menggunakan Apache Superset
Apache Superset adalah platform eksplorasi dan visualisasi data modern dengan beragam jenis grafik. Untuk informasi lebih lanjut tentang Superset, lihat dokumentasi Superset.
Sebelum terhubung ke Gerbang Kyuubi menggunakan Superset, pastikan Anda telah menginstal Thrift 0.20.0 atau versi yang lebih baru. Jika belum, jalankan perintah berikut untuk menginstalnya:
pip install thrift==0.20.0
-
Jalankan Superset dan buka antarmuka Superset. Untuk informasi lebih lanjut tentang cara menjalankan Superset, lihat dokumentasi Superset.
-
Di pojok kanan atas halaman, klik DATABASE untuk membuka halaman Connect a database.
-
Pada halaman Connect a database, pilih Apache Spark SQL.
-
Pada bidang SQLAlchemy URI, masukkan string koneksi yang sesuai dengan metode akses.
Akses jaringan publik
hive+https://<username>:<token>@<endpoint>:443/<db_name>Akses jaringan VPC
hive+http://<username>:<token>@<endpoint>:80/<db_name>Tabel berikut menjelaskan parameter-parameter tersebut.
Parameter
Deskripsi
username
Nama pengguna. Anda dapat memasukkan nilai apa pun.
Token
Token akses.
Endpoint
Titik akhir akses Gerbang Kyuubi. Anda harus membedakan antara titik akhir publik dan titik akhir internal.
db_name
Nama database.
-
Klik Connect untuk menyelesaikan konfigurasi koneksi.
Terhubung menggunakan HUE
Sebelum terhubung ke Gerbang Kyuubi menggunakan HUE, pastikan Anda telah menginstal Thrift 0.20.0. Jika belum, jalankan perintah berikut untuk menginstalnya:
pip install thrift==0.20.0
-
Edit file konfigurasi HUE
/etc/hue/hue.confdan tambahkan konfigurasi yang sesuai dengan metode akses Anda.Akses jaringan publik
[[[sparksql]]] name = Spark Sql interface=sqlalchemy options='{"url": "hive+https://<username>:<token>@<endpoint>:443/"}'Akses jaringan VPC
[[[sparksql]]] name = Spark Sql interface=sqlalchemy options='{"url": "hive+http://<username>:<token>@<endpoint>:80/"}'Parameter dijelaskan dalam tabel berikut.
Parameter
Deskripsi
username
Nama pengguna. Anda dapat memasukkan nilai apa pun.
Token
Token akses.
Endpoint
Titik akhir akses Gerbang Kyuubi.
-
Restart layanan HUE.
sudo service hue restart -
Login ke antarmuka web HUE. Pada panel navigasi di sebelah kiri, pilih Query > Editor > SparkSql untuk memverifikasi koneksi.
Terhubung menggunakan DataGrip
Sebelum terhubung ke Gerbang Kyuubi menggunakan DataGrip, pastikan Anda telah mengunduh Apache Spark JDBC Driver (versi 1.2.2, untuk kompatibilitas Spark 3.x).
-
Buka DataGrip dan buat proyek baru.
-
Pada panel Database Explorer di sebelah kanan, klik ikon + dan pilih Data Source > Other > Apache Spark.
-
Pada dialog Data Sources and Drivers, konfigurasikan parameter berikut.
Parameter
Deskripsi
Name
Nama koneksi kustom.
Authentication
Pilih No auth atau User & Password. Anda dapat memasukkan nama pengguna apa pun.
Driver
Pilih Apache Spark ver. 1.2.2.
URL
Akses jaringan publik
jdbc:hive2://<endpoint>:443/;transportMode=http;httpPath=cliservice/token/<token>Akses jaringan VPC
jdbc:hive2://<endpoint>:80/;transportMode=http;httpPath=cliservice/token/<token>Di mana
<endpoint>adalah titik akhir akses Gerbang Kyuubi, dan<token>adalah token akses. -
Klik Test Connection untuk memverifikasi koneksi.

-
Klik OK untuk menyimpan konfigurasi.
Konfigurasikan dan terhubung ke Gerbang Kyuubi ber-HA
-
Buat koneksi jaringan.
Untuk membuat koneksi jaringan, lihat Establish network connectivity between EMR Serverless Spark and other VPCs. Pastikan klien Anda dapat mengakses kluster Zookeeper di VPC target. Misalnya, Anda dapat menggunakan komponen Zookeeper dari Alibaba Cloud MSE atau EMR on ECS.
-
Aktifkan high availability untuk Gerbang Kyuubi.
Saat membuat atau mengedit Gerbang Kyuubi, aktifkan High Service Availability, konfigurasikan parameter terkait, dan pilih koneksi jaringan yang telah dibuat untuk Normal Network Connection.
-
Terhubung ke Gerbang Kyuubi ber-HA.
Setelah menyelesaikan konfigurasi di atas, Gerbang Kyuubi mencapai high availability menggunakan Zookeeper. Anda dapat memverifikasi ketersediaannya menggunakan REST API atau koneksi JDBC.
Saat terhubung ke Gerbang Kyuubi, ganti placeholder dalam URL JDBC dengan informasi aktual Anda:
-
<endpoint>: Titik akhir yang dapat Anda peroleh dari tab Overview. -
<port>: Nomor port. Gunakan port 443 untuk akses titik akhir publik dan port 80 untuk akses titik akhir internal wilayah yang sama. -
<token>: Token yang telah Anda salin dari tab Token Management. -
<tokenname>: Nama token. Anda dapat memperoleh nama tersebut dari tab Token Management. -
<UserName/RoleName>: Pengguna RAM atau Peran RAM yang telah Anda tambahkan di Access Control.
Contoh berikut menunjukkan cara terhubung ke Gerbang Kyuubi ber-HA.
Terhubung menggunakan Beeline
-
Klik kyuubi-hive-jdbc-1.9.2.jar untuk mengunduh file JAR JDBC Driver.
-
Ganti file JAR JDBC Driver.
-
Cadangkan dan pindahkan file JAR JDBC Driver asli.
mv /your_path/apache-kyuubi-1.9.2-bin/beeline-jars /bak_pathCatatanJika Anda menggunakan EMR on ECS, path default untuk Kyuubi adalah
/opt/apps/KYUUBI/kyuubi-1.9.2-1.0.0/beeline-jars. Jika Anda tidak yakin dengan path instalasi Kyuubi, Anda dapat menjalankan perintahenv | grep KYUUBI_HOMEuntuk menemukannya. -
Ganti dengan file JAR JDBC Driver baru.
cp /download/serverless-spark-kyuubi-hive-jdbc-1.9.2.jar /your_path/apache-kyuubi-1.9.2-bin/beeline-jars
-
-
Terhubung menggunakan Beeline.
/your_path/apache-kyuubi-1.9.2-bin/bin/beeline -u 'jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>'
Terhubung menggunakan Java
-
Klik serverless-spark-kyuubi-hive-jdbc-shaded-1.9.2.jar untuk mengunduh paket shaded.
-
Instal JDBC Driver ke repositori Maven.
Jalankan perintah berikut untuk menginstal JDBC Driver yang disediakan oleh Serverless Spark ke repositori Maven lokal Anda.
mvn install:install-file \ -Dfile=/download/serverless-spark-kyuubi-hive-jdbc-shaded-1.9.2.jar \ -DgroupId=org.apache.kyuubi \ -DartifactId=kyuubi-hive-jdbc-shaded \ -Dversion=1.9.2-ss \ -Dpackaging=jar -
Modifikasi file
pom.xml.Tambahkan dependensi berikut ke file
pom.xmlproyek Anda.<dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>org.apache.kyuubi</groupId> <artifactId>kyuubi-hive-jdbc-shaded</artifactId> <version>1.9.2-ss</version> </dependency> </dependencies> -
Tulis kode Java contoh.
import org.apache.kyuubi.jdbc.hive.KyuubiStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; public class Main { public static void main(String[] args) throws Exception { String url = "jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>"; Class.forName("org.apache.kyuubi.jdbc.KyuubiHiveDriver"); Connection conn = DriverManager.getConnection(url); KyuubiStatement stmt = (KyuubiStatement) conn.createStatement(); String sql = "select * from test;"; ResultSet res = stmt.executeQuery(sql); ResultSetMetaData md = res.getMetaData(); String[] columns = new String[md.getColumnCount()]; for (int i = 0; i < columns.length; i++) { columns[i] = md.getColumnName(i + 1); } while (res.next()) { System.out.print("Row " + res.getRow() + "=["); for (int i = 0; i < columns.length; i++) { if (i != 0) { System.out.print(", "); } System.out.print(columns[i] + "='" + res.getObject(i + 1) + "'"); } System.out.println(")]"); } conn.close(); } }
-
Lihat daftar tugas Spark yang dikirimkan oleh Kyuubi
Anda dapat melihat detail tugas Spark yang dikirimkan melalui Kyuubi pada tab Kyuubi Application di halaman Job History. Detail tersebut mencakup ID, Name, Application Status, dan Started At. Informasi ini membantu Anda memahami dan mengelola tugas Spark yang dikirimkan oleh Kyuubi dengan cepat.
-
Pada halaman Kyuubi Gateway, klik nama Gerbang Kyuubi yang dituju.
-
Di pojok kanan atas, klik Applications.

Pada halaman ini, Anda dapat melihat detail semua tugas Spark yang dikirimkan melalui instans Kyuubi ini. ID (spark-xxxx) dihasilkan oleh engine Spark dan identik dengan Application ID yang ditampilkan saat Anda terhubung ke klien Kyuubi. ID ini secara unik mengidentifikasi instans tugas.
