HBase ile Tablo Oluştur Java API ve Kabuk Örneği

⚡ Akıllı Özet

HBase verileri tablolarda saklar ve bu tabloları iki şekilde oluşturabilir ve yönetebilirsiniz: Java HTable ile APIDescriptveya HBaseAdmin üzerinden ya da doğrudan HBase kabuğunda create komutunu kullanarak.

  • Java API: HTable kullanarak kod içinde tablolar oluşturun.Descriptveya, HColumnDescriptveya ve HBaseAdmin.
  • 🐚 Kabuk oluşturma: `create` komutu, bir isim ve bir veya daha fazla sütun ailesinden bir tablo oluşturur.
  • 🧬 Sütun aileleri: Her tablonun, tablo oluşturulurken tanımlanan en az bir sütun ailesine ihtiyacı vardır.
  • 🔧 Tabloları değiştir: `alter` komutu sütun aileleri ekler, `version` ayarlarını yapar veya tablo kapsamındaki öznitelikleri değiştirir.
  • 🗑️ Tablo yaşam döngüsü: Bir tabloyu değiştirmeden veya silmeden önce devre dışı bırakın, ardından yazma işlemlerine devam etmek için tekrar etkinleştirin.
  • 🤖 Yapay zeka desteği: Yapay zekâ asistanları, komutları taslak haline getirir, oluşturur, değiştirir ve siler; ayrıca sütun ailesi tasarımını inceler.

HBase ile tablo oluşturma Java API ve shell komut örneği

HBase ile Tablo Nasıl Oluşturulur Java API

HBase'de tablolar iki şekilde oluşturulabilir: şu yollarla: Java API ve HBase kabuğu aracılığıyla. Bu bölüm şunları kapsar: Java API, bir uygulamanın daha büyük bir işlemin parçası olarak programatik bir şekilde tablolar oluşturmasına ve veri yüklemesine olanak tanır.

İçinden Java API, HBase'de tablolar oluşturabilir ve ayrıca kullanarak tablolara veri yükleyebiliriz. Java Kodlama. Burada kurduğumuz iki şey şunlardır:

  • HBase ile bağlantı kurma Java API.
  • kullanma Eclipse için Java Kodlama, hata ayıklama ve test etme.

HBase'de tablo oluşturma adımları aşağıdadır: Java API.

Adım 1) Oluşturun Java Proje Eclipse

Bu adımda bir oluşturacağız. Java projede Eclipse HBase bağlantısı için, adı “HbaseConnection” olan bağlantı.

Yeni Java Aşağıdaki proje iletişim kutusunda “HbaseConnection” projesinin kurulumu gösterilmektedir:

Eclipse Yeni Java HbaseConnection projesini oluşturan proje iletişim kutusu JavaSE-1.7 ortamı

Yukarıdaki ekran görüntüsüne bakarsak:

  • Proje adını bu kutuya yazın. Bizim örneğimizde proje adı "HbaseConnection".
  • Kaydedilecek varsayılan konum için bu kutuyu işaretleyin. Burada /home/hduser/work/HbaseConnection yoludur.
  • için kutuyu işaretleyin Java Buradaki ortam. Bu durumda JavaSE-1.7 Java baskı.
  • Dosyayı nereye kaydetmek istediğinizi seçin. Bizim durumumuzda, ikinci seçenek olan "Kaynaklar ve sınıf dosyaları için ayrı bir klasör oluştur" seçeneğini seçtik.
  • "Bitir" düğmesine tıklayın; bu işlem "HbaseConnection" projesini oluşturur. Eclipse ve açar Eclipse ana sayfa.

Adım 2) Derleme Yolunu Yapılandırın Eclipse

Üzerinde Eclipse Ana sayfada, derleme yolu yapılandırmasını açmak için şu adımları izleyin:

Right click on project -> Select Build Path -> Configure build path

Aşağıdaki ekran görüntüsü, derleme yolu yapılandırmasını açmak için kullanılan sağ tıklama menüsünü göstermektedir:

Eclipse Projeye sağ tıklayıp "Derleme Yolu" seçeneğini, ardından "Derleme Yolunu Yapılandır" seçeneğini seçin.

Yukarıdaki ekran görüntüsünden:

  • Projeye sağ tıklayın.
  • Yol Oluştur'u seçin.
  • "Yapılandırma Yolunu Yapılandır" seçeneğini seçin.

