HBase 服务上线

HBase 是一个开源的、分布式的、数据多版本的,列式存储的 nosql数据库。依托 Hadoop 的分布式文件系统 HDFS 作为底层存储, 能够为数十亿行数百万列的海量数据表提供随机、实时的读写访问。 青云提供的 HBase 集群服务包含:HBase 数据库服务、HDFS 分布式文件系统、Phoenix 查询引擎。压缩格式方面支持 GZIP、BZIP2、LZO、SNAPPY,可自行在应用中指定。 关于 HBase 更多的详细信息,可参阅HBase 官方文档,关于 Phoenix 查询引擎的详细信息,可参阅 Phoenix 官方网站 。

系统部署架构

与 Hadoop 一样,HBase 集群采用的是 master/slave 架构,青云提供的 HBase 集群服务还包括在线伸缩、监控告警、配置修改等功能,帮助您更好地管理集群。 如下图所示,青云的 HBase 集群分三种节点类型:主节点 (HBase Master 和 HDFS NameNode),从节点 (HBase RegionServer 和 HDFS DataNode) 和客户端节点 (HBase Client)。 用户在HBase 客户端可通过HBase Shell、Java API(本地或MapReduce)、Rest API 或其他工具来访问HBase。 若需要使用除java外的其他语言时,可在客户端节点 (HBase Client)自行启动 Thrift Server 以供支持。

hbase_architecture

create_hbase_1

另外,QingCloud 的 HBase 服务还提供:

在线伸缩

增加节点:您可以在 HBase 详情页点击“新增节点”按钮增加从节点,可以对每个新增节点指定 IP 或选择自动分配。

删除节点:您可以在 HBase 详情页选中需要删除的从节点,然后点击“删除”按钮,只能一次删除一个,并且必须等到上个节点删除后且 decommission 结束才能删除下一个节点,否则数据会丢失。 青云 HBase 集群在此操作时会先迁移 region 再复制数据,确保用户业务不受影响。

纵向伸缩:由于不同类节点压力并不同,所以青云 HBase 支持对 HBase Master Node 主节点、HDFS Name Node 主节点 和 HBase 从节点分别进行纵向伸缩。

监控和告警

我们对 HBase 集群的每个节点提供了资源的监控和告警服务,包括 CPU 使用率、内存使用率、硬盘使用率等。 同时,HBase 和 HDFS 提供了丰富的监控信息。如果需要通过公网访问这些信息您需要先申请一个公网 IP 绑定在路由器上,在路由器上设置端口转发,同时打开防火墙相应的下行端口。 HBase Master 默认端口16010,HDFS Name Node 默认端口是50070。为方便查看HBase UI,请参考 VPN 隧道指南 配置VPN,VPN 建立后可查看下述界面。

  • http://<HBase Master Node private IP>:16010
  • http://<HDFS Name Node private IP>:50070

hdfs_monitor yarn_monitor

为了帮助用户更好的管理和维护 HBase 集群,我们提供了部分针对 HBase 服务的监控,包括:

  • 集群Region 迁移监控: 集群中 Region 处于迁移状态的数量
  • RegionServer 读、写QPS监控: RegionServer 每秒读、写操作数
  • RegionServer BlockCache 命中数监控: RegionServer BlockCache 命中数
  • RegionServer BlockCache 命中率监控: RegionServer BlockCache 命中率
  • RegionServer 慢操作数监控: RegionSever 慢 Delete,Increment,Get,Append,Put 数量
  • RegionServer CMS GC 时间监控: RegionSever CMS GC 消耗 ms 数

配置

我们通过 HBase 配置组来管理 HBase 服务的配置。HBase 服务和 HBase 配置组是解耦的,您可以创建多个独立的配置组,并应用到不同的 HBase 服务。

测试 HBase 集群

关于集群服务的可用性测试请参看《HBase 使用指南》HBase 集群测试部分。

Changelogs 20160801

