Örneklerle HBase Kabuk Komutları

⚡ Akıllı Özet

HBase shell komutları, genel komutlar, create ve drop gibi tablo yönetimi komutları, put ve get gibi veri işleme komutları ve küme çoğaltma komutları olmak üzere gruplandırılmış olarak, tabloları ve verileri doğrudan etkileşimli bir komut isteminden yönetmenizi sağlar.

  • 🖥️ Genel komutlar: `status`, `version`, `table_help` ve `whoami` komutları küme durumu ve kullanıcı bilgileri hakkında rapor verir.
  • 🗂️ Masa yönetimi: Tabloları oluşturma, listeleme, açıklama, devre dışı bırakma, etkinleştirme, silme ve değiştirme işlemlerini gerçekleştirme ve yeniden şekillendirme.
  • ✏️ Veri işleme: put, get, delete, deleteall, truncate, count ve scan fonksiyonları hücre değerlerini okuma ve yazma işlemlerini gerçekleştirir.
  • 🔁 Cluster çoğaltma: add_peer, remove_peer, start_replication ve stop_replication komutları veri çoğaltmayı yönetir.
  • TTL özniteliği: Time To Live özelliği, sütun ailesi satırlarının belirli bir saniye sayısından sonra otomatik olarak silinmesini sağlar.
  • 🤖 Yapay zeka desteği: Yapay zekâ asistanları, anlaşılır dilde verilen komutlardan HBase kabuk komutlarını oluşturur ve açıklar.

HBase shell komutları ve tablolar, veriler ve küme çoğaltma için örnekler.

Kabuk komutlarını kullanarak HBase ile nasıl etkileşim kurulur? Java API

Hadoop üzerine HBase'in başarılı bir şekilde kurulmasının ardından, çeşitli komutları çalıştırmak ve birçok işlemi gerçekleştirmek için etkileşimli bir kabuk elde ederiz. Bu komutları kullanarak, veri tabloları üzerinde birden fazla işlem gerçekleştirebiliriz; bu da daha iyi veri depolama verimliliği ve istemci için esnek etkileşim sağlar.

HBase ile iki şekilde etkileşime girebiliriz:

  • HBase etkileşimli kabuk modu ve
  • İçinden Java API.

HBase'de, tablo işlemleri, tablo yönetimi ve veri modellemesi için HBase ile etkileşim kurmak amacıyla etkileşimli kabuk modu kullanılır. Java API modeli sayesinde HBase'de her türlü tablo ve veri işlemini gerçekleştirebiliriz. Bu iki yöntemi kullanarak HBase ile etkileşim kurabiliriz. İkisi arasındaki tek fark şudur ki... Java API kullanımları Java Kod, HBase ile bağlantı kurmak için kullanılırken, shell modu ise shell komutlarını kullanarak HBase ile bağlantı kurar.

Devam etmeden önce HBase hakkında kısa bir özet:

  • HBase kullanımları Hadoop'un HBase, büyük miktarda veriyi depolamak için kullanılan bir depolama sistemidir. HBase, Ana Sunucular ve Bölge Sunucularından oluşur.
  • HBase'de saklanacak veriler bölgeler şeklinde olacaktır. Ayrıca, bu bölgeler bölünecek ve birden fazla bölge sunucusunda saklanacaktır.
  • Bu shell komutları, programcının tam shell modu etkileşimi kullanarak tablo şemalarını ve veri işlemlerini tanımlamasına olanak tanır.
  • Hangi komutu kullanırsak kullanalım, bu HBase veri modeline yansıyacaktır.
  • HBase kabuk komutlarını, Bash kabuğu gibi işletim sistemi komut dosyası yorumlayıcılarında kullanıyoruz.
  • Bash kabuğu, çoğu işletim sistemi için varsayılan komut yorumlayıcısıdır. Linux ve Unix işletim sistemi dağıtımları.
  • HBase'in gelişmiş sürümleri, tablolar için JRuby tarzı nesne yönelimli referanslar içeren kabuk komutları sağlar.
  • HBase shell modunda veri işlemleri gerçekleştirmek için tablo referans değişkenleri kullanılabilir.

Örneğin:

  • Bu eğitimde, 'eğitim' kelimesinin tablo adını temsil ettiği ve 'guru99' sütun adına karşılık geldiği bir tablo oluşturduk.
  • Bazı komutlarda "guru99" ifadesi doğrudan bir tablo adını temsil eder.

Genel komutlar

HBase'de genel komutlar aşağıdaki komutlar kategorisine ayrılır:

  • Durum
  • Sürümü
  • Table_help (tarama, bırakma, alma, koyma, devre dışı bırakma vb.)
  • Ben kimim

HBase shell komutuna erişmek için öncelikle aşağıda belirtilen kodu çalıştırmamız gerekiyor.

hbase Shell

HBase kabuğuna girdikten sonra, aşağıda belirtilen tüm kabuk komutlarını çalıştırabiliriz. Bu komutlar yardımıyla, HBase kabuk modunda her türlü tablo işlemini gerçekleştirebiliriz. Etkileşimli kabuk istemi aşağıdaki gibi görünür:

HBase shell komutu ile HBase etkileşimli kabuk istemi açıldı.

Tüm bu komutları ve kullanımlarını bir örnekle tek tek inceleyelim.

Durum

Syntax:status

Bu komut, kümedeki sunucu sayısı, aktif sunucu sayısı ve ortalama yük değeri gibi sistem durumu hakkında ayrıntılı bilgi verecektir. Sistem hakkında ne kadar ayrıntılı bilgi edinmek istediğinize bağlı olarak belirli parametreler de geçirebilirsiniz. Parametreler 'summary', 'simple' veya 'detailed' olabilir; varsayılan parametre "summary"dir.

Aşağıda, durum komutuna farklı parametrelerin nasıl iletileceğini gösterdik. Aşağıdaki ekran görüntüsüne bakarsak daha iyi bir fikir edinebiliriz.

hbase(main):001:0>status
hbase(main):002:0>status 'simple'
hbase(main):003:0>status 'summary'
hbase(main):004:0> status 'detailed'

Aşağıda durum çıktısı gösterilmektedir:

HBase shell status komutunun çıktısı, aktif sunucuları, devre dışı sunucuları ve ortalama yükü göstermektedir.

Bu durum komutunu çalıştırdığımızda, mevcut sunucu sayısı, çalışmayan sunucu sayısı ve sunucunun ortalama yükü hakkında bilgi verir. Burada, ekran görüntüsünde 1 çalışan sunucu, 1 çalışmayan sunucu ve 7.0000 ortalama yük gibi bilgiler gösterilmektedir.

Sürümü

Syntax: version

Sürüm çıktısı aşağıda gösterilmiştir:

HBase shell version komutu, yüklü HBase sürümünü gösterir.

  • Bu komut, komut satırı modunda şu anda kullanılan HBase sürümünü görüntüler.
  • Sürüm komutunu çalıştırdığınızda, yukarıda gösterildiği gibi bir çıktı alacaksınız.

Tablo yardımı

Syntax:table_help

Aşağıda table_help çıktısı gösterilmektedir:

HBase shell table_help çıktısı, create ve get_table komutlarının kullanımını listeliyor.

Bu komut şu konularda yol gösterir:

  • Tablo referanslı komutlar nelerdir ve nasıl kullanılırlar?
  • Bu, farklı HBase kabuk komutlarının kullanım şekillerini ve sözdizimlerini sağlayacaktır.
  • Yukarıdaki ekran görüntüsünde, "create" ve "get_table" komutlarının sözdizimi ve kullanımları gösterilmektedir. HBase'de tablo oluşturulduktan sonra, bu komutlar aracılığıyla tabloyu yönetebiliriz.
  • Bu, put, get gibi tablo manipülasyon komutlarını ve diğer tüm komut bilgilerini sağlayacaktır.

benkimim

Syntax: Whoami

Whoami çıktısı aşağıda gösterilmiştir:

HBase kabuğundaki whoami komutu, geçerli hduser ve grupları döndürür.

Bu "whoami" komutu, HBase kümesinden mevcut HBase kullanıcı bilgilerini döndürmek için kullanılır. Şu gibi bilgiler sağlayacaktır:

  • HBase'de bulunan gruplar.
  • Kullanıcı bilgileri; örneğin, bu durumda "hduser" ekran görüntüsünde gösterildiği gibi kullanıcı adını temsil eder.

TTL(Yaşam Süresi) – Özellik

HBase'de sütun aileleri, TTL kullanılarak saniye cinsinden zaman değerlerine ayarlanabilir. HBase, süre dolduğunda satırları otomatik olarak siler. Bu özellik, geçerli sürüm de dahil olmak üzere bir satırın tüm sürümleri için geçerlidir.

HBase'de ilgili satır için kodlanan TTL zamanı UTC olarak belirtilir. Bu özellik, tablo yönetim komutlarıyla birlikte kullanılır. TTL işleme ve Sütun ailesi TTL'leri arasındaki önemli farklar aşağıdadır:

  • Hücre TTL'leri saniye yerine milisaniye birimleriyle ifade edilir.
  • Bir hücrenin TTL değeri, hücrenin etkin ömrünü Sütun Ailesi düzeyindeki TTL ayarının ötesine uzatamaz.

