Lindorm Tunnel Service (LTS) を使用すると、セルフマネージド HBase クラスターまたは ApsaraDB for HBase クラスターから LindormTable へ、履歴データの移行と増分データの同期をゼロダウンタイムで実行できます。
ユースケース
セルフマネージド HBase クラスターを Lindorm に移行します。
クロスリージョン移行を実行します。例えば、中国 (青島) リージョンから中国 (北京) リージョンへの移行です。
一部のビジネスワークロードを新しいクラスターに移行することで、ビジネスワークロードを分割します。
LTS の仕組み
LTS は、HBase サービスと直接やり取りするのではなく、ソースクラスターの Hadoop 分散ファイルシステム (HDFS) からデータを直接読み取ります。このファイルレイヤーのアプローチにより、API レイヤーのレプリケーションと比較してデータ転送量が通常 50% 以上削減され、移行中のオンラインビジネスへの影響が最小限に抑えられます。
移行は最大 3 つのフェーズで実行され、これらを単一のタスクに結合できます。
| フェーズ | 操作 | 説明 |
|---|---|---|
| 1 | テーブルスキーマ移行 | LTS は、ソースと同じスキーマとリージョン情報を持つテーブルを送信先クラスターに作成します。リージョンの一貫性は自動的に維持されます。 |
| 2 | 既存データ移行 | LTS は、既存のすべてのデータをノードあたり最大 150 MB/秒で物理的なファイルレベルで移行します。テラバイトまたはペタバイト規模のデータセットを処理するために水平的にスケールできます。 |
| 3 | 増分データ同期 | LTS は、ソースクラスターからライトアヘッドログ (WAL) エントリをリアルタイムでレプリケートし、ビジネスの実行中に送信先を同期状態に保ちます。 |
サポートされているソースと機能
LTS は、HBase 1.x および 2.x クラスター (セルフマネージドクラスターや ApsaraDB for HBase クラスターを含む) からの移行をサポートしています。単一のタスク内で、次のことができます。
データベース、名前空間、またはテーブルレベルで移行します。
移行中にテーブル名を変更します。
時間範囲、行キー範囲、または特定の列でデータをフィルタリングします。
LTS API を介して移行タスクを作成します。
LTS には組み込みの再試行メカニズムが含まれており、タスクの速度と進捗のリアルタイムモニタリングを提供し、タスク失敗のアラートを発します。
制限事項
セルフマネージド HBase クラスターへの移行はサポートされていません。LindormTable のみがサポートされている送信先です。
Kerberos が有効になっている HBase クラスターはサポートされていません。
ApsaraDB for HBase のシングルノードインスタンスはサポートされていません。
クラシックネットワークの ApsaraDB for HBase インスタンスはサポートされていません。
Lindorm スタンドアロンインスタンスは送信先としてサポートされていません。
増分同期は WAL エントリに依存します。バルクロードを介してインポートされたデータや WAL に書き込まれていないデータは同期されません。
検索インデックスデータ移行はサポートされていません。
事前準備
環境の準備
移行を開始する前に、以下を完了してください。
ソースクラスター、送信先クラスター、および LTS 間のネットワーク接続を確認します。
HBase データソースを追加します。詳細については、「HBase データソースの追加」をご参照ください。
Lindorm ワイドテーブルデータソースを追加します。詳細については、「Lindorm ワイドテーブルデータソースの追加」をご参照ください。
移行中のストレージの問題を防ぐために、送信先クラスターに十分な HDFS 容量があることを確認します。
ログ保持の設定 (セルフマネージド HBase または ApsaraDB for HBase ソースのみ)
増分同期を開始する前に、ログ保持期間を 12 時間以上に設定してください。これにより、LTS は同期エラーから回復するのに十分な時間を確保できます。
保持期間を変更するには、hbase-site.xml の hbase.master.logcleaner.ttl パラメーターを更新し、HMaster を再起動します。単位はミリ秒 (ms) です。例えば、12 時間の保持期間を設定するには、次のようにします。
hbase.master.logcleaner.ttl=43200000ソースクラスターが Lindorm クラスターの場合は、この手順をスキップしてください。
使用上の注意点
送信先クラスターでテーブルを手動で作成しないでください。LTS は、ソースと同じスキーマとリージョン情報を持つテーブルを自動的に作成します。手動で作成されたテーブルは、リージョン構成が一貫していない可能性があり、移行後に過度な分割とコンパクションが発生する可能性があります。これは特に大規模なテーブルにとってコストがかかります。
ソーステーブルにコプロセッサがある場合は、LTS が送信先テーブルを作成する前に、送信先クラスターに該当するコプロセッサ JAR ファイルがあることを確認してください。
増分同期を有効にした後、LTS は未消費のデータログをデフォルトで 48 時間保持します。この期間が過ぎると、サブスクリプションは自動的にキャンセルされ、保持されていたデータは削除されます。
移行タスクの作成
LTS にログインします。詳細については、「LTS へのログイン」をご参照ください。
左側のナビゲーションウィンドウで、[移行] > [クイック移行] を選択します。
[タスクの作成] をクリックします。
[タスク名(任意)] フィールドに名前を入力します。名前には英字および数字のみを使用できます。空欄のままにした場合、タスク ID がタスク名として使用されます。
[ソースクラスター] と [送信先クラスター] を設定します。
含める[操作]を選択してください:
操作 説明 table schema migration ソースと同じスキーマとリージョン情報を持つテーブルを送信先クラスターに作成します。既存のテーブルはスキップされます。 リアルタイム データレプリケーション ソースクラスターから増分 WAL データをリアルタイムで同期します。 historical data migration すべてのデータをファイルレベルで物理的に移行します。 [テーブルマッピング] および必要に応じて [詳細設定] を設定します。
[作成] をクリックします。
タスクの監視
左側のナビゲーションウィンドウで、[移行] > [クイック移行] を選択して、すべてのタスクを表示します。タスク名をクリックすると、移行速度や進行状況を含む実行ステータスを確認できます。
タスクがスイッチオーバーの準備ができたと判断されるのは、次の条件が満たされたときです。
既存データ移行が完了と表示されていること。
増分同期遅延が低いこと (通常は数秒またはミリ秒)。
スイッチオーバーの実行
既存データ移行が完了し、増分遅延が低いことを確認します。
LTS で、データサンプリングと検証を有効にします。大規模なテーブルの場合、オンラインビジネスへの影響を避けるために、小さなサンプリング比率を使用してください。
送信先クラスターでビジネスを検証します。
ビジネスのスイッチオーバーを実行します。
よくある質問
データ消費が停止する原因
タスクが終了する前に LTS クラスターがリリースされた場合、同期タスクが一時停止された場合、またはエラーによってタスクがブロックされた場合に、データ消費は停止します。
移行タスクが失敗した場合の対処法
LTS は失敗したタスクを自動的に再試行します。複数回の再試行後もタスクが失敗する場合は、DingTalk (ID: s0s3eg3) で Lindorm テクニカルサポートにお問い合わせください。