云服务器内容精选

  • 使用HBase客户端 安装客户端,具体请参考安装客户端章节。 以客户端安装用户,登录安装客户端的节点。 执行以下命令切换到客户端目录。 cd /opt/hadoopclient 执行以下命令配置环境变量。 source bigdata_env 如果当前集群已启用Kerberos认证,执行以下命令认证当前用户,当前用户需要具有创建HBase表的权限,具体请参见角色管理配置拥有对应权限的角色,参考创建用户章节,为用户绑定对应角色。如果当前集群未启用Kerberos认证,则无需执行此命令。 kinit 组件业务用户 例如,kinit hbaseuser。 直接执行HBase组件的客户端命令。 hbase shell
  • 前提条件 已安装客户端。例如安装目录为“/opt/hadoopclient”,以下操作的客户端目录只是举例,请根据实际安装目录修改。 各组件业务用户由MRS集群管理员根据业务需要创建。 “机机”用户需要下载keytab文件,“人机”用户第一次登录时需修改密码。 非root用户使用HBase客户端,请确保该HBase客户端目录的属主为该用户,否则请参考如下命令修改属主。 chown user:group -R 客户端安装目录/HBase
  • 一键部署客户端 准备Linux弹性云服务器。 使用一键部署客户端工具,建议Linux弹性云服务器的操作系统类型为EulerOS,CentOS,Ubuntu和SUSE。具体操作请参见准备弹性云服务器。 下载客户端一键部署工具。 使用SSH登录工具(如PuTTY)通过“弹性IP”远程登录到Linux弹性云服务器,然后执行如下命令,获取客户端一键部署工具: curl -O -k "https://cloudtable-publish.obs.myhuaweicloud.com/cloudtable-client/quick_start_hbase_shell.sh" 此命令适用于HBase 2.x版本。 准备集群访问地址。 登录表格存储服务管理控制台,在左侧导航树单击集群管理,然后在集群列表中找到所需要的集群,并获取相应的“ZK链接地址(内网)”。该参数值就是集群访问地址,如图1所示。 图1 ZK链接地址 使用工具部署客户端。 请将以下命令中的"$zookeeper_address"参数替换为3获取的ZK链接地址,然后在弹性云服务器命令行窗口,执行该命令一键部署客户端。 source quick_start_hbase_shell.sh $zookeeper_address 启动Shell访问集群。 在上一步执行source命令自动部署客户端后,就已自动启动了HBase Shell。在后续使用过程中,您也可以执行“bin/hbase shell”命令启动Shell访问集群。
  • 原因分析 当一个block size大于2G时,hdfs在seek的时候会出现读取异常,持续频繁写入regionserver时出现了full gc,且时间比较久,导致hmaster与regionserver之间的心跳异常,然后hmaster把regionserver标记为dead状态,强制重启了Regionserver,重启后触发servercrash机制开始回滚wal日志。现在这个splitwal的文件已经达到将近2.1G,且其仅有一个block块,导致hdfs seek异常,引起splitwal失败,regionserver检测到当前这个wal日志还需要split,又会触发splitwal日志的机制进行回滚,就这样在split与split失败之间不停循环,导致无法上线该regionserver节点上的region,最后出现查询该RS上某一个region时会报region not online的异常。
  • 配置场景 在实际应用中,需要存储大大小小的数据,比如图像数据、文档。小于10MB的数据一般都可以存储在HBase上,对于小于100KB的数据,HBase的读写性能是更优的。如果存放在HBase的数据大于100KB甚至到10MB大小时,插入同样个数的数据文件,但是总的数据量会很大,会导致频繁的compaction和split,占用很多CPU,磁盘IO频率很高,性能严重下降。 通过将MOB(Medium-sized Objects)数据(即100KB到10MB大小的数据)直接以HFile的格式存储在文件系统上(例如HDFS文件系统),通过expiredMobFileCleaner和Sweeper工具集中管理这些文件,然后把这些文件的地址信息及大小信息作为value存储在普通HBase的store上。这样就可以大大降低HBase的compaction和split频率,提升性能。 HBase当前默认开启MOB功能,相关配置项如表1所示。如果需要使用MOB功能,用户需要在创建表或者修改表属性时在指定的列族上指定使用mob方式存储数据。 MRS 3.3.0及之后版本不推荐使用HBase MOB功能。
  • 使用约束 尽管容灾提供了实时的数据复制功能,但实际的数据同步进展,由多方面的因素决定的,例如,当前主集群业务的繁忙程度,备集群进程的健康状态等。因此,在正常情形下,备集群不应该接管业务。极端情形下是否可以接管业务,可由系统维护人员以及决策人员根据当前的数据同步指标来决定。 容灾功能当前仅支持一主一备。 通常情况下,不允许对备集群的灾备表进行表级别的操作,例如修改表属性、删除表等,一旦误操作备集群后会造成主集群数据同步失败、备集群对应表的数据丢失。 主集群的HBase表已启用容灾功能同步数据,用户每次修改表的结构时,需要手动修改备集群的灾备表结构,保持与主集群表结构一致。
  • 前提条件 主备集群都已经安装并启动成功,且获取集群的管理员权限。 必须保证主备集群间的网络畅通和端口的使用。 如果主集群部署为安全模式且不由一个FusionInsight Manager管理,主备集群必须已配置跨集群互信。如果主集群部署为普通模式,不需要配置跨集群互信。 主备集群必须已配置跨集群拷贝。 主备集群上的时间必须一致,而且主备集群上的NTP服务必须使用同一个时间源。 必须在主备集群的所有节点的hosts文件中,配置主备集群所有机器的机器名与业务IP地址的对应关系。 若主集群的客户端安装在集群外的节点上,也需在该节点的hosts文件中配置主备集群所有机器的机器名与业务IP地址的对应关系。 主备集群间的网络带宽需要根据业务流量而定,不应少于最大的可能业务流量。 主备集群安装的MRS版本需要保持一致。 备集群规模不小于主集群规模。
  • 处理步骤 登录报错的RegionServer节点,执行以下命令查看节点剩余内存: free -g 执行top命令查看节点内存使用情况。 根据top提示结束内存占用多的进程(内存占用多并且非MRS自身组件的进程),并重新启动HBase服务。 集群的Core节点除了MRS组件运行占用外,Yarn上的作业还会被分配到节点运行,占用节点内存。若是由于Yarn作业占用内存多导致组件无法正常启动时,建议扩容Core节点。
  • 原因分析 RegionServer启动时节点剩余内存不足,导致无法启动实例。排查步骤如下: 登录Master节点,到“/var/log/Bigdata”查找HBase相关日志,HMaster的日志中报错“connect regionserver timeout ”。 登录到1中HMaster连接不上的RegionServer节点,到“/var/log/Bigdata”查找HBase相关日志,RegionServer报错“error=’Cannot allocate memory’(errno=12)”。 根据2报错判断由于RegionServer内存不足导致RegionServer启动失败。
  • 原因分析 HBase客户端中默认日志打印设置为“INFO,console”,所以在使用期间会有INFO日志输出到控制台,影响HBase shell窗口的显示。 HBase客户端命令繁多,例如:hbase shell、hbase hbck、hbase org.apache.hadoop.hbase.mapreduce.RowCounter等,且后续还会增加。部分命令的输出为INFO打印,如果直接把INFO关闭会导致部分命令输出结果丢失。例如:RowCounter输出结果为INFO类型:
  • 处理步骤 使用root用户登录安装HBase客户端的节点。 在“HBase客户端安装目录/HBase/component_env”文件中添加如下信息: export HBASE_ROOT_LOGGER=INFO,RFA 把日志输出到日志文件中,后期如果使用hbase org.apache.hadoop.hbase.mapreduce.RowCounter等命令,执行结果请在日志文件“HBase客户端安装目录/HBase/hbase/logs/hbase.log”中查看。 切换到HBase客户端安装目录,执行以下命令使配置生效。 cd HBase客户端安装目录 source HBase/component_env