HBaseは、数百テラバイトのデータと数百万のQPSのプレッシャーの下でミリ秒の応答をサポートでき、ビッグデータのコンテキストでのリスク管理や推奨などのオンラインシナリオに適しています。Alibaba Cloud HBaseは、多くの金融、広告、メディアビジネスでリスク管理と推奨事項を提供し、高可用性、低遅延、低コストの方向で最適化を続けています。現在、単一クラスターは99.9%の可用性を約束し、SSDモデルは99.5%<50msのリクエストグリッチを達成でき、新しく発売されたテーブル内のコールドおよびホットセパレーションは、ホットデータアクセスパフォーマンスを加速し、コールドデータストレージコストを削減し、 API。可用性と低遅延に対する顧客の要求をさらに満たすために、Alibaba Cloud HBaseは、アクティブおよびスタンバイアーキテクチャに基づいて、冗長性、同時実行性、分離、劣化などのオールラウンドサービスによってサポートされる高可用性ソリューションを提供します。 99.99%の可用性、99.9%のリクエストの目標は50ミリ秒未満です。高可用性プロジェクトの第1フェーズが完了しました。この記事では、メインスタンバイアーキテクチャとワンキースイッチング機能を紹介します。
HBaseシングルクラスターの可用性
HBaseシステムには、Zookeeper、HDFS、およびHBaseの3つのコンポーネントが含まれています。その中で、Zookeeperはデータとコンピューティングにおいて冗長であり、自己修復システムであり、単一ノードの障害を数秒で回復できます。HBaseはZookeeperにわずかに依存しており、通常、大きな問題は発生しません。HDFSは、マスタースレーブモードの分散ファイルシステムです。Namenodeという名前の中央ノードがあります。NamenodeはHAデプロイメントをサポートします。単一のNamenode障害は数秒で回復できます。両方のNNがダウンしている場合でも、再起動して自分自身で実行できます。 -回復しましたが、回復時間は、分レベルでの再生ログのサイズによって異なります。データの複数のコピーは冗長であり、単一のデータノードノードのダウンタイムがサービスを中断することはありません。HBaseはマスタースレーブモードの分散システムでもあり、HMasterは読み取り/書き込みパスに参加しないため、HMasterのダウンタイムはサービスを中断しませんが、長期のダウンタイムは負荷分散、フェイルオーバー、その他の機能に影響します。HMaster HAデプロイメントをサポートします。HBaseのもう1つのポイントは、メタサービスです。RegionServerノードをホストとしてランダムに選択します。メタサービスが利用できない場合、すべてのリクエストルーティングが失敗し、全体的に利用できなくなります。クライアントにはルートキャッシュがあるため、メタサービスのダウンタイムによってすぐに使用できなくなることはありません。HBaseデータの断片化では、範囲パーティション方式が使用されます。各リージョンはRegionServerによって提供されます。つまり、HBaseのコンピューティングサービスは冗長ではありません。したがって、RegionServerに障害が発生した場合、複数のフラグメントを提供することはできません。HBaseフェイルオーバーメカニズムは自己回復型であり、単一のRegionServerダウンタイムの回復時間は分レベルであり、複数のRegionServerダウンタイムの回復時間は10分から1時間の範囲です。
単一クラスターHBase高可用性デプロイメント
成分 | 役割 | 高可用性メカニズム | 故障の影響 |
---|---|---|---|
Zookeeper | データと計算の冗長性 | シングルポイントダウンタイムの第2レベルのサービス | |
HDFS | Namenode | 2ノードのHA展開 | シングルポイントのダウンタイム回復時間(秒)、デュアルノードのダウンタイム回復時間(分) |
データノード | データと計算の冗長性 | サービスを中断することなく、単一のダウンタイムポイント | |
HBase | Hマスター | 2ノードのHA展開 | データの読み取りと書き込みには影響しません |
メタサービス | シングルポイント、自己回復 | グローバルな可用性に影響を与える | |
領域 | シングルポイント、自己回復 | 部分的に利用不可、数分でのシングルポイントリカバリ、最大数時間のマルチポイントリカバリ時間 |
Zookeeper |
データと計算の冗長性 | シングルポイントダウンタイムの第2レベルのサービス | |
HDFS | Namenode | 2ノードのHA展開 | シングルポイントのダウンタイム回復時間(秒)、デュアルノードのダウンタイム回復時間(分) |
データノード | データと計算の冗長性 | サービスを中断することなく、単一のダウンタイムポイント | |
HBase | Hマスター | 2ノードのHA展開 | データの読み取りと書き込みには影響しません |
メタサービス | シングルポイント、自己回復 | グローバルな可用性に影響を与える | |
領域 | シングルポイント、自己回復 | 部分的に利用不可、数分でのシングルポイントリカバリ、最大数時間のマルチポイントリカバリ時間 |
カーネルまたは動作環境のバグにより、HBaseの自己修復が制御不能になります
case1 某金融公司自建HBase因ECS重启导致WAL数据破坏,HBase Failover无法进行,集群不可用无法自愈
case2 某视频公司自建HBase集群Meta数据陷入不一致无法恢复,造成分区无法上线,部分表不可用无法自愈
case3 某媒体公司IO压力较大经常触发空间泄漏Bug,导致空间不足集群宕机无法自愈
以上是真实的案例,Bug是不可避免的,未知Bug处理考验内核团队的技术实力,需要具备外科手术的能力,但其处理时间是不可预期的。
云HBase主备高可用方案
故障恢复时间可预知的高可用系统,故障发生时可以在分钟级别恢复读写能力。实现方案选择经典的主备模式,也支持主主模式。备集群部署在同城的不同机房内,在资源层面完全隔离,软件可部署不同的版本,最大程度保持两个集群的独立性。从经验数据出发,单机房故障恢复时间的上限为1个小时,在这1个小时内另一个机房也发生故障的概率非常低,有两种情况除外:第一种是城市级灾难,这个需要异地容灾方案;第二种是故障源于业务流量增长,系统过载,此时的解决方案是限流或者扩容。这两种情况不在本文设计考虑之内。系统提供一键切换能力,不需要客户端重启,每一个客户端在收到切换信号时会自动完成连接的切换,客户端的切换是并发进行的,所有客户端可以在10秒内完成切换。
高可用方案可以独立提供给自建使用,支持自建和云HBase混合主备。如果你已经拥有一个HBase集群,可以方便的弹出一个冗余备集群,备集群的建表和数据复制都是自动完成。当故障发生时,可以在控制台切换流量到备库,待主集群恢复后再把流量切回。云HBase高可用服务是一个独立的服务,可以看做是基于HBase之上的一个中间件,支持混合云是我们的设计原则,云上同VPC下的自建HBase、EMR HBase、云HBase可以方便的进行主备混合使用,对于IDC自建HBase或者它云上的HBase则需要用户自行解决网络联通。
简单易用,HBase客户端从普通模式转化为高可用模式不需要修改代码。云HBase会提供一个插件集成到HBase客户端,并且为高可用提供一个新的Endpoint。这个Endpoint就是简单的 ip+port,用来替换单集群模式下的Zookeeper地址。用户可以选择核心表进行高可用建设,非核心表依然保持单集群来降低成本。对于高可用的表,可以通过高可用客户端进行创建、修改和删除,控制台会保证主备集群元数据的一致性。目前我们支持0.96、0.98、1.x、2.x、云HBase增强版等多个版本。
0.96 | 1.x | 2.x | 云增强版 | |
---|---|---|---|---|
0.96 | YES | NO | NO | YES |
1.x | NO | YES | YES | YES |
2.x | NO | YES | YES | YES |
云增强版 | YES | YES | YES | YES |
版本主备兼容性列表
综上所述,云HBase主备高可用架构如下图:
数据同步
云HBase并没有采用开源的Replication方案,主要的原因包括:
HBase Replication抗热点能力差,每台机器只能处理自己的日志
HBase Replication Failover的设计存在缺陷,导致一旦RS宕机就会出现长时间同步延迟
HBase Replication与内核争抢资源,无法独立扩容
HBase Replication的管理依赖表属性配置,配置项很多,在混合云模式下很难维护
BDS Replication是一个独立的数据复制服务,提供延迟百毫秒级别的双向数据同步能力。BDS Replication可以独立的扩容缩容,它不需要磁盘,可以更好的管理成本。
主备一致性
云HBase主备采用的是异步复制,提供基于版本的最终一致性。写入主库的一行数据在同步到备库时,会保持和主库一致的版本号。云HBase高可用目前仅支持最终一致性切换,在切换时主备可能存在秒级的不一致。对于风控、推荐、画像类的应用,最终一致性是满足需求的。如果您使用了CheckAndPut、CheckAndDelete这样的接口则会出现一致性问题,此种情况请联系云HBase提供技术咨询。
配置服务
配置服务有两个作用,存储主备集群的地址信息和通知切换命令。高可用客户端在启动时会访问该服务加载主备集群地址信息。通过控制台执行的切换命令也会由配置服务通知所有的客户端。配置服务本身采用了冗余来保障存储和消息的高可用。
监控
高可用服务可以实时显示主备集群的状态。主、备角色在初始配置时确定不能更改,但状态"active/standby"是可变化的,处于"active"状态的集群是目前客户端访问的集群。提供主备集群双向同步链路的实时延迟展示,同时提供客户端链接数量监控,使得用户可以准确的判断切换进度。
云HBase高可用使用方式
如果您已经使用了云HBase并且希望增加一个备库,只需如下步骤
购买一个BDS集群用于管理主备
购买一个空的云HBase集群作为备库
输入主备两个集群的实例ID创建高可用访问地址
开始您的高可用之旅
如果您使用的是ECS自建集群或者EMR HBase,希望增加一个备库,只需如下步骤
购买一个BDS集群用于管理主备
购买一个空的云HBase集群作为备库
配置域名映射和安全组(会提供相关的服务一键解决)
输入主备两个集群的地址信息创建高可用访问地址
开始您的高可用之旅
具体的操作流程请参考手册:
https://help.aliyun.com/document_detail/140940.html?spm=a2c4g.11186623.6.719.30954117Tg56BR
招聘帖:有意向的加微信chenwr0108咨询
蚂蚁金服-监控计算平台技术专家
职位描述
1.監視コンピューティングプラットフォームの反復的な研究開発を担当し、データ指向の方法で上位レベルの監視ビジネスをサポートし
ます。2。配布、リソース分離、統合機能などを含む、アリのオープンコレクションプラットフォームを構築します。
3.柔軟なコンピューティングモデルの設計と実装、SQLおよびUDF計算機能の提供
仕事の要件
1. Java、Golang、C ++の任意の言語に精通している2.Linux
/ネットワークプログラミング/マルチスレッドプログラミング/大規模分散アプリケーションに精通しており、特定のパフォーマンスチューニングの経験がある
3. Spark / Hadoop / Flink / Hiveなどのビッグデータ分析および計算プロジェクトの経験がある
仕事の詳細
http://antfin.tupu360.com/social/position?pid=&bs=yes&pCode=la2Refhh5jazIL6VVCGLpA%3D%3D&shp=51fee96e36017b890f35596b4f51594dcb28f570c483eb344f432c73b1431d15fb419a2b81c4