Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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ı kullanıyorsanız geçerlidir. Hedef kümeniz için yeni veya farklı bir Depolama hesabıyla yükseltmek için bkz. Apache HBase'i yeni bir Depolama hesabıyla yeni bir sürüme geçirme.
Yükseltme esnasında duraklama sadece birkaç dakika sürmelidir. 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çirme
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 | Alt sürüm | Yama |
|---|---|---|---|
| İstemci-Sunucu kablo uyumluluğu | N | Y | Y |
| Sunucu-Sunucu uyumluluğu | N | Y | Y |
| Dosya biçimi uyumluluğu | N | Y | Y |
| İstemci API uyumluluğu | N | Y | Y |
| İstemci ikili uyumluluğu | N | N | Y |
| Sunucu tarafı sınırlı API uyumluluğu | |||
| İstikrarlı | N | Y | Y |
| Evrimleşen | N | N | Y |
| Kararsız | N | N | N |
| Bağımlılık uyumluluğu | N | Y | Y |
| İşletimsel uyumluluk | N | N | Y |
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ırlayın:
- Veri alımını durdurun.
- Memstore verilerini boşalt.
- 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.
- Orijinal kaynak küme kapsayıcısına başvuracak şekilde HDFS hizmet yapılandırmalarını güncelleyin
fs.defaultFS. - Hızlandırılmış yazma işlemleri olan kümeler için, HBase servis ayarlarında orijinal kaynak küme kapsayıcısına başvuracak şekilde
hbase.rootdiröğesini güncelleyin. - Zookeeper verilerini temizleyin.
Geçişi tamamlayın:
- WAL'yi temizleyin ve taşıyın.
- 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 veri alımını 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 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ı diske el ile boşaltın.
Azure hbase-utils GitHub deposundanflush_all_tables.sh betiğini çalıştırarak memstore verilerini temizleyebilirsiniz.
HdInsight kümesinden aşağıdaki HBase kabuğu komutunu çalıştırarak da memstore verilerini temizleyebilirsiniz:
hbase shell flush "<table-name>"Kaynak kümede Apache Ambari'de
https://<OLDCLUSTERNAME>.azurehdinsight.netoturum 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ış Yazma işlemlerine sahip 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ında, 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.netoturum açın ve HBase hizmetlerini durdurun.Hizmetler>HDFS>Yapılandırmaları>Gelişmiş>Gelişmiş core-site altında, HDFS ayarını özgün kaynak küme kapsayıcı adına işaret edecek şekilde değiştirin.
fs.defaultFSÖrneğin, aşağıdaki ekran görüntüsündeki ayar olarakwasbs://hbase-upgrade-old-2021-03-22değiştirilmelidir.
Hedef kümenizde Hızlandırılmış Yazma özelliği varsa,
hbase.rootdiryolunu özgün kaynak küme kapsayıcı adına işaret edecek şekilde değiştirin. Örneğin, aşağıdaki yolhbase-upgrade-old-2021-03-22olarak değiştirilmelidir. Kümenizde Hızlandırılmış Yazma işlemleri 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'ı temizlemek ve taşımak
Kaynak HDI sürümünüz 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.
Uyarı
-
<source-container-fullpath>, WASB depolama türü için değerdirwasbs://<source-container-name>@<storageaccountname>.blob.core.windows.net. - Azure Data Lake Storage Gen2 depolama türü için
<source-container-fullpath>,abfs://<source-container-name>@<storageaccountname>.dfs.core.windows.net'dir.
- 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 vardır.
- Kaynak küme Hızlandırılmış Yazmalar olmadan HDI 3.6'dır ve hedef kümede Hızlandırılmış Yazma yoktur.
- Kaynak küme Hızlandırılmış Yazma özelliğine sahip 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ış Yazma yoktur.
Kaynak küme HDI 3.6 veya Hızlandırılmış Yazma özelliğine sahip 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 kaynak kümedeki WAL dizinini 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 vardır
Hedef küme için WAL FS verilerini temizleyin ve kaynak kümedeki WAL dizinini 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ümede Hızlandırılmış Yazmalar vardır
Hedef küme için WAL FS verilerini temizleyin ve kaynak kümedeki WAL dizinini 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 hdfskullanarak klasörünü/hdp/apps/<new-version-name>ve içindekileri<destination-container-fullpath>/hdp/appsaltı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Örneğin:
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/appsHedef 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.
Uyarı
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.
Veri alımını 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 tatmin ediciyse kaynak kümeyi silin.
Betikleri kullanarak HBase'i geçirme
Kaynak kümede migrate-hbase-source.sh betiğini yürütün ve hedef kümede migrate-hbase-dest.sh betiğini yürütün. Bu betikleri yürütmek için aşağıdaki yönergeleri kullanın.
Uyarı
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.shAmaçlanan 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: