热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HBase应用与发展之HBase应用与高可用实践

性能和可靠性—性能优化客户端优化:Scan、Get、列簇及列、禁止缓存指标说明Scanhbase.client.scanner.cachingGet建议使用批量Get列簇及列尽可能

性能和可靠性 — 性能优化

  • 客户端优化:Scan、Get、列簇及列、禁止缓存

指标

说明

Scan

hbase.client.scanner.caching

Get

建议使用批量Get

列簇及列

尽可能少的列簇,尽可能指定列查询

禁止缓存

加载大量数据时,建议禁止缓存防止

“挤压”热数据

  • 服务端优化:Balancer、BlockCache、Compaction

1.Balancer:balance_switch|balancer,需要注意RIT问题

    均衡最小值 = 总Region个数 / RegionServer个数 * 0.8

    均衡最大值 = 总Region个数 / RegionServer个数 * 1.2


2.BlockCache:hbase.bucketcache.ioengine,优化GC,提高缓存命中率

    hbase.bucketcache.ioengine = offheap


3.Compaction:保证本地性为1,空闲时段定时执行避免影响集群IO

    hbase.regionserver.thread.compaction.large = 8

    hbase.regionserver.thread.compaction.small = 5


性能和可靠性 — 可靠性保证

HBase不存在单点问题,可以做主备切换,保证集群的高可用性


数据迁移 — 跨集群迁移

这里采用distcp来进行跨集群数据迁移,具体命令如下:

hadoop distcp -Dmapreduce.job.queuename=queue_name 
-update -skipcrccheck -m 120 hdfs://ip:port/hbase_path_old/tabname 
/hbase_path_new/tabname


注意事项:

  • 开启YARN,distcp使用MapReduce来传输数据,因此迁移之前需要确保集群资源可用

  • 防火墙,两个HBase集群之间端口要能正常telnet,例如NN、DN的端口

  • 使用hbase hbck修复元数据信息


案例: Caused by: java.io.IOException: Mismatch in length of source

原因:HDFS中的文件没有关闭,处于写状态,而每次distcp时会校验文件

长度,如果文件处于未关闭状态,就会出现这类异常

解决方案:

  • 检测文件状态,执行hdfs fsck [hdfs_file_path]|[hdfs://ip:port/path]

  • 关闭该文件,执行hdfs debug recoverLease –path [hdfs_file_path],

  • 重新进行数据迁移,执行hadoop distcp […]

注意事项:

  • 解决方案第2步中,关闭HDFS文件时,可能会失败,例如出现异常“Giving up on recoverLease”。

  • 可再次执行关闭,成功后会有“recoverLease SUCCEEDED on”信息出现


数据迁移 — Hive数据迁移到HBase

案例:在集群A(不包含HBase),将集群A中的Hive数据迁移到集群B中的HBase


方案一:在集群A中生成HFile文件,然后使用distcp将HFile文件迁移到集群B,最后使用HBase的BulkLoad的方式将数据导入到HBase表,具体操作命令:

# 使用distcp命令迁移
hadoop distcp -Dmapreduce.job.queuename=queue_name 
-update -skipcrccheck -m 120 hdfs://ip:port/hfile_path /hfile_path

# BulkLoad加载数据
hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles
/hfile_path htable_name


方案二:使用API接口,直接通过BulkLoad的方式进行数据迁移,以应用程序的形

式来实现数据迁移的工作


如何保证HBase集群的高效及稳定 — 特殊处理

  • 永久RIT问题

一般情况下,RIT都是瞬时的,但是有些情况会让其进入永久RIT状态,

永久RIT状态带来的不良后果就是管理员无法干预Region均衡操作,从

而影响集群的负载均衡。


  • 如何解决?分析实际案例

案例一:在合并Region操作时,发现RIT一直显示MERGING_NEW状态,查看HBase JIRA发现这是触发了HBASE-17682的BUG,需要打补丁进行修复。


附上HBase应用与高可用实践PPT:

备注:历届HBase Meetup会议的PPT: http://hbase.group/slides/

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片



图片



推荐阅读
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 本文详细介绍了一种利用 ESP8266 01S 模块构建 Web 服务器的成功实践方案。通过具体的代码示例和详细的步骤说明,帮助读者快速掌握该模块的使用方法。在疫情期间,作者重新审视并研究了这一未被充分利用的模块,最终成功实现了 Web 服务器的功能。本文不仅提供了完整的代码实现,还涵盖了调试过程中遇到的常见问题及其解决方法,为初学者提供了宝贵的参考。 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • 本指南详细介绍了在Linux环境中高效连接MySQL数据库的方法。用户可以通过安装并使用`mysql`客户端工具来实现本地连接,具体命令为:`mysql -u 用户名 -p 密码 -h 主机`。例如,使用管理员账户连接本地MySQL服务器的命令为:`mysql -u root -p pass`。此外,还提供了多种配置优化建议,以确保连接过程更加稳定和高效。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • HBase Java API 进阶:过滤器详解与应用实例
    本文详细探讨了HBase 1.2.6版本中Java API的高级应用,重点介绍了过滤器的使用方法和实际案例。首先,文章对几种常见的HBase过滤器进行了概述,包括列前缀过滤器(ColumnPrefixFilter)和时间戳过滤器(TimestampsFilter)。此外,还详细讲解了分页过滤器(PageFilter)的实现原理及其在大数据查询中的应用场景。通过具体的代码示例,读者可以更好地理解和掌握这些过滤器的使用技巧,从而提高数据处理的效率和灵活性。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 在搭建Hadoop集群以处理大规模数据存储和频繁读取需求的过程中,经常会遇到各种配置难题。本文总结了作者在实际部署中遇到的典型问题,并提供了详细的解决方案,帮助读者避免常见的配置陷阱。通过这些经验分享,希望读者能够更加顺利地完成Hadoop集群的搭建和配置。 ... [详细]
author-avatar
lajallan608
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有