Tablo Yönetim komutları

Bu komutlar, programcıların satır ve sütun aileleriyle tablolar ve tablo şemaları oluşturmasına olanak tanır. Aşağıda Tablo Yönetimi komutları yer almaktadır:

  • Oluştur
  • Liste
  • Tanımlamak
  • devre dışı bırakmak
  • Hepsini etkisiz hale getir
  • etkinleştirme
  • Hepsini etkinleştir
  • Damla
  • Tümünü bırak
  • Filtreleri göster
  • değiştirmek
  • Alter_status

Şimdi bir örnek üzerinden HBase'deki çeşitli komut kullanımlarını inceleyelim.

Oluştur

Syntax: create <tablename>, <columnfamilyname>

Örnek:-

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

Oluşturma komutunun sonucu aşağıda gösterilmiştir:

HBase shell create komutu, guru99 sütun ailesiyle education tablosunu oluşturuyor.

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 özgü bazı öznitelikleri de aktarabiliriz. 'Eğitim' tablosunun oluşturulup oluşturulmadığını kontrol etmek için aşağıdaki "list" komutunu kullanırız. Ayrıca bakınız: HBase tabloları oluşturma Java ve kabuk.

Liste

Syntax:list

Liste çıktısı aşağıda gösterilmiştir:

HBase shell list komutu, HBase'de mevcut sekiz tabloyu gösteriyor.

  • "List" komutu, HBase'de mevcut olan veya oluşturulan tüm tabloları görüntüler.
  • Yukarıdaki ekran görüntüsünde gösterilen çıktı, şu anda HBase'de mevcut olan tabloları göstermektedir.
  • Bu ekran görüntüsünde, HBase'de toplam 8 tablo bulunduğunu gösteriyor.
  • İsteğe bağlı düzenli ifade parametreleri geçirerek tablolardan çıktı değerlerini filtreleyebiliriz.

Tanımlamak

Syntax:describe <table name>
hbase(main):010:0>describe 'education'

Açıklama çıktısı aşağıda gösterilmiştir:

HBase shell describe komutunun çıktısı, education tablosundaki sütun ailelerini detaylandırıyor.

Bu komut adlandırılmış tabloyu açıklar.

  • Bu, söz konusu tabloda bulunan sütun aileleri hakkında daha fazla bilgi verecektir.
  • Bizim durumumuzda, "eğitim" tablosunun açıklamasını veriyor.
  • Bu, tablo adı, sütun aileleri, ilgili filtreler, sürümler ve diğer bazı ayrıntılar hakkında bilgi verecektir.

Enable / Disable

Syntax: disable <tablename>
hbase(main):011:0>disable 'education'

Devre dışı bırakma çıktısı aşağıda gösterilmiştir:

HBase kabuğundaki disable komutu, eğitim tablosunu çevrimdışı hale getiriyor.

  • Bu komut, belirtilen tabloyu devre dışı bırakmaya başlayacaktır.
  • Bir tablonun silinmesi veya kaldırılması gerekiyorsa, öncelikle devre dışı bırakılması gerekir.

Yukarıdaki ekran görüntüsünde, tablo eğitimini devre dışı bırakıyoruz.

Tümünü devre dışı bırak

 Syntax: disable_all<"matching regex"
  • Bu komut, verilen normal ifadeyle eşleşen tüm tabloları devre dışı bırakacaktır.
  • Uygulama, (eşleştirme için bir regex eklenmesi dışında) drop komutuyla aynıdır.
  • Tablo devre dışı bırakıldıktan sonra, kullanıcı tabloyu HBase'den silebilir.
  • Silmeden veya bırakmadan önceping Bir tablo ise, önce devre dışı bırakılmalıdır.

etkinleştirme

Syntax: enable <tablename>
hbase(main):012:0>enable 'education'

Etkinleştirme çıktısı aşağıda gösterilmiştir:

HBase shell enable komutu, devre dışı bırakılmış eğitim tablosunu yeniden etkinleştiriyor.

  • Bu komut, belirtilen tabloyu etkinleştirmeye başlayacaktır.
  • Devre dışı bırakılan tabloyu önceki durumuna geri getirmek için bu komutu kullanırız.
  • Bir tablo ilk etapta devre dışı bırakılmışsa ve silinmemiş veya kaldırılmamışsa ve devre dışı bırakılmış tabloyu yeniden kullanmak istiyorsak, bu komutu kullanarak onu etkinleştirmemiz gerekir.
  • Yukarıdaki ekran görüntüsünde, "eğitim" tablosunu etkinleştiriyoruz.

filtreleri göster

Syntax: show_filters

`show_filters` komutunun çıktısı aşağıda gösterilmiştir:

HBase shell show_filters çıktısı, mevcut HBase filtrelerini listeler.

Bu komut, HBase'de bulunan tüm filtreleri görüntüler; örneğin ColumnPrefixFilter, TimestampsFilter, PageFilter, FamilyFilter vb.

düşürmek

Syntax:drop <table name>
hbase(main):017:0>drop 'education'

Aşağıda damlacık çıktısı gösterilmektedir:

HBase shell drop komutu, devre dışı bırakılmış eğitim tablosunu siliyor.

Drop komutu için aşağıdaki noktalara dikkat etmeliyiz:

  • HBase'de bulunan tabloyu silmek için öncelikle onu devre dışı bırakmamız gerekiyor.
  • HBase'de bulunan tabloyu silmek için öncelikle onu devre dışı bırakmamız gerekiyor.
  • Dolayısıyla, bir tabloyu silmek veya kaldırmak için öncelikle "disable" komutu kullanılarak tablo devre dışı bırakılmalıdır.
  • Yukarıdaki ekran görüntüsünde, burada bir damla bırakıyoruz.ping “Eğitim” tablosu.
  • Bu komutu çalıştırmadan önce, “eğitim” tablosunu devre dışı bırakmanız gerekmektedir.

tümünü bırak

Syntax: drop_all<"regex">
  • Bu komut, verilen düzenli ifadeye uyan tüm tabloları silecektir.
  • Bu komutu çalıştırmadan önce, disable_all komutu kullanılarak tabloların devre dışı bırakılması gerekir.
  • Düzenli ifade eşleştirmesi içeren tablolar HBase'den silinecektir.

etkin

Syntax: is_enabled 'education'

Bu komut, belirtilen tablonun etkin olup olmadığını doğrular. Genellikle "enable" ve "is_enabled" komut eylemleri arasında küçük bir karışıklık vardır, bunu burada açıklığa kavuşturuyoruz:

  • Diyelim ki bir tablo devre dışı bırakılmış; bu tabloyu kullanmak için, `enable` komutunu kullanarak onu etkinleştirmemiz gerekiyor.
  • `is_enabled` komutu, tablonun etkin olup olmadığını kontrol eder.

değiştirmek

Syntax: alter <tablename>, NAME=><column familyname>, VERSIONS=>5

Bu komut sütun ailesi şemasını değiştirir. Tam olarak ne işe yaradığını anlamak için burada bir örnekle anlattık.

Örnekler: Bu örneklerde, tablolar ve sütunları üzerinde ALTER komut işlemlerini gerçekleştireceğiz. Şu gibi işlemler yapacağız:

  • Tek ve çok sütunlu aile adlarını değiştirme.
  • Tablodan sütun aile adlarını silme.
  • Tablo ile kapsam niteliklerini kullanan diğer çeşitli işlemler.

'Education' tablosundaki 'guru99_1' sütun ailesini mevcut değerden değiştirmek veya eklemek ve en fazla 5 hücre sürümüne izin vermek. Burada, "education" daha önce "guru99" sütun adıyla oluşturulmuş tablo adıdır. Bir ALTER komutu yardımıyla, sütun ailesi şemasını guru99'dan guru99_1'e aşağıdaki gibi değiştirmeye çalışıyoruz:

HBase kabuğunda "alter" komutuyla education tablosundaki "family" sütununu guru99_1 olarak değiştiriyorum.

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

Ayrıca, birden fazla sütun ailesi üzerinde de `alter` komutunu kullanabilirsiniz. Örneğin, aşağıda gösterildiği gibi, mevcut "eğitim" tablomuz için iki yeni sütun tanımlayacağız:

HBase kabuğunda "alter" komutu, guru99_2 ve guru99_3 olmak üzere iki yeni sütun ailesi ekliyor.

 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
  • Bu komutu kullanarak aynı anda birden fazla sütun şemasını değiştirebiliriz.
  • Yukarıdaki ekran görüntüsünde gösterildiği gibi, guru99_2 ve guru99_3, eğitim tablosu için tanımladığımız iki yeni sütun adıdır.
  • Önceki ekran görüntüsünde bu komutun nasıl kullanılacağını görebiliriz.

