[Hbase]Hbase技术方案
HBase架构简介
HBase在完全分布式环境下,由Master进程负责管理RegionServers集群的负载均衡以及资源分配,ZooKeeper负责集群元数据的维护并且监控集群的状态以防止单点故障,每个RegionServer会负责具体数据块的读写,HBase所有的数据存储在HDSF系统上。
• 适合场景 (综合考虑)
– 表数据量大(至少亿级别以上)
– 日志append型业务,(比如定期保留10天数据等)
– 原则上:
• 能分库分表来用mysql就用mysql来解决
• mysql 单表一般500w,能使用mysql的场景
– 无跨行跨表事务要求
– 写入量大 (每天千万及以上)
– 读取量相对少 (读取:写入 <= 1/10)
– 读取场景简单、不经常变化
– 无正序、逆序的排序要求
– 类似dw等全量读取,不太合适。
– Rowkey不经常更新 (必须先删除再添加)?
建议
• 海量数据,rowkey范围和分布已知,建议进行预分配
• Rowkey一定要尽量短 (如:时间用时间戳整数表示、编
码压缩)
• CF设计:尽量少,建议CF数量在1-2个
• Rowkey设计:写入要分散;
• Autoflush参数设置为true;否则极端情况下会丢失数据
• Hbase client的重试次数为3次以上。否则会由于split导致region not onle;从而导致写入失败
– hbase.rpc.timeout 一次rpc的timeout;默认60秒
– hbase.client.pause 客户端的一次操作失败,到下次重试之间的等待时间
– hbase.client.retries.number 客户端重试的次数
– hbase.regionserver.lease.period 客户端租期超时阀值;scan量大时可以考虑增大;否则”Lease Exception: lease-70000000000000001 does not exist”
• ZK连接/HTable对象的使用注意
– Configure对象的使用
• 必须是static or singleton模式
– 默认:每台机器与zk直接的连接数不超过30个
– HTable的使用
• 线程不安全
• 使用HTableV2
• HTablePool (推荐的方式)
总结
• Hbase作为一个NOSQL存储,作为在线存储的一个重要组成
• 业务设计和选型尤为重要,依特性合理使用
• 容灾是走出Hbase存储使用更广阔的的前提
• 异常处理,先恢复服务,再深入排查
[Hbase]Hbase技术方案的更多相关文章
- HBase 数据迁移方案介绍
一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分为以下几类: 图1.HBase数据迁移方案 从上面图中可看出,目前的方案主要有四类,Hadoop层有一类,HBase层有三类.下 ...
- HBase 数据迁移方案介绍 (转载)
原文地址:https://www.cnblogs.com/ballwql/p/hbase_data_transfer.html 一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分 ...
- HBase 数据迁移方案介绍(转载)
原文链接:https://www.cnblogs.com/ballwql/p/hbase_data_transfer.html 一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分 ...
- 4.HBASE数据迁移方案(之snapshot):
4.HBASE数据迁移方案: 4.1 Import/Export 4.2 distcp 4.3 CopyTable 4.4 snapshot 快照方式迁移(以USER_info:user_lo ...
- 网易云信技术分享:IM中的万人群聊技术方案实践总结
本文来自网易云信团队的技术分享,原创发表于网易云信公众号,原文链接:mp.weixin.qq.com/s/LT2dASI7QVpcOVxDAsMeVg,收录时有改动. 1.引言 在不了解IM技术的人眼 ...
- 分布式锁1 Java常用技术方案
前言: 由于在平时的工作中,线上服务器是分布式多台部署的,经常会面临解决分布式场景下数据一致性的问题,那么就要利用分布式锁来解决这些问题.所以自己结合实际工作中的一些经验和网上看到的一些资 ...
- unity小地图技术方案总结
技术方案 一:从顶视图获取实时小地图(优点实现快容易对地图进行放大缩小操作而且地图,缺点是不好对地图做出修改,只能在顶部加个另外的相机层来遮盖) 1.创建Redertexture并改名为smallma ...
- iOS多线程技术方案
iOS多线程技术方案 目录 一.多线程简介 1.多线程的由来 2.耗时操作的模拟试验 3.进程和线程 4.多线程的概念及原理 5.多线程的优缺点和一个Tip 6.主线程 7.技术方案 二.Pthrea ...
- Facebook存储技术方案:找出“暖性BLOB”数据
Facebook公司已经在其近线存储体系当中彻底弃用RAID与复制机制,转而采用分布式擦除编码以隔离其所谓的“暖性BLOB”. 暖性?BLOB?这都是些什么东西?大家别急,马上为您讲解: BLOB—— ...
- 分布式锁1 Java常用技术方案(转)
转:http://www.cnblogs.com/PurpleDream/p/5559352.html#3450419 前言: 由于在平时的工作中,线上服务器是分布式多台部署的,经常会面临 ...
随机推荐
- javascript学习笔记(三):运算符、循环语句
javascript的运算符.条件语句.循环语句的使用方法大部分和c语言类似,但是值得注意的是,运算符中"=="和"==="的使用方法和c语言有区别:在java ...
- 有用的url地址
https://docs.oracle.com/javase/7/docs/api/overview-summary.html https://docs.oracle.com/javase/8/doc ...
- mysqlli
./configure --with-mysql=/usr/bin/mysql_config \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd ht ...
- leetcode 中等题(1)
2. Add Two Numbers(中等) /** * Definition for singly-linked list. * struct ListNode { * int val; * Lis ...
- 解决libc.so.6: version `GLIBC_2.14' not found问题
1.命令检查系统glibc支持的版本: strings /lib64/libc.so.6 |grep GLIBC_ 如果没有2.14或者其他版本的,需要下载安装 2.下载地址:http://pan.b ...
- CentOS SELinux服务关闭与开启
查看SElinux是否开启 查看是否开启SELinux,如果是未开启则是diabled,enforcing(enforce的分词,正在执行的意思),表明开启 #getenforce 临时关闭S ...
- Tensorflow函数——tf.variable_scope()
Tensorflow函数——tf.variable_scope()详解 https://blog.csdn.net/yuan0061/article/details/80576703 2018年06月 ...
- 录音器 AudioRecorder
实现录音器有两种方式可以选择: 1.AudioRecord(基于字节流录音) 优点:可以实现语音的实时处理,进行边录边播,对音频的实时处理. 缺点:输出的是PCM的语音数据,如果保存成音频文件是不能被 ...
- Codeforces Round #520 (Div. 2)
Codeforces Round #520 (Div. 2) https://codeforces.com/contest/1062 A #include<bits/stdc++.h> u ...
- RxJS之组合操作符 ( Angular环境 )
一 merge操作符 把多个 Observables 的值混合到一个 Observable 中 import { Component, OnInit } from '@angular/core'; i ...