All Products
Search
Document Center

E-MapReduce:Metode koneksi Hive

Last Updated:Jun 21, 2026

Topik ini menjelaskan cara menghubungkan ke Hive di E-MapReduce menggunakan tiga metode: Hive client, Beeline, dan JDBC.

Prasyarat

  • Anda telah membuat kluster dengan layanan Hive diaktifkan (misalnya, DataLake atau Custom) dan mengaktifkan sakelar Assign Public Network IP untuk node master agar memungkinkan login jarak jauh. Untuk informasi lebih lanjut tentang pembuatan kluster, lihat Create a cluster.

    • Kluster umum: Kluster tanpa Kerberos Authentication atau High Service Availability yang diaktifkan.

    • Kluster keamanan tinggi: Kluster yang dibuat dengan sakelar Kerberos Authentication diaktifkan.

    • Kluster ketersediaan tinggi: Kluster yang dibuat dengan sakelar High Service Availability diaktifkan. Perhatikan bahwa saat membuat kluster ketersediaan tinggi, Anda juga harus memilih layanan ZooKeeper.

  • Anda telah login ke node master kluster. Untuk informasi lebih lanjut, lihat Log on to a cluster.

Catatan

  • master-1-1 dan <Master node public IP address>: hostname dan alamat IP publik node master. Anda dapat memperoleh informasi ini pada halaman Nodes kluster tujuan di Konsol EMR. Untuk informasi lebih lanjut, lihat Log on to a cluster.

    Umumnya, hostname node master adalah master-1-1. Jika kluster Anda adalah kluster Hadoop, hostname-nya adalah emr-header-1.

  • HiveServer2 tidak memvalidasi username dan password secara default. Untuk mengaktifkan otentikasi username dan password, aktifkan otentikasi LDAP. Untuk informasi lebih lanjut, lihat Use LDAP authentication.

Prosedur

Kluster umum

Menghubungkan menggunakan Hive client

  1. Jalankan perintah berikut untuk menghubungkan ke Hive.

    hive
  2. Opsi: Jalankan quit; atau exit; untuk keluar dari Hive.

Menghubungkan menggunakan Beeline client

  1. Jalankan perintah berikut untuk menghubungkan ke Hive.

    beeline -u jdbc:hive2://master-1-1:10000
  2. Opsi: Jalankan !quit atau !exit untuk keluar dari Beeline.

Menghubungkan menggunakan JDBC

Penting