Bu adımda, tablodan bir sütun ailesini nasıl sileceğimizi göreceğiz. 'Eğitim' tablosundaki 'f1' sütun ailesini silmek için aşağıdaki komutlardan birini kullanın. Sonuç aşağıdaki ekran görüntüsünde gösterilmektedir:

HBase shell alter komutuyla education tablosundan family sütununu silme

hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'

Bu komutta, ilk adımda oluşturduğumuz guru99_1 adlı sütun alanını silmeye çalışıyoruz. Aşağıdaki ekran görüntülerinde gösterildiği gibi, iki adım gösterilmektedir: tablo kapsamı özniteliğinin nasıl değiştirileceği ve tablo kapsamı özniteliğinin nasıl kaldırılacağı.

HBase kabuğunda MAX_FILESIZE tablo kapsamı özniteliğini ayarlayan alter komutu

Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'

Adım 1) MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH vb. gibi tablo kapsamlı öznitelikleri değiştirebilirsiniz. Bunlar sona eklenebilir; örneğin, bir bölgenin maksimum boyutunu 128 MB veya başka bir bellek değerine değiştirmek için bu komutu kullanırız.

Kullanımı:

  • Yukarıda gösterildiği gibi, MAX_FILESIZE'ı tabloyu kapsam özniteliği olarak kullanarak belirleyebiliriz.
  • MAX_FILESIZE'da belirtilen sayı, bayt cinsinden bellek alanını ifade eder.

NOT: MAX_FILESIZE tablo kapsamı, HBase'de bulunan bazı öznitelikler tarafından belirlenir. MAX_FILESIZE de tablo kapsamı öznitelikleri arasında yer alır.

Adım 2) Ayrıca, `table_att_unset` yöntemini kullanarak tablo kapsamındaki bir özniteliği kaldırabilirsiniz. Aşağıdaki komuta bakın:

alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
  • Yukarıdaki ekran görüntüsü, kapsam öznitelikleriyle birlikte değiştirilmiş tablo adını göstermektedir.
  • `table_att_unset` yöntemi, tabloda bulunan öznitelikleri kaldırmak için kullanılır.
  • İkinci durumda, MAX_FILESIZE özelliğini kaldırıyoruz.
  • Komutun yürütülmesinin ardından, "eğitim" tablosundaki MAX_FILESIZE özniteliği kaldırılacaktır.

alter_status

 Syntax: alter_status 'education'

alter_status çıktısı aşağıda gösterilmiştir:

HBase shell alter_status komutu, bölgelerden birinin güncellendiğini gösteriyor.

  • Bu komut aracılığıyla, `alter` komutunun durumunu öğrenebilirsiniz.
  • Bu, tablonun güncellenmiş şemayı alan bölgelerinin sayısını gösterir. Tablo adını girmeniz gerekir.
  • Yukarıdaki ekran görüntüsünde 1/1 bölgenin güncellendiği gösteriliyor. Bu, bir bölgenin güncellendiği anlamına geliyor. Bundan sonra, işlem başarılı olursa, "tamamlandı" yorumu görüntülenecektir.

Veri işleme komutları

Bu komutlar, tabloya veri ekleme, tablodan veri alma ve şema silme gibi veri manipülasyonları için tablo üzerinde çalışır. Bu komutlar şunlardır:

  • saymak
  • Koymak
  • Ön Onay
  • Sil
  • Hepsini sil
  • Kes
  • taramak

Şimdi bu komutların kullanımını bir örnekle inceleyelim. Ayrıca bakınız: HBase verilerini okuma ve yazma.

saymak

Syntax: count <'tablename'>, CACHE =>1000
  • Bu komut, bir tablodaki satır sayısını alır. Bu komutun döndürdüğü değer, satır sayısıdır.
  • Mevcut sayı varsayılan olarak her 1000 satırda bir gösterilir.
  • Sayım aralığı isteğe bağlı olarak belirtilebilir.
  • Varsayılan önbellek boyutu 10 satırdır.
  • Doğru önbellek ayarlarıyla yapılandırıldığında, sayma komutu hızlı çalışacaktır.

Örnek:

hbase> count 'guru99', CACHE=>1000

Sayım çıktısı aşağıda gösterilmiştir:

HBase shell'deki count komutu, guru99 tablosunun satır sayısını döndürüyor.

Bu örnek, "guru99" tablosundan her seferinde 1000 satır getirir. Tablo daha fazla satır içeriyorsa önbellek değerini düşürebiliriz. Ancak varsayılan olarak, her seferinde bir satır getirir.

hbase>count 'guru99', INTERVAL => 100000
hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000