"Yapılandırma Yolunu Yapılandır" seçeneğine tıkladıktan sonra, aşağıdaki ekran görüntüsünde gösterildiği gibi başka bir pencere açılır. "Kitaplıklar" sekmesi, HBase ve Hadoop JAR dosyalarının projeye eklendiği yerdir:

Eclipse Java "Build Path Libraries" sekmesinden harici HBase ve Hadoop JAR dosyaları ekleniyor.

Bu adımda, ilgili HBase JAR dosyalarını ekliyoruz. Java ekran görüntüsünde gösterildiği gibi proje.

  • Eklenmesi gereken önemli JAR dosyaları: hbase-0.94.8.jar ve hadoop-core-1.1.2.jar.
  • Kütüphaneler sekmesine gelin.
  • "Harici JAR'ları Ekle" seçeneğine basın.
  • Gerekli önemli JAR dosyalarını seçin.
  • Bu dosyaları “src” dizinine eklemek için Bitir düğmesine basın. Java Kütüphaneler bünyesindeki proje.

JAR dosyaları eklendikten sonra, aşağıdaki gibi projenin "src" konumunda görünürler:

Eclipse Proje gezgini, proje kaynak kodu altında eklenen HBase ve Hadoop JAR dosyalarını gösteriyor.

Proje kapsamındaki tüm JAR dosyaları artık Hadoop ekosistemiyle kullanıma hazır.

Adım 3) HBase Bağlantısını Kurun

Bu adımda, HBaseConnection.java kullanılarak HBase bağlantısı kurulur. Java kodlama.

Üzerinde Eclipse üst menüyü çalıştırın Java Aşağıda gösterildiği gibi programı çalıştırın: Çalıştır -> Farklı Çalıştır -> Java Uygulama. Aşağıdaki menüde başlatılan program gösterilmektedir:

Eclipse Olarak çalıştırmak Java HBaseConnection programını başlatan uygulama menüsü

  • Çalıştır'ı seçin.
  • Çalıştır seçeneğini seçin. Java Uygulama.
  • Bu kod, HBase ile bağlantı kurar. Java API.
  • Bu kod çalıştırıldıktan sonra, HBase'de "guru99" tablosu "education" ve "projects" adında iki sütun ailesiyle oluşturulur. Şu anda HBase'de yalnızca boş şema oluşturulmaktadır.

Aşağıdaki kod parçası HTable'ı vurgulamaktadır.DescriptVeya tablo şemasını oluşturan addFamily çağrıları:

Java HTable kullanarak kod yazınDescriptveya addFamily kullanarak guru99 tablosunu eğitim ve projeler sütun aileleriyle tanımlayın.

Yukarıdaki ekran görüntüsünden de görülebileceği gibi, aşağıdaki işlevleri gerçekleştiriyoruz:

  • HTable'ı kullanmaDescriptYa da HBase'de "guru99" tablosunu oluşturabiliriz.
  • `addFamily` yöntemini kullanarak, `guru99` tablosuna `education` ve `projects` sütun ailelerini ekliyoruz.

Aşağıdaki kod, HBase ile bağlantı kuracak ve iki sütun ailesi içeren "guru99" tablosunu oluşturacaktır. Bu kodu HBaseConnection.java dosyasının altına yerleştirin:

// Place this code inside Hbase connection
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
Import org.apache.hadoop.hbase.client.HBaseAdmin;

public class HBaseConnection
{
    public static void main(String[] args) throws IOException
    {
	HBaseConfigurationhc = new HBaseConfiguration(new Configuration());
	HTableDescriptorht = new HTableDescriptor("guru99");

	ht.addFamily( new HColumnDescriptor("education"));
	ht.addFamily( new HColumnDescriptor("projects"));
	System.out.println( "connecting" );
	HBaseAdminhba = new HBaseAdmin( hc );

	System.out.println( "Creating Table" );
	hba.createTable( ht );
	System.out.println("Done......");
    }
}

Bu, çalıştırmadan önce HBaseConnection.java dosyasına eklemeniz gereken gerekli koddur. Java programı.

Bu program çalıştırıldıktan sonra, HBase ile bağlantı kurulur ve bunun sonucunda sütun adlarıyla bir tablo oluşturulur.

  • Tablonun adı "guru99".
  • Sütun aileleri "eğitim" ve "projeler"dir.

Adım 4) HBase'de Oluşturulan Tabloyu Kontrol Edin

HBase kabuk modunu kullanarak "list" komutuyla "guru99" tablosunun HBase'de iki sütun ailesiyle oluşturulup oluşturulmadığını kontrol edebiliriz. "list" komutu, HBase'de oluşturulan tüm tablolar hakkında bilgi verir.

