aplikasi Hive spesifik untuk versi AMI sebelumnya dari Amazon EMR - Amazon EMR

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

aplikasi Hive spesifik untuk versi AMI sebelumnya dari Amazon EMR

File log

Menggunakan Amazon EMR AMI versi 2.x dan 3.x, log Hive disimpan ke /mnt/var/log/apps/. Untuk mendukung versi bersamaan Hive, versi Hive yang Anda jalankan menentukan nama file log, seperti yang ditunjukkan pada tabel berikut.

Versi Hive Nama file log
0.13.1 hive.log
catatan

Dimulai dengan versi ini, Amazon EMR menggunakan nama file tidak berversi, hive.log. Versi minor berbagi lokasi log yang sama sebagai versi utama.

0.11.0 hive_0110.log
catatan

Versi minor dari Hive 0.11.0, seperti 0.11.0.1, berbagi lokasi file log yang sama sebagai Hive 0.11.0.

0.8.1 hive_081.log
catatan

Versi minor dari Hive 0.8.1, seperti Hive 0.8.1.1, berbagi lokasi file log yang sama sebagai Hive 0.8.1.

0.7.1 hive_07_1.log
catatan

Versi minor dari Hive 0.7.1, seperti Hive 0.7.1.3 dan Hive 0.7.1.4, berbagi lokasi file log yang sama sebagai Hive 0.7.1.

0,7 hive_07.log
0,5 hive_05.log
0.4 hive.log

Fungsionalitas input terpisah

Untuk menerapkan fungsi input split menggunakan versi Hive lebih awal dari 0.13.1 (Amazon EMR AMI versi sebelumnya 3.11.0), gunakan berikut:

hive> set hive.input.format=org.apache.hadoop.hive.ql.io.HiveCombineSplitsInputFormat; hive> set mapred.min.split.size=100000000;

Fungsi ini diusangkan dengan Hive 0.13.1. Untuk mendapatkan fungsi format input split yang sama di Amazon EMR AMI Versi 3.11.0, gunakan berikut ini:

set hive.hadoop.supports.splittable.combineinputformat=true;

Port layanan penghematan

Hemat adalah kerangka RPC yang mendefinisikan format serialisasi biner kompak digunakan untuk bertahan struktur data untuk analisis kemudian. Biasanya, Hive mengkonfigurasi server untuk beroperasi pada port berikut.

Versi Hive Angka port
Hive 0.13.1 10000
Hive 0.11.0 10004
Hive 0.8.1 10003
Hive 0.7.1 10002
Hive 0.7 10001
Hive 0.5 10000

Untuk informasi selengkapnya tentang menginstal layanan ini, lihat http://wiki.apache.org/thrift/.

Gunakan Hive untuk memulihkan partisi

Amazon EMR termasuk pernyataan dalam bahasa query Hive yang pulih partisi dari tabel data yang terletak di Amazon S3. Contoh berikut menunjukkan hal ini.

CREATE EXTERNAL TABLE (json string) raw_impression PARTITIONED BY (dt string) LOCATION 's3://elastic-mapreduce/samples/hive-ads/tables/impressions'; ALTER TABLE logs RECOVER PARTITIONS;

Direktori partisi dan data harus berada di lokasi yang ditentukan dalam definisi tabel dan harus diberi nama sesuai dengan konvensi Hive: misalnya, dt=2009-01-01.

catatan

Setelah Hive 0.13.1 kemampuan ini didukung native menggunakan msck repair table dan karenanya recover partitions tidak didukung. Untuk informasi selengkapnya, lihat https://cwiki.apache.org/confluence/display/Hive/LanguageManual +DL.

Lulus variabel Hive untuk script

Untuk melewati variabel ke langkah Hive menggunakan AWS CLI, ketikkan perintah berikut, ganti myKey dengan nama pasangan kunci EC2 Anda, dan ganti mybucket dengan nama bucket Anda. Dalam contoh ini, SAMPLE adalah nilai variabel yang didahului oleh -dberalih. Variabel ini didefinisikan dalam script Hive sebagai: ${SAMPLE}.

catatan

Karakter kelanjutan baris Linux (\) disertakan untuk memudahkan pembacaan. Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda sisipan (^).