负载均衡器提供更多的附加选项

  • 当所有后端不可用时直接拒绝 TCP 连接请求: (仅TCP) 当所有后端不可用时,不再接受连接,而是直接拒绝 TCP 连接请求。

tcp_options

  • 禁用 HTTP 头字段 Proxy: (仅HTTP/HTTPS) 为了安全起见,某些后端为 CGI 的 Web 应用需要在用户请求中禁用该字段来防止注入攻击。

lb_listener_options

优化性能型硬盘绑定速度

当性能型硬盘从一台主机解绑并绑定到另一台主机时,可能会触发数据迁移导致绑定时间很长。我们对这个绑定速度进行了优化,现在解绑并重新绑定的时间能缩短到秒级,同时不随数据量大小而变化。

Storm 功能上线

Storm 是一个开源的分布式实时计算系统,通常被比作"实时的 Hadoop"。Storm 为实时计算提供了一些简单优美的原语,支持多种编程语言,并内建流式窗口 API 及分布式缓存 API,极大简化了流式数据处理过程。Storm 不仅高可靠、易扩展,而且处理速度极快,每个计算节点每秒能处理上百万条元组信息(Tuple),因此常被用于实时分析、在线机器学习、连续计算、分布式 RPC、ETL 等。 关于 Storm 更多的详细信息,请参阅 Storm 官方网站 。

青云的 Storm 集群包括如下五种节点类型:

  • 主节点:运行了 Nimbus、DRPC、UI 和 Logviewer 服务,负责接收客户端提交的计算拓扑,并协调分派计算任务。
  • 从节点:运行了 Supervisor 和 Logviewer 服务。其中,Supervisor 服务主要用于接收计算任务并按需启动或停止工作进程(Worker),而 Logviewer 服务方便用户查看运行日志。
  • RPC 节点:运行了 DRPC 和 Logviewer 服务,用于接收 RPC 请求,并将计算拓扑的处理结果返回给客户端。
  • 客户端节点:安装了 Python、JRE/JDK 和 Storm 软件,用于提交计算拓扑。
  • Zookeeper 集群:用于协调 Storm 集群。

storm_architecture

另外,青云的 Storm 服务还提供了在线伸缩和监控告警功能:

在线伸缩

增加节点:当您需要横向扩展集群规模时,您可以在 Storm 详细页点击“新增节点”按钮增加主节点、从节点或 RPC 节点,每个新增节点在私有网络中的 IP 可以手动指定或选择自动分配。

删除节点:当您不需要集群中的某些节点时,您可以在 Storm 详细页选中需要删除的节点,然后点“删除”按钮,以在线缩减集群规模。

纵向伸缩:由于不同类节点压力并不同,所以青云 Storm 支持对 主节点、从节点 和 RPC 节点分别进行纵向伸缩。通常情况下主节点和 RPC 节点的压力都不会太大,运行 worker 进程的从节点的配置一般更高些。

监控和告警

我们对 Storm 集群的每个节点提供了资源的监控和告警服务,包括 CPU 使用率、内存使用率、硬盘使用率等,以帮助用户更好的管理和维护 Storm 集群。 同时,Storm 主节点上运行的 Storm UI 服务提供了丰富的集群监控信息,默认端口为8080。 此外,青云提供的 Storm 集群还在各个节点上运行了 Logviewer 服务,该服务允许用户访问各个节点上的日志。拨入到 VPN 网络后,可以访问以下 URL 来浏览 Storm UI 及节点日志:

  • http://<Storm 主节点私有网络 IP>:8080
  • http://<Storm 任意节点私有网络 IP>:8080/daemonlog?file=<log file name>

例如:

配置

我们通过 Storm 配置组来管理 Storm 服务的配置。Storm 服务和 Storm 配置组是解耦的,您可以创建多个独立的配置组,并应用到不同的 Storm 服务。

更多详情请参看《Storm 用户指南》