HBase kabuğunda `list` komutunu çalıştırmak, aşağıda gösterildiği gibi yeni tabloyu doğrular:

HBase shell list komutunun çıktısı, guru99 tablosunun oluşturulduğunu gösteriyor.

  • Code HBase kabuğunda "list" komutunu çalıştırarak kontrol edin.
  • “list” komutunu çalıştırdığımızda, HBase'de oluşturulan tabloyu görüntüler. Bizim örneğimizde, “guru99” tablosunun oluşturulduğunu görebiliriz.

HBase Kabuk ile Tablo Oluştur

Ayrıca Java API aracılığıyla, HBase kabuğundan doğrudan tablo oluşturabilirsiniz; bu, hızlı testler için tablo oluşturmanın en hızlı yoludur. Kabuk kullanarak HBase'de tablo oluşturma sözdizimi şu şekildedir:

Syntax: create <tablename>, <columnfamilyname>

Örnek:-

hbase(main):001:0> create 'education' ,'guru99'
0 rows(s) in 0.312 seconds
=>Hbase::Table – education

Yukarıdaki örnek, her sütun ailesi için belirtilen özelliklere göre verilen isimle HBase'de bir tablo oluşturmayı açıklamaktadır. Buna ek olarak, tabloya bazı tablo kapsamlı öznitelikler de aktarabiliriz.

create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}

Burada {NAME=>'Edu', VERSIONS=>…} bloğu, "Edu" adında bir sütun ailesi ve saklayacağı hücre sürümü sayısını belirler. Büyük sayı sadece örnek amaçlıdır; pratikte VERSIONS, 3 veya 5 gibi küçük bir değerdir.

HBase Tablolarını Listeleme, Tanımlama ve Doğrulama

HBase'de tablo oluşturma, tablolarla çalışmanın yalnızca ilk adımıdır. "guru99" tablosu oluşturulduktan sonra, veri okuma, yazma veya değiştirme işlemlerinden önce durumunu incelemenize ve doğrulamanıza olanak tanıyan birkaç genel komut bulunur. Bunların tümünü çalıştırabilirsiniz. HBase kabuğu.

`list` komutu, HBase'deki tüm kullanıcı tablolarını döndürür:

hbase> list

`describe` komutu, bir tablonun yapısını, sütun ailelerini ve etkin olup olmadığını gösterir:

hbase> describe 'guru99'

`exists` komutu bir tablonun var olup olmadığını kontrol ederken, `is_enabled` komutu tablonun yazma işlemlerini kabul edip edemeyeceğini bildirir:

hbase> exists 'guru99'
hbase> is_enabled 'guru99'

Bu salt okunur kontroller her zaman güvenle çalıştırılabilir. Bunlar, bir tablonun doğru şekilde oluşturulduğunu doğrulamak ve veri yüklemeden önce sütun ailelerini incelemek için en hızlı yoldur.

HBase Tablosunda Değişiklik Yapma

HBase tablosunun şeması oluşturulduktan sonra sabit kalmaz. `alter` komutu, tabloyu yeniden oluşturmadan sütun ailelerini ve tablo kapsamı özelliklerini değiştirir. HBase sürümünüze bağlı olarak, önce tabloyu devre dışı bırakmanız, ardından `alter` komutunu çalıştırmanız ve tekrar etkinleştirmeniz gerekebilir.

“guru99” tablosuna yeni bir sütun ailesi eklemek için:

hbase> alter 'guru99', {NAME => 'contact'}

Bir sütun ailesinin kaç sürümünü saklayacağını ayarlamak için:

hbase> alter 'guru99', NAME => 'education', VERSIONS => 5

Tablodan bir sütun ailesini silmek için:

hbase> alter 'guru99', {NAME => 'contact', METHOD => 'delete'}

Tablo kapsamı özelliklerini de değiştirebilirsiniz. Örneğin, tabloyu salt okunur olarak işaretleyebilir veya maksimum bölge dosya boyutunu 128 MB olarak ayarlayabilirsiniz:

hbase> alter 'guru99', READONLY
hbase> alter 'guru99', MAX_FILESIZE => '134217728'

`alter` komutu şemayı yeniden yazdığı için, değişiklikleri üretim tablosunda dikkatlice planlayın ve sonucu daha sonra `describe` komutuyla doğrulayın.

HBase Tablolarını Devre Dışı Bırakma, Etkinleştirme ve Silme

