Apache HBase kümesini yeni sürüme geçirme
Bu makalede, Azure HDInsight'ta Apache HBase kümenizi daha yeni bir sürüme güncelleştirme adımları anlatılmaktadır.
Bu makale yalnızca kaynak ve hedef kümeleriniz için aynı Azure Depolama hesabını kullandığınızda geçerlidir. Hedef kümeniz için yeni veya farklı bir Depolama hesabıyla yükseltmek için bkz. Apache HBase'i yeni depolama hesabıyla yeni bir sürüme geçirme.
Yükseltme sırasında kapalı kalma süresi yalnızca birkaç dakika olmalıdır. Bu kapalı kalma süresi, tüm bellek içi verileri temizleme adımları ve yeni kümedeki hizmetleri yapılandırma ve yeniden başlatma süresinden kaynaklanır. Sonuçlarınız düğüm sayısına, veri miktarına ve diğer değişkenlere bağlı olarak değişir.
Apache HBase uyumluluğunu gözden geçirin
Apache HBase'i yükseltmeden önce kaynak ve hedef kümelerdeki HBase sürümlerinin uyumlu olduğundan emin olun. Uygulamanızın yeni sürümle uyumlu olduğundan emin olmak için HBase Başvuru Kılavuzu'ndaki HBase sürüm uyumluluk matrisini ve sürüm notlarını gözden geçirin.
Aşağıda örnek bir uyumluluk matrisi verilmiştir. Y uyumluluğu, N ise olası bir uyumsuzluğu gösterir:
Uyumluluk türü | Ana sürüm | İkincil sürüm | Patch |
---|---|---|---|
Kablo uyumluluğunu Client-Server | N | E | E |
Server-Server uyumluluğu | N | E | E |
Dosya biçimi uyumluluğu | N | E | E |
İstemci API uyumluluğu | N | E | E |
İstemci ikili uyumluluğu | N | N | E |
Sunucu tarafı sınırlı API uyumluluğu | |||
Dengeli | N | E | E |
Gelişen | N | N | E |
Kararsız | N | N | N |
Bağımlılık uyumluluğu | N | E | E |
İşletimsel uyumluluk | N | N | E |
HDInsight sürümleri ve uyumluluk hakkında daha fazla bilgi için bkz. Azure HDInsight sürümleri.
Apache HBase kümesi geçişe genel bakış
Azure HDInsight'ta Apache HBase kümenizi yükseltmek için aşağıdaki temel adımları tamamlayın. Ayrıntılı yönergeler için ayrıntılı adımlara ve komutlara bakın veya otomatik geçiş için betikleri kullanarak HBase'i geçirme bölümündeki betikleri kullanın.
Kaynak kümeyi hazırlama:
- Veri alımını durdurun.
- Memstore verilerini temizleme.
- HBase'i Ambari'den durdurun.
- Hızlandırılmış yazma işlemlerine sahip kümeler için Önceden Yazma Günlüğü (WAL) dizinini yedekleyin.
Hedef kümeyi hazırlama:
- Hedef kümeyi oluşturun.
- HBase'i Ambari'den durdurun.
- ÖZGÜN kaynak küme kapsayıcısına başvurmak için HDFS hizmet yapılandırmalarında güncelleştirme
fs.defaultFS
. - Hızlandırılmış yazma işlemleri olan kümeler için, HBase hizmet yapılandırmalarında özgün kaynak küme kapsayıcısına başvurmak üzere güncelleştirin
hbase.rootdir
. - Zookeeper verilerini temizleyin.
Geçişi tamamlayın:
- WAL'yi temizleyin ve geçirin.
- Uygulamaları hedef kümenin varsayılan kapsayıcısından özgün kaynak kapsayıcıya kopyalayın.
- Ambari hedef kümesinden tüm hizmetleri başlatın.
- HBase'i doğrulayın.
- Kaynak kümeyi silin.
Ayrıntılı geçiş adımları ve komutları
Apache HBase kümenizi geçirmek için bu ayrıntılı adımları ve komutları kullanın.
Kaynak kümeyi hazırlama
Kaynak HBase kümesine alımı durdurun.
Yükseltmekte olduğunuz kaynak HBase kümesini boşaltın.
HBase, gelen verileri memstore adlı bir bellek içi depoya yazar. Memstore belirli bir boyuta ulaştıktan sonra HBase, kümenin depolama hesabında uzun süreli depolama için depoyu diske boşaltır. Yükseltmeden sonra kaynak küme silindiğinde, memstore'lardaki tüm veriler de silinir. Verileri korumak için, yükseltmeden önce her tablonun memstore dosyasını el ile diske boşaltın.
Azure hbase-utils GitHub deposundanflush_all_tables.sh betiğini çalıştırarak memstore verilerini temizleyebilirsiniz.
Ayrıca HDInsight kümesinden aşağıdaki HBase kabuk komutunu çalıştırarak memstore verilerini temizleyebilirsiniz:
hbase shell flush "<table-name>"
ile
https://<OLDCLUSTERNAME>.azurehdinsight.net
kaynak kümede Apache Ambari'de oturum açın ve HBase hizmetlerini durdurun.Onay isteminde, HBase için bakım modunu açmak için kutuyu seçin.
Ambari'ye bağlanma ve kullanma hakkında daha fazla bilgi için bkz. Ambari Web Kullanıcı Arabirimini kullanarak HDInsight kümelerini yönetme.
Kaynak HBase kümenizde Hızlandırılmış Yazmalar özelliği yoksa bu adımı atlayın. Hızlandırılmış Yazmaları olan kaynak HBase kümeleri için, kaynak kümenin Zookeeper düğümlerinden veya çalışan düğümlerinden herhangi birinde bir SSH oturumundan aşağıdaki komutları çalıştırarak HDFS altında WAL dizinini yedekleyin.
hdfs dfs -mkdir /hbase-wal-backup hdfs dfs -cp hdfs://mycluster/hbasewal /hbase-wal-backup
Hedef kümeyi hazırlama
Azure portal, kaynak kümeyle aynı depolama hesabını kullanarak ancak farklı bir kapsayıcı adıyla yeni bir hedef HDInsight kümesi ayarlayın:
konumundaki yeni kümede Apache Ambari'de
https://<NEWCLUSTERNAME>.azurehdinsight.net
oturum açın ve HBase hizmetlerini durdurun.Hizmetler>HDFS> GelişmişGelişmiş çekirdek sitesiniyapılandır>> altında, HDFS ayarını özgün kaynak küme kapsayıcı adına işaret eden şekilde değiştirin
fs.defaultFS
. Örneğin, aşağıdaki ekran görüntüsündeki ayar olarakwasbs://hbase-upgrade-old-2021-03-22
değiştirilmelidir.Hedef kümenizde Hızlandırılmış Yazmalar özelliği varsa, yolu özgün kaynak küme kapsayıcı adına işaret eden şekilde değiştirin
hbase.rootdir
. Örneğin, aşağıdaki yol olarakhbase-upgrade-old-2021-03-22
değiştirilmelidir. Kümenizde Hızlandırılmış Yazmalar yoksa bu adımı atlayın.Herhangi bir Zookeeper düğümünde veya çalışan düğümünde aşağıdaki komutları çalıştırarak hedef kümedeki Zookeeper verilerini temizleyin:
hbase zkcli rmr /hbase-unsecure quit
WAL'ı temizleme ve geçirme
Kaynak HDI sürümünüze ve kaynak ve hedef kümelerde Hızlandırılmış Yazma olup olmadığına bağlı olarak aşağıdaki komutları çalıştırın.
- HDI 3.6 Temel destekte olduğundan ve yeni kümeler için önerilmiyorsa hedef küme her zaman HDI sürüm 4.0'dır.
- HDFS kopyalama komutu şeklindedir
hdfs dfs <copy properties starting with -D> -cp <source> <destination> # Serial execution
.
Not
-
<source-container-fullpath>
WASB depolama türü için değeridirwasbs://<source-container-name>@<storageaccountname>.blob.core.windows.net
. -
<source-container-fullpath>
depolama türü için Azure Data Lake Storage 2. Nesil değeridirabfs://<source-container-name>@<storageaccountname>.dfs.core.windows.net
.
- Kaynak küme Hızlandırılmış Yazmalar ile HDI 3.6'dır ve hedef kümede Hızlandırılmış Yazmalar bulunur.
- Kaynak küme Hızlandırılmış Yazmalar olmadan HDI 3.6'dır ve hedef kümede Hızlandırılmış Yazmalar bulunur.
- Kaynak küme Hızlandırılmış Yazmalar olmadan HDI 3.6'dır ve hedef kümede Hızlandırılmış Yazmalar yoktur.
- Kaynak küme, Hızlandırılmış Yazmalar ile HDI 4.0'dır ve hedef kümede Hızlandırılmış Yazmalar bulunur.
- Kaynak küme Hızlandırılmış Yazmalar olmadan HDI 4.0'dır ve hedef kümede Hızlandırılmış Yazmalar bulunur.
- Kaynak küme Hızlandırılmış Yazmalar olmadan HDI 4.0'dır ve hedef kümede Hızlandırılmış Yazmalar yoktur.
Kaynak küme HDI 3.6 veya Hızlandırılmış Yazma ile HDI 4.0'dır ve hedef kümede Hızlandırılmış Yazmalar bulunur
Hedef küme için WAL FS verilerini temizleyin ve wal dizinini kaynak kümeden hedef kümenin HDFS'sine kopyalayın. Hedef kümedeki herhangi bir Zookeeper düğümünde veya çalışan düğümünde aşağıdaki komutları çalıştırarak dizini kopyalayın:
sudo -u hbase hdfs dfs -rm -r hdfs://mycluster/hbasewal
sudo -u hbase hdfs dfs -cp <source-container-fullpath>/hbase-wal-backup/hbasewal hdfs://mycluster/
Kaynak küme Hızlandırılmış Yazmalar olmadan HDI 3.6'dır ve hedef kümede Hızlandırılmış Yazmalar bulunur
Hedef küme için WAL FS verilerini temizleyin ve wal dizinini kaynak kümeden hedef kümenin HDFS'sine kopyalayın. Hedef kümedeki herhangi bir Zookeeper düğümünde veya çalışan düğümünde aşağıdaki komutları çalıştırarak dizini kopyalayın:
sudo -u hbase hdfs dfs -rm -r hdfs://mycluster/hbasewal
sudo -u hbase hdfs dfs -Dfs.azure.page.blob.dir="/hbase/WALs,/hbase/MasterProcWALs,/hbase/oldWALs" -cp <source-container>/hbase/*WALs hdfs://mycluster/hbasewal
Kaynak küme Hızlandırılmış Yazmalar olmadan HDI 3.6'dır ve hedef kümede Hızlandırılmış Yazmalar yoktur
Hedef küme için WAL FS verilerini temizleyin ve kaynak küme WAL dizinini hedef kümenin HDFS'sine kopyalayın. Dizini kopyalamak için, hedef kümedeki herhangi bir Zookeeper düğümünde veya çalışan düğümünde aşağıdaki komutları çalıştırın:
sudo -u hbase hdfs dfs -rm -r /hbase-wals/*
sudo -u hbase hdfs dfs -Dfs.azure.page.blob.dir="/hbase/WALs,/hbase/MasterProcWALs,/hbase/oldWALs" -cp <source-container-fullpath>/hbase/*WALs /hbase-wals
Kaynak küme Hızlandırılmış Yazmalar olmadan HDI 4.0'dır ve hedef küme hızlandırılmış Yazmalar'a sahiptir
Hedef küme için WAL FS verilerini temizleyin ve wal dizinini kaynak kümeden hedef kümenin HDFS'sine kopyalayın. Hedef kümedeki herhangi bir Zookeeper düğümünde veya çalışan düğümünde aşağıdaki komutları çalıştırarak dizini kopyalayın:
sudo -u hbase hdfs dfs -rm -r hdfs://mycluster/hbasewal
sudo -u hbase hdfs dfs -cp <source-container-fullpath>/hbase-wals/* hdfs://mycluster/hbasewal
Kaynak küme Hızlandırılmış Yazmalar olmadan HDI 4.0'dır ve hedef kümede Hızlandırılmış Yazmalar yoktur
Hedef küme için WAL FS verilerini temizleyin ve kaynak küme WAL dizinini hedef kümenin HDFS'sine kopyalayın. Dizini kopyalamak için, hedef kümedeki herhangi bir Zookeeper düğümünde veya çalışan düğümünde aşağıdaki komutları çalıştırın:
sudo -u hbase hdfs dfs -rm -r /hbase-wals/*
sudo -u hbase hdfs dfs -Dfs.azure.page.blob.dir="/hbase-wals" -cp <source-container-fullpath>/hbase-wals /
Geçişi tamamlama
Kullanıcı bağlamını
sudo -u hdfs
kullanarak klasörünü/hdp/apps/<new-version-name>
ve içindekileri<destination-container-fullpath>
/hdp/apps
altındaki<source-container-fullpath>
klasöre kopyalayın. Hedef kümede aşağıdaki komutları çalıştırarak klasörü kopyalayabilirsiniz:sudo -u hdfs hdfs dfs -cp /hdp/apps/<hdi-version> <source-container-fullpath>/hdp/apps
Örnek:
sudo -u hdfs hdfs dfs -cp /hdp/apps/4.1.3.6 wasbs://hbase-upgrade-old-2021-03-22@hbaseupgrade.blob.core.windows.net/hdp/apps
Hedef kümede değişikliklerinizi kaydedin ve Ambari'nin belirttiği gibi tüm gerekli hizmetleri yeniden başlatın.
Uygulamanızı hedef kümeye işaret edin.
Not
Yükseltme yaptığınızda uygulamanızın statik DNS adı değişir. Bu DNS adını sabit kodlamak yerine, etki alanı adınızın DNS ayarlarında kümenin adına işaret eden bir CNAME yapılandırabilirsiniz. Bir diğer seçenek de uygulamanız için yeniden dağıtmadan güncelleştirebileceğiniz bir yapılandırma dosyası kullanmaktır.
Alımı başlatın.
HBase tutarlılığını ve basit Veri Tanımı Dili (DDL) ve Veri İşleme Dili (DML) işlemlerini doğrulayın.
Hedef küme yeterliyse kaynak kümeyi silin.
Betikleri kullanarak HBase'i geçirme
Betik migrate-hbase-source.sh kaynak kümede ve migrate-hbase-dest.sh hedef kümede yürütür. Bu betikleri yürütmek için aşağıdaki yönergeleri kullanın.
Not
Bu betikler, geçişin bir parçası olarak HBase eski WAL'lerini kopyalamaz; bu nedenle, betikler HBase Yedekleme veya Çoğaltma özelliği etkinleştirilmiş kümelerde kullanılmaz.
Kaynak kümede
sudo bash migrate-hbase-source.sh
Hedef kümede
sudo bash migrate-hbase-dest.sh -f <src_default_Fs>
Yukarıdaki komut için zorunlu bağımsız değişken:
-f, --src-fs
The fs.defaultFS of the source cluster
For example:
-f wasb://anynamehbase0316encoder-2021-03-17t01-07-55-935z@anynamehbase0hdistorage.blob.core.windows.net
Sonraki adımlar
Apache HBase ve HDInsight kümelerini yükseltme hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: