MYSQL ile HIVE Metastore Nasıl Kurulur ve Yapılandırılır
⚡ Akıllı Özet
Hive metastore, Apache Hive'ın arkasında her tablo tanımını, sütun adını ve veri türünü saklar ve bu depoyu varsayılan Derby veritabanından taşımak... MySQL Bu, birden fazla kullanıcının aynı anda bağlanmasına olanak tanır.

HIVE Metastore nedir?
Hive metastore, ilgili meta verileri (sütun adları, veri tipleri, yorumlar vb.) depolayan bir depodur. Apaçi Kovanı kullanma MySQL or PostgreSQL. Bu Hive meta deposu, ilişkisel bir veritabanındaki tablolar kullanılarak uygulanır.
Metastore'da satırların kendisi tutulmaz. Kayıtlar HDFS'de kalır ve metastore yalnızca her tablonun nerede bulunduğunu ve sütunlarının adlarını kaydeder; bu nedenle kaybolması verilerden ziyade şemanın kaybına neden olur.
Neden Kullanılmalı MySQL Hive'da Metastore olarak
Metastore arka ucu, Hive'ın sabit bir parçası değil, bir tercih meselesidir ve varsayılan olarak sunulan ayarlar kasıtlı olarak minimaldir. Üç sınırlama, neredeyse her kurulumu bu ayarlardan uzaklaştırır.
- Varsayılan olarak, Hive meta veri deposu olarak Derby veritabanıyla birlikte gelir.
- Derby aynı anda yalnızca tek bir aktif kullanıcıyı destekleyebilir.
- Derby üretim ortamında tavsiye edilmez.
Dolayısıyla buradaki çözüm şu:
- Kullanım MySQL Arka uçta meta depolama olarak, aynı anda birden fazla kullanıcının Hive'a bağlanmasını sağlar.
- MySQL bağımsız metastore için en iyi seçimdir.
Hive Metastore Nasıl Kurulur ve Yapılandırılır MySQL veritabanı
Aşağıdaki dokuz adım, Hadoop ve Hive'ın zaten kurulu olduğu bir makinede sırayla çalıştırılır. Her adım, gerçek terminal veya shell çıktısının ekran görüntüsüyle sona erer.
Adım 1) Kurulum MySQL sunucu
Bu adımda iki görevi gerçekleştireceğiz
- MySQL sunucusunun kurulumu
- MySQL sunucusunu ve sürecini kontrol etme
Kullanma sudo apt-get install mysql sunucusu komutla indirebiliriz MySQL sunucu. Kurulum MySQL Aşağıdaki ekran görüntüsünde gösterildiği gibi.
Başarılı kurulumun ardından, MySQL Aşağıdaki ekran görüntüsünde gösterildiği gibi çalışacaktır; işlem kontrolü hizmetin çalıştığını doğrular.
Adım 2) Kurulum MySQL Java Bağlayıcı
Takma MySQL Java Bağlantı elemanı. Bu, şunun için: Java Bağımlılıklar ve bağlantı amaçları için, çünkü Hive erişim sağlar. MySQL JDBC üzerinden. Sonraki ekran görüntüsü paket kurulumunu gösteriyor.
Adım 3) Bağlayıcı için yumuşak bağlantı oluşturun
Hive lib dizininde bağlayıcı için bir sembolik bağlantı oluşturuluyor. Bu, bağlayıcı ile bağlayıcı arasındaki sembolik bağlantıdır. Java hem de MySQLBu komut, sürücü JAR dosyasını Hive sınıf yoluna ekler. Komut ve sonucu aşağıda yer almaktadır.
Adım 4) Yapılandırma MySQL Hive'da depolama
MKS MySQL Aşağıda gösterildiği gibi, herhangi bir Hive kullanıcısı oluşturulmadan önce shell'in root hesabı olarak açılması gerekir.
- Öncelikle mysql –u root –p komutunu, ardından da şifrenizi girin.
- Burada –u, root kullanıcı adını, –p ise parolayı temsil eder.
- Yukarıdaki komutu girdikten sonra, kullanıcının geçerli bir parola girmesi ve ardından Enter tuşuna basması gerekir.
- Sonra içine girecek MySQL kabuk modu
Adım 5) Kullanıcı adı ve şifre oluşturun
Kullanıcı adı ve parola oluşturma MySQLve ayrıcalıklar tanıma. Aşağıdaki ekran görüntüsü, içinde çalışan üç ifadeyi göstermektedir. MySQL kabuk.
Aşağıda gösterildiği gibi komutları uygulamamız gerekiyor,
mysql> CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword'; mysql> GRANT all on *.* to 'hiveuser'@localhost identified by 'hivepassword'; mysql> flush privileges;
On MySQL 8. İkinci ifadenin birleştirilmiş hali artık ayrıştırılamıyor çünkü GRANT'tan IDENTIFIED BY kaldırıldı. Önce hesabı oluşturun, ardından ona yetki verin ve CREATE USER satırını hem localhost ana bilgisayarı hem de joker karakter ana bilgisayarı için tekrarlayın.
Adım 6) hive-site.xml dosyasının yapılandırılması
- 5. Adımdan sonra bir kullanıcı adı ve şifre atanır. MySQL veritabanına erişim sağlar ve ayrıcalıklar tanır.
- Burada, Hive ile bağlantı kurmak için bazı özellikleri yapılandıracağız. MySQL veri tabanı.
Aşağıdaki ekran görüntüsünde de görüldüğü gibi, yapılandırma dosyası Hive conf dizininden açılır.
Aşağıdaki ekran görüntüsü, dört özelliğin de yerleştirildiği tamamlanmış dosyayı göstermektedir.
Yukarıdaki ekran görüntüsünden şunları gözlemliyoruz. Burada, oluşturmak için gerekli olan 4 özelliği tanımlıyoruz. MySQL Hive'daki metastore olarak.
Bunlar şöyledir:
- Bu özellik bağlantı içindir. URLBurada bağlantıyı tanımlıyoruz.URL Bu özellik, JDBC bağlantı dizesi görevi görür ve aynı zamanda metastore konumunu da temsil eder.
- Bu özellik, bağlantı sürücüsünün adı içindir. Burada `com.mysql.jdbc.Driver`, `value` etiketinde belirtmemiz gereken değerdir.
- Bu özellik, bağlantı kullanıcı adını tanımlamak için kullanılır. Burada, kullanıcı adı olarak "hiveuser" tanımladık.
- Bu özellik, bağlantı şifresini belirtmek için kullanılır. Burada, kullanıcı şifresi olarak "hivepassword" tanımladık.
Özellikler hive-site.xml dosyasına yerleştirildikten sonra, dosyayı manuel olarak kaydetmemiz (Ctrl+S) ve kapatmamız gerekiyor. Bu dosyayı kapattıktan sonra, bir Hive tablosu oluşturmalı ve tablo ayrıntılarını kontrol etmeliyiz. MySQL depolama.
Bu kodu Hive-site.xml dosyasına yerleştirin
kovan-site.xml
<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true</value> <description>metadata is stored in a MySQL server</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>MySQL JDBC driver class</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hiveuser</value> <description>user name for connecting to mysql server</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hivepassword</value> <description>password for connecting to mysql server</description> </property> </configuration>
Yukarıdaki iki değer, kullanılan konektör sürümüne bağlıdır. MySQL Connector/J 8, sürücü sınıfının adını com.mysql.cj.jdbc.Driver olarak değiştirdi ve ayrıca açık bir port ve SSL ayarı bekliyor, bu nedenle modern bir URL Genellikle şu şekilde okunur: jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true&useSSL=false. Parola açık metin olarak bulunduğundan, dosya yalnızca Hive hizmet hesabı tarafından okunabilir olmalıdır.
Adım 7) Tablo oluşturun
Aşağıdaki Hive kabuğunda gösterildiği gibi, Hive'da "guru99" tablosunu oluşturun.
Yukarıdaki ekran görüntüsünden aşağıdakileri gözlemleyebiliriz:
- “guru99” adında, iki sütun adına sahip bir tablo oluşturulması.
- Sütun adları veri türleriyle birlikte belirtilmiştir; biri tamsayı, diğeri metin dizesidir.
Bir sonraki adımda, depolanıp depolanmadığını kontrol edeceğiz. MySQL veya olmasın.
Adım 8) İçeri girin MySQL kabuk modu
Öncelikle metastore veritabanı seçilir ve ardından aşağıdaki tablo listesi gösterilir.
Yukarıdaki ekran görüntüsünden aşağıdakileri gözlemleyebiliriz:
- Öncelikle "metastore kullan" seçeneğini kullanarak veritabanını seçmeliyiz.
- Metastore seçildikten sonra, ekran görüntüsünde gösterildiği gibi "show tables" komutunu kullanarak içinde bulunan tabloları kontrol edebiliriz.
- Hive'da oluşturulan tablolar ne olursa olsun, bu tablolara karşılık gelen meta veriler TBLS altında saklanır. MySQL veritabanı
- Hive'da "guru99" tablosu oluşturulduğu için ilgili meta veriler burada saklanır. MySQL TBLS kapsamında
Adım 9) TBLS'den select * girin
Oluşturulan tablonun mevcut olup olmadığını kontrol etme MySQL Ya da değil. Sorgu ve sonucu aşağıdaki ekran görüntüsünde yer almaktadır.
TBLS'den select * girerek Hive kabuk modunda oluşturduğumuz tabloları görüntüleyecektir.
Yukarıdaki ekran görüntüsünden şunları gözlemleyebiliriz:
- Hive'da oluşturulan "guru99" adlı tablo şu şekilde görüntülenebilir: MySQL kabuk modu
- Bunun yanı sıra, yukarıdaki ekran görüntüsünde gösterildiği gibi tablo oluşturma zamanı, erişim zamanı ve diğer özellikler gibi bilgiler de sağlayacaktır.
Schematool kullanarak Hive Metastore şemasını nasıl başlatabilirsiniz?
Bağlantıdaki createDatabaseIfNotExist bayrağı URL Boş bir metastore veritabanı oluşturur, ancak Hive'ın içinde beklediği yaklaşık yetmiş tabloyu oluşturmaz. Hive 1.x ve sonraki sürümlerde bu iş schematool yardımcı programına aittir ve atlanmalıdır.ping Yeni yapılandırılmış bir metastore'un başlatılamamasının en yaygın nedeni budur.
$HIVE_HOME/bin/schematool -dbType mysql -initSchema
Bu komut, hive-site.xml dosyasından aynı dört özelliği okur, hiveuser hesabıyla bağlantı kurar ve Hive sürümüne uygun paketlenmiş SQL betiğini çalıştırır. Başarılı bir çalıştırma, bir tamamlama mesajıyla sona erer ve sonrasında durum her zaman doğrulanabilir.
$HIVE_HOME/bin/schematool -dbType mysql -info
Aşağıdaki bayraklar, bir metastore şemasının tüm yaşam döngüsünü kapsar.
| Opsiyon | Ne yapar |
|---|---|
| -dbType | MySQL, Derby, PostgreSQL, Oracle veya MSSQL gibi arka uç veritabanının adını belirtir. |
| -Şemayı başlat | Geçerli Hive sürümü için metastore tablolarını oluşturur. |
| -bilgi | Veritabanında kaydedilen şema sürümünü raporlar. |
| -Şemayı yükselt | Hive yükseltmesinden sonra mevcut bir şemayı taşır. |
| -doğrulamak | Şemada eksik tabloları ve sürüm uyuşmazlıklarını kontrol eder. |
İlk çalıştırmadan önce bilinmesi gereken ilgili bir özellik var. hive.metastore.schema.verification değeri true olduğunda, Hive şema sürümünü karşılaştırır. MySQL Kendi sistemine karşı kontrol eder ve uyumsuzluk durumunda çalışmayı reddeder. Bu kontrol bir güvenlik önlemidir, bu nedenle doğru yanıt, yükseltmeyi kapatmak yerine çalıştırmaktır. Aynı şekilde MySQL Arka uç, aşağıda açıklanan Hive kurulumu tarafından kullanılmaktadır. Hive'ı kurun Ubuntu.
Hive Metastore'da Sık Karşılaşılan Hatalar ve Bunların Nasıl Düzeltileceği
Bu aşamada yaşanan başarısızlıkların çoğu, birkaç mesajdan birini üretir ve bunların her biri Hive'ın kendisinden ziyade bir üst aşamaya işaret eder.
| Semptom | Sebep ve çözüm |
|---|---|
| Metastore'da sürüm bilgisi bulunamadı. | Şema hiç oluşturulmadı. Bağlantıda belirtilen aynı veritabanına karşı schematool komutunu -initSchema parametresiyle çalıştırın. URL |
| JDBC sürücüsü için ClassNotFoundException hatası. | Hive lib dizininde Connector JAR dosyası eksik veya Connector/J 8 kullanılıyor ve sınıf artık com.mysql.cj.jdbc.Driver. 3. Adımdaki sembolik bağlantıyı tekrar kontrol edin. |
| hiveuser kullanıcısı için erişim engellendi. | Ayrıcalıklar yalnızca bir sunucuya verildi. Hem localhost hem de joker sunucu için hesap oluşturun, ardından flush privileges komutunu çalıştırın. |
| IDENTIFIED BY yakınında sözdizimi hatası | MySQL 8. GRANT ifadesinden IDENTIFIED BY kaldırıldı. Önce CREATE USER, sonra GRANT komutunu verin. |
| Herkese açık anahtarların alınmasına izin verilmiyor. | Connector/J 8 varsayılan olarak şifrelenmemiş el sıkışmayı reddeder. JDBC yapılandırmasına useSSL=false ve allowPublicKeyRetrieval=true ekleyin. URL güvenilir bir ağda |
| Hive güncellemesinden sonra tablolar kayboldu. | Şema hala eski sürümle eşleşiyor. Şema doğrulamasını devre dışı bırakmak yerine, schematool komutunu -upgradeSchema parametresiyle çalıştırın. |
Metastore güvenilir bir şekilde yanıt vermeye başladığında, kaydettiği tablo tanımları, aşağıda açıklanan ifadelerle oluşturulur. Hive'da tablo oluşturma, değiştirme ve silme işlemleri.