Diyelim ki "guru99" tablosunda g gibi bir tablo referansı var. Aşağıdaki gibi, bu tablo referansı üzerinde de count komutunu çalıştırabiliriz:

hbase>g.count INTERVAL=>100000
hbase>g.count INTERVAL=>10, CACHE=>1000

Koymak

Syntax:  put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>

Bu komut aşağıdaki amaçlar için kullanılır:

  • Tanımlanmış veya belirtilen bir tabloya, satıra veya sütuna bir hücre 'değeri' koyacaktır.
  • İsteğe bağlı olarak bir zaman damgası da eşleştirecektir.

Örnek: Burada, “guru99” tablosuna r1 satırı ve c1 sütununa değerler yerleştiriyoruz.

hbase> put 'guru99', 'r1', 'c1', 'value', 10

Aşağıdaki ekran görüntüsünde gösterildiği gibi, "guru99" tablosuna 10, 15 ve 30 olmak üzere üç değer yerleştirdik.

HBase shell put komutu, guru99 tablosuna 10, 15 ve 30 değerlerini ekliyor.

Diyelim ki "guru99" tablosunda g gibi bir tablo referansı var. Bu tablo referansı üzerinde de şu komutu çalıştırabiliriz:

hbase> g.put 'guru99', 'r1', 'c1', 'value', 10

“guru99” alanına değerler girdikten sonra çıktı yukarıdaki ekran görüntüsünde gösterildiği gibi olacaktır. Girilen değerin tabloya doğru şekilde eklenip eklenmediğini kontrol etmek için “tarama” komutunu kullanıyoruz. Aşağıdaki ekran görüntüsünde, değerlerin doğru şekilde eklendiğini görebiliriz.

HBase shell tarama çıktısı, guru99 tablosuna eklenen değerleri doğruluyor.

Code Kısa Örnek: Pratik Amaçlı

create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}
put 'guru99', 'r1', 'Edu:c1', 'value', 10
put 'guru99', 'r1', 'Edu:c1', 'value', 15
put 'guru99', 'r1', 'Edu:c1', 'value', 30

Kod parçacığından anlaşıldığı üzere, şunları yapıyoruz:

  • Burada, sütun adı "Edu" olan 'guru99' adında bir tablo oluşturuyoruz.
  • “PUT” komutunu kullanarak, “guru99” tablosundaki “Edu” sütunundaki “r1” satırına değerler yerleştiriyoruz.

Ön Onay

Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}

Burada, Bu komut, TIMESTAMP, TIMESTAMP, VERSIONS ve FILTERS gibi parametreleri içerir. Bu komutla, tabloda bulunan bir satırın veya hücrenin içeriğini elde edebilirsiniz. Ayrıca, belirli bir satırın veya hücrenin içeriğini almak için TIMESTAMP, TIMERANGE, VERSIONS, FILTERS vb. gibi ek parametreler de ekleyebilirsiniz.

Aşağıdaki "get" çıktısı, r1. satır ve c1. sütun değerlerini döndürür:

HBase shell get komutu, guru99 tablosundan r1. satırı ve c1. sütunu döndürüyor.

Örnekler: -

hbase> get 'guru99', 'r1', {COLUMN => 'c1'}

Yukarıdaki ekran görüntüsünde gösterildiği gibi, bu komut kullanılarak "guru99" tablosunun r1. satırı ve c1. sütunundaki değerler görüntülenecektir.

hbase> get 'guru99', 'r1'

“guru99” tablosu için, r1 satırındaki değerler bu komut kullanılarak görüntülenecektir.

hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}

Bu komut kullanılarak “guru99” tablosu için ts1 ile ts2 zaman aralığındaki r1 satırının değerleri görüntülenecektir.

hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}

Bu komut kullanılarak “guru99” tablosu için r1 satırı ve c1, c2 ve c3 sütun ailelerinin değerleri görüntülenecektir.

Sil

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • Bu komut, tanımlanmış bir tablo satırındaki veya sütunundaki hücre değerini siler.
  • Silinen hücrenin koordinatları, silinen hücrenin koordinatlarıyla tam olarak eşleşmelidir.
  • Tarama sırasında, bir hücreyi silmek değerlerin eski sürümlerini gizler.

Örnek: Aşağıdaki silme komutu, guru99 tablosundan r1 ve c1 hücrelerini siler:

HBase shell delete komutu, guru99 tablosundan r1 c1 hücresini siliyor.

hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
  • Yukarıdaki komut, “guru99” tablosundaki c1 sütun ailesinden r1 satırını silecektir.
  • "guru99" tablosunun, örneğin g gibi bir tablo referansı olduğunu varsayalım.
  • Komutu tablo referansı üzerinde de çalıştırabiliriz, örneğin: hbase> g.delete 'guru99', 'r1', 'c1′”.