aws emr create-cluster --name "Test cluster" --ami-version 3.9 \ --applications Name=Hue Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-type m3.xlarge --instance-count 3 \ --steps Type=Hive,Name="Hive Program",ActionOnFailure=CONTINUE,\ Args=[-f,s3://elasticmapreduce/samples/hive-ads/libs/response-time-stats.q,-d,\ INPUT=s3://elasticmapreduce/samples/hive-ads/tables,-d,OUTPUT=s3://mybucket/hive-ads/output/,\ -d,SAMPLE=s3://elasticmapreduce/samples/hive-ads/]

Tentukan lokasi metastore eksternal

Prosedur berikut menunjukkan cara untuk menimpa nilai konfigurasi default untuk lokasi metastore Hive dan mulai cluster menggunakan lokasi metastore ulang.

Untuk membuat metastore terletak di luar cluster EMR
  1. Buat database MySQL atau Aurora menggunakan Amazon RDS.

    Untuk informasi tentang cara membuat database Amazon RDS, lihat Memulai dengan Amazon RDS.

  2. Memodifikasi kelompok keamanan Anda untuk memungkinkan koneksi JDBC antara database Anda dan kelompok keamanan ElasticMapReduce-Master.

    Untuk informasi tentang cara mengubah grup keamanan untuk akses, lihat, lihat Grup keamanan Amazon RDS di Panduan Pengguna Amazon RDS.

  3. Mengatur nilai-nilai konfigurasi JDBC di hive-site.xml:

    1. Buat hive-site.xml file konfigurasi yang berisi berikut ini:

      <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mariadb://hostname:3306/hive?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> <description>Username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password</value> <description>Password to use against metastore database</description> </property> </configuration>

      Nama host adalah alamat DNS contoh Amazon RDS menjalankan database. nama pengguna dan Sandi adalah mandat untuk database Anda. Untuk informasi selengkapnya tentang menghubungkan ke MySQL dan Aurora database instans, lihat Menghubungkan ke instans DB yang menjalankan mesin basis data MySQL dan Menghubungkan ke klaster DB Aurora di Panduan Pengguna Amazon RDS.

      Driver JDBC diinstal oleh Amazon EMR.

      catatan

      Properti nilai tidak boleh mengandung spasi atau pengembalian carriage. Ini akan muncul semua pada satu baris.

    2. Simpan file hive-site.xml Anda ke lokasi di Amazon S3, seperti s3://mybucket/hive-site.xml.

  4. Buat cluster, menentukan lokasi Amazon S3 dari disesuaikan hive-site.xml file.

    Contoh perintah berikut menunjukkan AWS CLI perintah yang melakukan hal ini.

    catatan

    Karakter kelanjutan baris Linux (\) disertakan untuk memudahkan pembacaan. Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda sisipan (^).

    aws emr create-cluster --name "Test cluster" --ami-version 3.10 \ --applications Name=Hue Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-type m3.xlarge --instance-count 3 \ --bootstrap-actions Name="Install Hive Site Configuration",\ Path="s3://region.elasticmapreduce/libs/hive/hive-script",\ Args=["--base-path","s3://elasticmapreduce/libs/hive","--install-hive-site",\ "--hive-site=s3://mybucket/hive-site.xml","--hive-versions","latest"]

Connect ke Hive menggunakan JDBC

Untuk terhubung ke Hive melalui JDBC mengharuskan Anda untuk men-download driver JDBC dan menginstal klien SQL. Contoh berikut menunjukkan menggunakan SQL Workbench/J untuk terhubung ke Hive menggunakan JDBC.

Untuk men-download driver JDBC
  1. Men-download dan ekstrak driver yang sesuai dengan versi Hive yang ingin Anda akses. Versi Hive berbeda tergantung pada AMI yang Anda pilih saat membuat klaster Amazon EMR.

  2. Untuk menginstal SQL Workbench/J. Untuk informasi lebih lanjut, lihat Menginstal dan mulai SQL Workbench/J dalam Manual pengguna SQL Workbench/J Manual.

  3. Buat terowongan SSH ke node master cluster. Port untuk koneksi berbeda tergantung pada versi Hive. Contoh perintah disediakan dalam tabel di bawah ini untuk Linux ssh pengguna dan perintah PuTTY untuk pengguna Windows

    Perintah SSH Linux
    Versi Hive perintah
    0.13.1 ssh -o ServerAliveInterval=10 -i path-to-key-file -N -L 10000:localhost:10000 hadoop@master-public-dns-name
    0.11.0 ssh -o ServerAliveInterval=10 -i path-to-key-file -N -L 10004:localhost:10004 hadoop@master-public-dns-name
    0.8.1 ssh -o ServerAliveInterval=10 -i path-to-key-file -N -L 10003:localhost:10003 hadoop@master-public-dns-name
    0.7.1 ssh -o ServerAliveInterval=10 -i path-to-key-file -N -L 10002:localhost:10002 hadoop@master-public-dns-name
    0,7 ssh -o ServerAliveInterval=10 -i path-to-key-file -N -L 10001:localhost:10001 hadoop@master-public-dns-name
    0,5 ssh -o ServerAliveInterval=10 -i path-to-key-file -N -L 10000:localhost:10000 hadoop@master-public-dns-name
    Pengaturan terowongan Windows PuTTY
    Versi Hive Pengaturan terowongan
    0.13.1 Port sumber: 10000 Tujuan: master-public-dns-name:10000
    0.11.0 Port sumber: 10004 Tujuan: master-public-dns-name:10004
    0.8.1 Port sumber: 10003 Tujuan: master-public-dns-name:10003
  4. Tambahkan driver JDBC ke SQL Workbench.

    1. Di Pilih Profil Koneksi kotak dialog, pilih Mengelola driver.

    2. Pilih Buat entri baru (halaman kosong) ikon.

    3. Di kolom Nama, ketikkan Hive JDBC.

    4. Untuk Pustaka, klik ikon Pilih file JAR.

    5. Pilih file JAR seperti yang ditunjukkan dalam tabel berikut.

      Versi driver hive File JAR untuk ditambahkan
      0.13.1
      hive_metastore.jar hive_service.jar HiveJDBC3.jar libfb303-0.9.0.jar libthrift-0.9.0.jar log4j-1.2.14.jar ql.jar slf4j-api-1.5.8.jar slf4j-log4j12-1.5.8.jar TCLIServiceClient.jar
      0.11.0
      hadoop-core-1.0.3.jar hive-exec-0.11.0.jar hive-jdbc-0.11.0.jar hive-metastore-0.11.0.jar hive-service-0.11.0.jar libfb303-0.9.0.jar commons-logging-1.0.4.jar slf4j-api-1.6.1.jar
      0.8.1
      hadoop-core-0.20.205.jar hive-exec-0.8.1.jar hive-jdbc-0.8.1.jar hive-metastore-0.8.1.jar hive-service-0.8.1.jar libfb303-0.7.0.jar libthrift-0.7.0.jar log4j-1.2.15.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar
      0.7.1
      hadoop-0.20-core.jar hive-exec-0.7.1.jar hive-jdbc-0.7.1.jar hive-metastore-0.7.1.jar hive-service-0.7.1.jar libfb303.jar commons-logging-1.0.4.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar
      0,7
      hadoop-0.20-core.jar hive-exec-0.7.0.jar hive-jdbc-0.7.0.jar hive-metastore-0.7.0.jar hive-service-0.7.0.jar libfb303.jar commons-logging-1.0.4.jar slf4j-api-1.5.6.jar slf4j-log4j12-1.5.6.jar
      0,5
      hadoop-0.20-core.jar hive-exec-0.5.0.jar hive-jdbc-0.5.0.jar hive-metastore-0.5.0.jar hive-service-0.5.0.jar libfb303.jar log4j-1.2.15.jar commons-logging-1.0.4.jar
    6. Pada kotak dialog Pilih satu driver, pilih driver sesuai dengan tabel berikut ini dan klik OKE.

      Versi Hive Nama kelas driver
      0.13.1
      com.amazon.hive.jdbc3.HS2Driver
      0.11.0
      org.apache.hadoop.hive.jdbc.HiveDriver.jar
      0.8.1
      org.apache.hadoop.hive.jdbc.HiveDriver.jar
      0.7.1
      org.apache.hadoop.hive.jdbc.HiveDriver.jar
      0,7
      org.apache.hadoop.hive.jdbc.HiveDriver.jar
      0,5
      org.apache.hadoop.hive.jdbc.HiveDriver.jar
  5. Ketika Anda kembali ke Pilih Profil Koneksi kotak dialog, verifikasi bahwa Driver bidang diatur ke Hive JDBC dan menyediakan koneksi JDBC string di URL kolom sesuai dengan tabel berikut.

    Versi Hive String koneksi JDBC
    0.13.1 jdbc:hive2://localhost:10000/default
    0.11.0 jdbc:hive://localhost:10004/default
    0.8.1 jdbc:hive://localhost:10003/default

    Jika cluster Anda menggunakan AMI versi 3.3.1 atau yang lebih baru, di Pilih Profil Koneksi kotak dialog, jenis hadoop di Nama pengguna Bidang.