Sebelum memulai, pastikan Anda telah menginstal lingkungan Java dan tool pengembangan Java, serta mengonfigurasi variabel lingkungan yang relevan.

  1. Konfigurasikan dependensi proyek (hadoop-common dan hive-jdbc) dalam file pom.xml. Contoh berikut menunjukkan dependensi yang ditambahkan.

    <dependencies>
            <dependency>
                <groupId>org.apache.hive</groupId>
                <artifactId>hive-jdbc</artifactId>
                <version>3.1.3</version>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-common</artifactId>
                <version>3.2.1</version>
            </dependency>
    </dependencies>

    Pastikan versi hadoop-common dan hive-jdbc sesuai dengan versi Hadoop-Common dan Hive di kluster EMR Anda. Anda dapat melihat informasi perangkat lunak ini pada tab Basic Information di bagian Software Information kluster tujuan di Konsol EMR.

  2. Tulis kode untuk menghubungkan ke HiveServer2 dan mengoperasikan data tabel Hive. Contoh berikut menunjukkan kode sampel.

    import java.sql.*;
    public class App
    {
        private static String driverName = "org.apache.hive.jdbc.HiveDriver";
        public static void main(String[] args) throws SQLException {
            try {
                Class.forName(driverName);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            Connection con = DriverManager.getConnection(
                "jdbc:hive2://<Master node public IP address>:10000", "root", "");
            Statement stmt = con.createStatement();
            String sql = "select * from sample_tbl limit 10";
            ResultSet res = stmt.executeQuery(sql);
            while (res.next()) {
                System.out.println(res.getString(1) + "\t" + res.getString(2));
            }
        }
    }
    Catatan

    Metode ini memerlukan port 10000 terbuka. Untuk informasi lebih lanjut, lihat Manage security groups.

  3. Bangun proyek (untuk menghasilkan file JAR) dan unggah file JAR tersebut ke lingkungan runtime.

    Penting

    File JAR bergantung pada hadoop-common dan hive-jdbc. Jika paket dependensi ini tidak termasuk dalam variabel lingkungan lingkungan runtime, unduh dan konfigurasikan, atau masukkan langsung ke dalam file JAR. Jika salah satu dependensi hilang saat menjalankan file JAR, Anda akan melihat salah satu error berikut:

    • hadoop-common tidak ada: java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration

    • hive-jdbc tidak ada: java.lang.ClassNotFoundException: org.apache.hive.jdbc.HiveDriver

    Dalam contoh ini, file JAR yang dihasilkan diberi nama emr-hiveserver2-1.0.jar. Unggah file JAR ini ke node master kluster E-MapReduce Anda.

  4. Uji apakah file JAR berjalan dengan benar.

    Penting

    Server yang menjalankan file JAR dan kluster E-MapReduce harus berada dalam VPC dan security group yang sama, serta harus memiliki konektivitas jaringan di antara keduanya. Jika berada dalam VPC atau lingkungan jaringan yang berbeda, akses kluster menggunakan alamat IP publiknya, atau gunakan produk jaringan Alibaba Cloud untuk menetapkan konektivitas sebelum mengaksesnya melalui jaringan internal. Untuk menguji konektivitas jaringan:

    • Jaringan publik: telnet public IP address of master-1-1 10000

    • Jaringan privat: telnet private IP address of master-1-1 10000

    java -jar emr-hiveserver2-1.0.jar

Kluster keamanan tinggi

Menghubungkan menggunakan Hive client

  1. Jalankan perintah berikut untuk memulai tool Kerberos admin.local.

    • Jika Anda masuk ke node master-1-1 tempat server Kerberos Key Distribution Center (KDC) berjalan sebagai pengguna root, jalankan perintah berikut untuk langsung mengakses tool admin.

      kadmin.local

      Output berikut menunjukkan bahwa Anda telah memasuki antarmuka baris perintah kadmin.local:

      Authenticating as principal hadoop/admin@EMR.C-85D4B8D74296****.COM with password.
      kadmin.local:
    • Jika Anda masuk ke node lain atau menggunakan gateway, jalankan perintah berikut untuk mengakses tool admin.

      kadmin -p <admin-user> -w <admin-password>
      Catatan

      Jika Anda menggunakan KDC yang disediakan oleh E-MapReduce, perhatikan parameter berikut:

      • <admin-user>: Nilainya tetap root/admin.

      • <admin-password>: Di Konsol E-MapReduce, buka tab Configure layanan Kerberos untuk mendapatkan nilai parameter admin_pwd.

      Output berikut menunjukkan bahwa Anda telah memasuki antarmuka baris perintah kadmin:

      Authenticating as principal root/admin with password.
      kadmin:
  2. Jalankan perintah berikut untuk membuat principal bernama test.

    Dalam contoh ini, password-nya adalah 123456.

    addprinc -pw 123456 test

    Output berikut menunjukkan bahwa principal berhasil dibuat:

    Principal "test@EMR.C-85D4B8D74296****.COM" created.
    Catatan

    Catat username dan password tersebut. Anda akan membutuhkannya untuk membuat ticket-granting ticket (TGT).

    Jalankan perintah quit untuk keluar dari tool Kerberos admin.local.

  3. Masuk ke mesin tempat Anda ingin menjalankan Hive client, lalu jalankan perintah berikut untuk membuat dan beralih ke pengguna test.

    useradd test
    su test
  4. Jalankan perintah berikut untuk membuat TGT.

    kinit

    Tekan Enter dan masukkan password untuk pengguna test. Dalam contoh ini, password-nya adalah 123456.

  5. Jalankan perintah hive untuk mengakses Hive client.

    hive

Menghubungkan menggunakan Beeline client

  1. Jalankan perintah berikut untuk memulai tool Kerberos admin.local.

    • Jika Anda masuk ke node master-1-1 tempat server Kerberos Key Distribution Center (KDC) berjalan sebagai pengguna root, jalankan perintah berikut untuk langsung mengakses tool admin.

      kadmin.local

      Output berikut menunjukkan bahwa Anda telah memasuki antarmuka baris perintah kadmin.local:

      Authenticating as principal hadoop/admin@EMR.C-85D4B8D74296****.COM with password.
      kadmin.local:
    • Jika Anda masuk ke node lain atau menggunakan gateway, jalankan perintah berikut untuk mengakses tool admin.

      kadmin -p <admin-user> -w <admin-password>
      Catatan

      Jika Anda menggunakan KDC yang disediakan oleh E-MapReduce, perhatikan parameter berikut:

      • <admin-user>: Nilainya tetap root/admin.

      • <admin-password>: Di Konsol E-MapReduce, buka tab Configure layanan Kerberos untuk mendapatkan nilai parameter admin_pwd.

      Output berikut menunjukkan bahwa Anda telah memasuki antarmuka baris perintah kadmin:

      Authenticating as principal root/admin with password.
      kadmin:
  2. Jalankan perintah berikut untuk membuat principal bernama test.

    Dalam contoh ini, password-nya adalah 123456.

    addprinc -pw 123456 test

    Output berikut menunjukkan bahwa principal berhasil dibuat:

    Principal "test@EMR.C-85D4B8D74296****.COM" created.
    Catatan

    Catat username dan password tersebut. Anda akan membutuhkannya untuk membuat ticket-granting ticket (TGT).

    Jalankan perintah quit untuk keluar dari tool Kerberos admin.local.

  3. Masuk ke mesin tempat Anda ingin menjalankan Hive client, lalu jalankan perintah berikut untuk membuat dan beralih ke pengguna test.

    useradd test
    su test
  4. Jalankan perintah berikut untuk membuat TGT.

    kinit

    Tekan Enter dan masukkan password untuk pengguna test. Dalam contoh ini, password-nya adalah 123456.

  5. Jalankan perintah berikut untuk mengakses Hive client.

    beeline -u "jdbc:hive2://master-1-1.c-56187feb57f0****.cn-hangzhou.emr.aliyuncs.com:10000/;principal=hive/_HOST@EMR.c-56187feb57f0****.COM"

    Ganti placeholder berikut dengan informasi Anda:

    • master-1-1.c-56187feb57f0****.cn-hangzhou.emr.aliyuncs.com: hostname lengkap beserta nama domain. Anda dapat memperoleh hostname dengan menjalankan perintah hostname -f pada node tempat layanan HiveServer2 berjalan (biasanya node master-1-1).

    • EMR.c-56187feb57f0****.COM: Nama realm. Di Konsol E-MapReduce, buka tab Configure layanan Kerberos untuk menemukan nilai parameter realm.

Kluster ketersediaan tinggi

Menghubungkan menggunakan Beeline client

Bergantung pada mode penemuan layanan yang Anda pilih (zooKeeper atau multiServers), gunakan perintah yang sesuai untuk mengonfigurasi koneksi Beeline.

  • Gunakan mode zooKeeper

    beeline -u 'jdbc:hive2://master-1-1:2181,master-1-2:2181,master-1-3:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2'
  • Gunakan mode multiServers

    beeline -u 'jdbc:hive2://master-1-1:10000,master-1-2:10000,master-1-3:10000/default;serviceDiscoveryMode=multiServers'

FAQ

Apa yang harus saya lakukan jika muncul error "port unreachable" saat menghubungkan ke Hive?

Jika Anda mengalami error "port unreachable" saat menghubungkan ke Hive, lakukan pemecahan masalah dari dua aspek berikut:

  • Pastikan layanan HiveServer2 sedang berjalan.

    Pada node HiveServer2, jalankan perintah berikut untuk memeriksa apakah proses layanan mendengarkan pada port yang ditentukan (default: 10000).

    netstat -tulnp | grep 10000

    Pastikan output mencakup proses yang terkait dengan HiveServer2. Jika tidak ada, periksa log startup HiveServer2 untuk memastikan layanan tersebut dimulai dengan benar.

  • Periksa apakah security group mengizinkan traffic pada port 10000.

    Di Konsol EMR, pada halaman Basic Information kluster tujuan, klik tautan di samping Cluster Security Group. Pada halaman Security Group Details, verifikasi bahwa port 10000 terbuka. Jika belum, buka port tersebut. Untuk informasi lebih lanjut, lihat Manage security groups.

Bagaimana cara menghubungkan ke Hive jika ketersediaan tinggi dan keamanan tinggi diaktifkan?

Jika ketersediaan tinggi dan keamanan tinggi diaktifkan, pertama-tama peroleh kredensial Kerberos (dengan membuat principal Kerberos dan mendapatkan TGT), lalu hubungkan ke Hive menggunakan metode JDBC. Untuk informasi lebih lanjut, lihat HiveServer2 load balancing.