hepsini sil

Syntax: deleteall <'tablename'>, <'rowname'>
  • Bu komut, belirtilen satırdaki tüm hücreleri siler.
  • Söz diziminde isteğe bağlı olarak sütun adlarını ve zaman damgasını tanımlayabiliriz.

Örnek: Aşağıdaki deleteall komutu, r1 satırındaki tüm hücreleri siler:

HBase kabuğundaki `deleteall` komutu, guru99 tablosunun r1 satırındaki tüm hücreleri siler.

hbase>deleteall 'guru99', 'r1', 'c1'

Bu işlem, tabloda bulunan tüm satır ve sütunları silecektir. İsteğe bağlı olarak, sütun adlarını da belirtebiliriz.

Kes

Syntax:  truncate <tablename>

Aşağıdaki `truncate` komutu tabloyu boşaltırken `kee` komutu tabloyu boş bırakır.ping şeması:

HBase kabuğunda truncate komutunu devre dışı bırakma, silmepingve guru99 tablosunu yeniden oluşturmak

HBase tablosunun boşaltılmasından sonra şema mevcut olacak ancak kayıtlar kaybolacaktır. Bu komut 3 işlev gerçekleştirir; bunlar aşağıda listelenmiştir:

  • Tablo zaten mevcutsa devre dışı bırakır.
  • Tablo zaten mevcutsa siler.
  • Bahsi geçen tabloyu yeniden oluşturur.

taramak

Syntax: scan <'tablename'>, {Optional parameters}

Bu komut, tablonun tamamını tarar ve tablo içeriğini görüntüler.

  • Sistemde mevcut tablolar hakkında daha fazla bilgi almak için bu tarama komutuna çeşitli isteğe bağlı özellikleri aktarabiliriz.
  • Tarayıcı özellikleri aşağıdaki özelliklerden bir veya daha fazlasını içerebilir.
  • Bunlar TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW ve STOPROW'dur.
scan 'guru99'

Tarama çıktısı aşağıda gösterilmiştir:

HBase shell scan komutu, guru99 tablosunun r1, r2 ve r3 satırlarını görüntülüyor.

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

  • Bu, sütun adları ve değerleriyle birlikte "guru99" tablosunu gösterir.
  • Bu, tek bir sütun değeri olan c1 için r1, r2 ve r3 olmak üzere üç satır değerinden oluşur.
  • Bu, ilgili satırlarla ilişkili değerleri görüntüler.

Örnekler: - Tarama komutunun farklı kullanımları:

Komuta kullanım
'.META.'yı tara, {SÜTUNLAR => 'info:regioninfo'} HBase'deki tablolarda bulunan sütunlarla ilgili tüm meta veri bilgilerini görüntüler.
tarama 'guru99', {SÜTUNLAR => ['c1', 'c2'], SINIR => 10, STARTROW => 'xyz'} Bu, guru99 tablosunun içeriğini c1 ve c2 sütun aileleriyle birlikte görüntüler ve değerleri 10 ile sınırlandırır.
'guru99'u tara, {SÜTUNLAR => 'c1', TIMERANGE => [1303668804, 1303668904]} Bu, guru99'un içeriğini, belirtilen zaman aralığı öznitelik değeri arasında bulunan değerlerle birlikte c1 sütun adıyla görüntüler.
'guru99'u tarayın, {RAW => true, VERSIONS =>10} Bu komutta, RAW=> true seçeneği, tabloda bulunan tüm hücre değerlerini görüntülemek gibi gelişmiş bir özellik sunar (guru99).

Code Örnek: Öncelikle bir tablo oluşturun ve tabloya değerler girin. Girişler aşağıdaki ekran görüntüsünde gösterilmektedir:

HBase shell girdisi, guru99 tablosunu oluşturuyor ve ham taramadan önce sürümlü değerleri ekliyor.

create 'guru99', {NAME=>'e', VERSIONS=>2147483647}
put 'guru99', 'r1', 'e:c1', 'value', 10
put 'guru99', 'r1', 'e:c1', 'value', 12
put 'guru99', 'r1', 'e:c1', 'value', 14
delete 'guru99', 'r1', 'e:c1', 11

Tarama komutunu çalıştırırsak:

Query: scan 'guru99', {RAW=>true, VERSIONS=>1000}

Aşağıda gösterilen çıktıyı görüntüleyecektir:

HBase shell ham tarama çıktısı, silinmiş bir değer de dahil olmak üzere birden fazla hücre sürümünü göstermektedir.

Yukarıdaki ekran görüntüsünde gösterilen çıktı aşağıdaki bilgileri vermektedir:

  • RAW=>true, VERSIONS=>1000 özellikleriyle guru99 tablosu taranıyor.
  • Sütun aileleri ve değerleriyle birlikte satırları görüntüleme.
  • Üçüncü satırda görüntülenen değerler, sütunda bulunan silinmiş değeri göstermektedir.
  • Bu programın gösterdiği çıktı rastgeledir; tabloya girdiğimiz değerlerle aynı sırada olamaz.

Cluster Çoğaltma Komutları

  • Bu komutlar HBase'in küme kurulum modunda çalışır.
  • Küme içine eş eklemek ve çıkarmak, ayrıca çoğaltmayı başlatmak ve durdurmak için genel olarak bu komutlar kullanılır.
Komuta İşlevsellik
add_peer Çoğaltılacak kümeye eşler ekler.
hbase> add_peer '3', zk1,zk2,zk3:2182:/hbase-prod
kaldır_peer Tanımlanan çoğaltma akışını durdurur ve eş cihazla ilgili tüm meta veri bilgilerini siler.
hbase> kaldır_peer '1'
start_replication Tüm çoğaltma özelliklerini yeniden başlatır.
hbase> start_replication
stop_replication Tüm çoğaltma özelliklerini durdurur.
hbase>stop_replication

SSS

Etkileşimli HBase kabuğundan çıkmak ve işletim sistemi komut istemine dönmek için `exit` veya `quit` yazıp Enter tuşuna basın. Kabuğu `hbase shell` komutuyla açarsınız. `exit` veya `quit` komutları HBase hizmetini durdurmaz; yalnızca kabuk oturumunu sonlandırır.

Evet. Örneğin, `echo “list” | hbase shell` komutuyla komutları etkileşimli olmayan bir şekilde çalıştırabilir veya `hbase shell script.txt` ile kaydedilmiş bir dosyayı çalıştırabilirsiniz. Kabuk JRuby tabanlı olduğundan, `.rb` komut dosyalarına Ruby mantığı ve döngüleri de yerleştirebilirsiniz.

Shell, hızlı manuel komutlar ve yönetim için etkileşimli bir JRuby komut istemidir. Java API, Connection, Admin ve Table arayüzlerini kullanarak, tablo oluşturan ve verileri programatik olarak okuyan veya yazan uygulamalar içindir. Her ikisi de aynı HBase kümesine ve verilere erişir.

"Tablo zaten mevcut" hatası, mevcut bir adı tekrar eden bir `create` işlemi yapıldığında, "Tablo devre dışı bırakılmadı" hatası ise önce devre dışı bırakmadan silme veya değiştirme işlemi yapıldığında görünür. Silme veya değiştirme işleminden önce `disable 'table'` komutunu çalıştırın ve bir ad oluşturmadan önce bunu kontrol etmek için `exists 'table'` komutunu kullanın.

HBase sütun ailesi, hücre başına sınırlı sayıda zaman damgalı sürüm tutar; geçmişte üç, daha yeni sürümlerde ise bir. Sayıyı oluşturma veya değiştirme sırasında VERSIONS ile ayarlayın ve bir get veya scan komutunda {VERSIONS => n} kullanarak eski sürümleri isteyin.

Tablo referans değişkeni, `g = get_table 'guru99'` komutuyla döndürülen bir shell nesnesidir. Bu nesne üzerinde `g.put`, `g.get` veya `g.count` gibi yöntemleri çağırarak tablo adını tekrar tekrar kullanmak yerine, JRuby tarzı kullanışlı bir kısayol elde edersiniz.

Yapay zekâ kodlama asistanları ve büyük dil modelleri, düz dil isteklerinden HBase kabuk komutları oluşturur, tarama filtreleri veya TTL gibi alışılmadık seçenekleri açıklar ve hataların ayıklanmasına yardımcı olur. Makine öğrenimi ayrıca çoğaltma ve bölge ayarlamasına rehberlik etmek için küme metriklerini analiz eder, ancak her komutun bir mühendis tarafından doğrulanması gerekir.

Evet. GitHub Yardımcı Pilotu Kısa bir yorumdan yola çıkarak HBase kabuk komutları ve JRuby betikleri önerir; bunlar arasında create, put, scan ve alter örnekleri bulunur. RevGerçek bir kümede çalıştırmadan önce, doğru tablo adı, sütun aileleri ve VERSIONS gibi sözdizimi için çıktısını inceleyin.

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