Bir tabloyu kaldırmak veya belirli değişiklikler uygulamak için HBase, önce tabloyu devre dışı bırakmanızı gerektirir. Devre dışı bırakma işlemi, tabloyu çevrimdışı hale getirir, böylece hiçbir istemci tabloya okuma veya yazma işlemi yapamaz; bu da yapısal değişiklikleri güvenli hale getirir.

Bir tabloyu devre dışı bırakın ve durumunu is_disabled ile kontrol edin:

hbase> disable 'guru99'
hbase> is_disabled 'guru99'

Okuma ve yazma işlemlerine devam etmek için tabloyu tekrar etkinleştirin:

hbase> enable 'guru99'

Bir tablo silinmeden önce devre dışı bırakılmalıdır. Silping Bu komut tabloyu ve içindeki tüm verileri kalıcı olarak siler, bu nedenle dikkatli kullanın:

hbase> disable 'guru99'
hbase> drop 'guru99'

Birden fazla tabloyu aynı anda silmek için, `drop_all` komutu, adı normal bir ifadeyle eşleşen tüm tabloları siler. `create`, `alter`, `disable`, `enable` ve `drop` komutları birlikte, bir veritabanı sisteminin tüm yaşam döngüsünü kapsar. verileri işleme HBase tablolarında.

SSS

En iyi uygulama, sütun ailelerinin sayısını düşük tutmaktır, ideal olarak bir ila üç arasında. HBase, bir bölgedeki tüm aileleri bir araya getirip sıkıştırır, bu nedenle fazladan aileler verileri daha fazla dosyaya yayar ve okuma ve yazma işlemlerini yavaşlatır. Mümkün olduğunda ilgili sütunları tek bir ailede gruplandırın.

Hayır. Oluşturma aşamasında yalnızca sütun ailelerini tanımlarsınız. Sütun niteleyicileri dinamiktir ve veri yazarken herhangi bir satıra eklenebilir. Bu şema esnekliğine sahip tasarım, tabloyu önceden değiştirmeden her satırın farklı sütunlar içermesine olanak tanır.

`truncate 'guru99'` komutunu kullanarak tabloyu devre dışı bırakabilir, silebilir ve aynı sütun aileleriyle yeniden oluşturabilirsiniz. Şema bozulmadan kalırken her satır silinir. Bu, satırları tek tek silmekten daha hızlı ve daha temiz bir yöntemdir.

Bu örnekte HBaseAdmin ve HTable kullanılmıştır.DescriptYa da, her ikisi de HBase 1.0'dan beri kullanımdan kaldırılmıştır. Modern kod, ConnectionFactory aracılığıyla bir Connection'dan bir Admin nesnesi alır ve şemayı Table ile oluşturur.DescriptveyaYapıcı ve SütunAilesiDescriptorBuilder. Tablo oluşturma mantığı aynı kalır.

VERSIONS parametresi, bir sütun ailesinin her hücrenin kaç zaman damgalı sürümünü saklayacağını belirler. Varsayılan değer 1'dir. Get veya scan ile eski sürümleri istemek, saklanan sayı aşılana kadar bunları döndürür; bu sayı aşıldıktan sonra sıkıştırma işlemi en eski hücreleri kaldırır.

HBase, Hadoop ve HDFS üzerinde hızlı rastgele okuma ve yazma işlemlerine ihtiyaç duyan çok büyük, seyrek veri kümeleri için uygundur. Tipik kullanım alanları arasında zaman serisi verileri, mesajlaşma ve tabloların birçok düğümde milyarlarca satıra ulaştığı gerçek zamanlı analizler yer alır.

Yapay zekâ kodlama asistanları ve büyük dil modelleri, düz dil istemlerinden oluşturma, değiştirme ve silme komutları taslak haline getirir, sütun ailesi tasarımını açıklar ve silme gibi riskli işlemleri işaretler.ping Bir tablo. Makine öğrenimi ayrıca erişim kalıplarını analiz ederek daha iyi satır anahtarı ve aile düzenleri önerebilir, ancak her önerinin bir mühendis tarafından doğrulanması gerekir.

Evet. GitHub Yardımcı Pilotu HBase kabuk komutları oluşturabilir ve Java Oluşturma, değiştirme ve silme işlemleri için istemci kodu.ping Kısa bir yorumdan alınan tablolar. RevÇalıştırmadan önce doğru tablo adı, sütun aileleri ve geçerli Yönetici API'si için çıktısını inceleyin.

Bu yazıyı şu şekilde özetleyin: