sql >> データベース >  >> NoSQL >> HBase

一言で言えばClouderaオペレーショナルデータベースレプリケーション

    この以前のブログ投稿では、 ClouderaReplicationPluginの概要を紹介しました。 構成をほとんど行わずにクロスプラットフォームレプリケーションを実現する方法を説明します。この投稿では、このプラグインをCDPクラスターに適用する方法と、プラグインが相互認証の信頼を共有しないシステム間で強力な認証を有効にする方法について説明します。

    オペレーショナルデータベースレプリケーションプラグインの使用

    オペレーショナルデータベースレプリケーションプラグイン スタンドアロンプ​​ラグインとして利用できるだけでなく、ClouderaReplicationManagerを介して自動的にインストールされます。このプラグインを使用すると、CDH / HDP / AWS EMR / Azure HDInsightクラスターからパブリッククラウドのCDPプライベートクラウドベースやCDPオペレーショナルデータベース(COD)へのHBaseデータのほぼリアルタイムのレプリケーションをセットアップできます。また、Cloudera Replication Managerを使用して、CDPプライベートクラウドベースとCOD間、またはパブリッククラウドのCODインスタンス間でレプリケーションをセットアップするときにも自動的にデプロイされます。 Cloudera Replication Managerでは、HBaseスナップショット機能をこのプラグインと組み合わせて、単一のセットアップで既存のデータのレプリケーションを管理することもできます。

    インストール手順については、HBaseレプリケーションポリシーを参照してください。 レプリケーションマネージャーに関するトピック 公式ドキュメント。

    レガシーCDH/HDPバージョンの場合、プラグインはレガシークラスターにのみインストールされる区画として提供されます。

    • CDH 5.x
    • CDH 6.x
    • HDP 2.6
    • HDP 3.1
    • EMR 5.x&6.x

    区画は、バージョン固有のバイナリでバージョンロックされています。上記の各バージョンについて、クラスターごとに取得する必要があります。それらのいずれかを入手することに興味がある場合は、Clouderaの営業チームに連絡してください。

    実装の詳細

    オペレーショナルデータベースレプリケーションプラグインによって解決された障害 は、異なるセキュリティ構成でのクラスタ間の相互認証です。この以前のブログ投稿を思い出してください。HBaseのデフォルトのレプリケーションでは、両方のクラスターがセキュリティ用にまったく構成されていないか、両方ともセキュリティ付きで構成されている必要があります。後者の場合、両方のクラスターが同じKerberosレルムにあるか、Kerberosシステムでクロスレルム認証が設定されている必要があります。これは、各環境が自己完結型のセキュリティレルムで実行されるCDPのコンテキストでは追加の課題になります。これをより詳細に理解するには、ApacheHBaseセキュリティがどのように実装されているかを確認する必要があります。

    SASLを使用して信頼を確立する

    HBaseレプリケーションでは、ソースクラスターのRegionServerは、RPC接続を介してターゲットクラスターのRegionServerに接続します。セキュリティが有効になっている場合、認証はRPC接続確立フェーズでSimple Authentication and Security Layerフレームワーク( SASL)を使用して実行されます。 HBaseはすでに次の組み込みを提供しています SASL認証 メカニズム:ケルベロス、ダイジェスト およびシンプル。 Kerberosが有効になっている場合、ソースクラスターからの資格情報がターゲットクラスターによって期待されます。ターゲットクラスターは、 SASL kerberos を使用して、これらの資格情報を自身のKDCに対して検証します。 機構。これはkerberosGSSAPIに依存しています ターゲットクラスターKDCに対して提供されたクレデンシャルを認証するための実装。したがって、ソースクラスタープリンシパルの信頼は、両方のクラスタークレデンシャルを同じレルムに置くか、ターゲットクラスターKDCにからのクレデンシャルを信頼させることにより、Kerberosシステムレベルで実装されている必要があります。ソースクラスターレルム(一般にクロスレルムとして知られるアプローチ 認証)。

    HBaseSASL認証の拡張

    幸い、SASLはカスタム認証の実装を可能にするように設計されています。つまり、追加のSASLメカニズムを上記の組み込みオプションのセットにプラグインできれば、SASLベースのソリューションを設計できます。その目的で、ClouderaはHBaseのRPCレイヤーのリファクタリングを提案しました。これは、 HBASE-23347のApacheHBaseコミュニティによってレビューおよび承認されています。

    プラガブルSASLメカニズム

    HBASE-23347によって導入された変更 、追加のSASL認証メカニズムは、RPCレイヤーで使用されるHBase構成を介して定義できます。着信RPC接続はヘッダーで特定のSASLタイプを定義し、RPCサーバーは実際の認証を実行するために特定の実装を選択します。

    オペレーショナルデータベースレプリケーションプラグイン カスタムSASLメカニズムを実装し、さまざまなKerberosレルム上のクラスターがシームレスな構成作業と通信できるようにします(Kerberosクロスレルムは必要ありません)。 )。ソースがレプリケーションプラグインのSASLトークンを作成するように、HBaseレプリケーションを拡張します ターゲットCODクラスター上の事前定義されたマシンユーザーからの資格情報を使用したカスタムタイプ。このタイプのユーザーは、Cloudera管理コンソールから簡単に作成できます。 UI 次に、Kerberos認証機関の基盤となるCODクラスターに伝播されます。レプリケーションマシンユーザーの作成に関する詳細な手順は、ClouderaReplicationManagerドキュメントの前提条件の手順のセクションに記載されています。

    ターゲット内のRPCサーバーがトークンを読み取り、それがレプリケーションプラグインであることを識別すると タイプ、関連するクレデンシャルはトークンから解析され、認証に使用されます。

    オペレーショナルデータベースレプリケーションプラグイン PAM認証を使用して、マシンのユーザー資格情報を検証します。 CODクラスターは、常にCDP環境のFreeIPAセキュリティドメインに対して認証されるPAMでプロビジョニングされます。

    マシンユーザーの資格情報の保護

    このソリューションの重要な問題は、ソースクラスターがターゲットクラスターのマシンユーザーから資格情報を取得する必要があることです。明らかな理由から、ソース構成では決して公開しないでください。これらのクレデンシャルは、RPC接続内のSASLトークンでネットワーク経由でも送信されるため、送信前に暗号化する必要があります。レプリケーションプラグインは、 jceksを生成するための独自のツールを提供します 暗号化された、マシンユーザーの資格情報を保存するファイル。このファイルを作成したら、両方のクラスターにコピーして、 hbaseで読み取り可能にする必要があります。 ユーザーのみ。次の図は、オペレーショナルデータベースレプリケーションプラグインの導入の概要を示しています。 RegionServersのコンテキストで標準のHBaseレプリケーションクラスに統合するコンポーネント。ピンクのボックスは、HBaseによってすでに提供されているレプリケーションおよびRPC接続コードを表し、黄色のボックスは、HBASE-23347内に導入された抽象化レイヤーを示しています。 最後に、オレンジ色のクラスは、 Operational Database Replication Pluginを実装する関連するアーティファクトを強調しています。 ロジック。

    結論

    レプリケーションは、HBaseのDRおよびDC移行ソリューションを実装するための貴重なツールです。ここに示すように、クラスターのセキュリティ構成を扱う場合は、いくつかの注意点があります。ただし、現在の「オンプレミス」展開からクラウド上のCDPクラスターにデータを移行する機能は不可欠です。 Clouderaオペレーショナルデータベースレプリケーションプラグイン kerberos cross-realm とは対照的に、完全にHBaseレベルで実装されているため、セキュリティで保護されたクラスターを統合する際の柔軟性と、このセキュリティ統合の保守性の向上をもたらします。 これには、Kerberosシステム定義の変更が必要であり、多くの場合、独自の制限ポリシーを使用して、完全に異なるチームの責任となります。

    でオペレーショナルデータベーステンプレートを試してみてください Cloudera Data Platform(CDP)!


    1. StackExchange.RedisとAzureRedisは、使用できないほど遅いか、タイムアウトエラーをスローします

    2. Redisに保存されているアクセントが読み取れません

    3. MongoDBはどういうわけかシングルコアに制限されていますか?

    4. MongoDBの複数のドキュメントから配列を連結する方法は?