carlosfu


  • 首页

  • 分类

  • 归档

  • 标签

redis backlog

发表于 2017-07-12   |   分类于 redis   |     |   阅读次数

一、Redis配置

设置backlog=10

1
2
3
4
5
6
7
daemonize yes
pidfile /var/run/redis-6379.pid
port 6379
tcp-backlog 10
logfile "6379.log"
dbfilename dump-6379.rdb
dir /opt/soft/redis/data/

二、客户端

1
2
阅读全文 »

Metrics统计造成某台Region Server的CPU过高

发表于 2017-07-10   |   分类于 HBase   |     |   阅读次数

一、现象

该机器的RegionServer的CPU几乎吃满,造成负载过高。

阅读全文 »

Direct Memory OOM造成Region Server挂掉

发表于 2017-07-06   |   分类于 HBase   |     |   阅读次数

故障时间:2017-06-04 09:15

一、现象

RegionServer自行挂掉:zk + shutdown hook

1
2
3
4
5
6
7
8
9
10
11
12
2017-06-04 09:14:06,194 INFO [regionserver/102zw68.tvindex.sohuno.com/10.10.102.68:16020] zookeeper.ZooKeeper: Session: 0x25a38b51be18b65 closed
2017-06-04 09:14:06,194 INFO [main-EventThread] zookeeper.ClientCnxn: EventThread shut down
2017-06-04 09:14:06,216 ERROR [main] regionserver.HRegionServerCommandLine: Region server exiting
java.lang.RuntimeException: HRegionServer Aborted
at org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.start(HRegionServerCommandLine.java:68)
at org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.run(HRegionServerCommandLine.java:87)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126)
at org.apache.hadoop.hbase.regionserver.HRegionServer.main(HRegionServer.java:2665)
2017-06-04 09:14:06,238 INFO [Thread-9] regionserver.ShutdownHook: Shutdown hook starting; hbase.shutdown.hook=true; fsShutdownHook=org.apache.hadoop.fs.FileSystem$Cache$ClientFinalizer@318603db
2017-06-04 09:14:06,238 INFO [Thread-9] regionserver.ShutdownHook: Starting fs shutdown hook thread.
2017-06-04 09:14:06,239 INFO [Thread-9] regionserver.ShutdownHook: Shutdown hook finished.
阅读全文 »

HBase故障记录:由jstack引起的RegionServer宕机。

发表于 2017-06-17   |   分类于 HBase   |     |   阅读次数

一、

看图理解HBase-1.HBase组件角色和交互

发表于 2017-05-23   |   分类于 HBase   |     |   阅读次数

一.Client

1.角色

  • 普通API(get、put、delete等)
  • Admin API(create、alter、compact等)

2.交互

  • 与Zookeeper
    • 第一次读写数据,需要从Zookeeper获取Meta表所在的RegionServer。
    • Zookeeper会将(RegionServer、Master)的状态变化通知给客户端(HBase client is smart client)
  • 与Master:这里没有画,但在使用Admin API(例如建表)时,实际上是对Master进行操作。
  • 与RegionServer:读写数据。
阅读全文 »

HBase学习2-shell客户端基本使用

发表于 2017-05-23   |   分类于 HBase   |     |   阅读次数
1
help命令很有用,不会命令可以用help,例如help create

一、Admin API

1.建表(最简):必须指定好列族

create ‘table_name’,’family_name’

例如

1
2
3
4
5
6
7
8
9
10
一个列簇
hbase(main):003:0> create 'user_test','score'
0 row(s) in 0.1120 seconds
=> Hbase::Table - user_test
多个列簇
hbase(main):004:0> create 'user_test2','score','info'
0 row(s) in 0.1380 seconds
=> Hbase::Table - user_test2

非默认配置,例如多个版本

1
create 'message_box_test',{NAME => 'f', VERSIONS => 20}
阅读全文 »

HBase学习-1.单机版安装

发表于 2017-05-23   |   分类于 HBase   |     |   阅读次数

注意

1. 需要oracle jdk 7+。
2. 单机版HBase: Master,Zookeeper,Region Server都在一起,使用本地磁盘代替HDFS存储。
3. 本示例使用的是1.2.5版本。
4. 生产环境不建议使用root启动。

一、安装、配置、启动

1.下载

HBase镜像:http://mirror.bit.edu.cn/apache/hbase/

1
2
3
4
cd /opt/hbase/
wget http://archive.apache.org/dist/hbase/1.2.5/hbase-1.2.5-bin.tar.gz
tar -xvf hbase-1.2.5-bin.tar.gz
ln -s /opt/hbase/hbase-1.2.5 hbase
阅读全文 »

基于Redis Cluster的分布式布隆过滤器

发表于 2017-04-21   |   分类于 Redis   |     |   阅读次数

一、设计目标

  1. Redis分布式布隆过滤器。
  2. 用户使用透明。(无需关心内部路由、存储细节)
  3. 简单易用(如同使用本地布隆过滤器)。
  4. 支持多种API和批量操作。
  5. 支持多种hash函数。
  6. 高性能、低错误率。

二、基本架构

阅读全文 »

Redis热点key寻找与优化

发表于 2017-02-20   |   分类于 Redis开发与运维   |     |   阅读次数

声明:本文内容来自《Redis开发与运维》一书第12章,如转载请声明。

热门新闻事件或商品通常会给系统带来巨大的流量,但对存储这类信息的Redis来说是一个巨大的挑战。以Redis Cluster为例,它会造成整体流量的不均衡,个别节点出现OPS过大的情况,极端情况下热点key甚至会超过Redis本身能够承受的OPS,因此寻找热点key对于开发和运维人员非常重要。

1.客户端

客户端其实是距离key”最近”的地方,因为Redis命令就是从客户端发出的,例如在客户端设置全局字典(key和调用次数),每次调用Redis命令时,使用这个字典进行记录,如下所示。

1
2
3
4
5
6
7
8
9
10
11
12
public static final AtomicLongMap<String> ATOMIC_LONG_MAP = AtomicLongMap.create();
String get(String key) {
counterKey(key);
//ignore
}
String set(String key, String value) {
counterKey(key);
//ignore
}
void counterKey(String key) {
ATOMIC_LONG_MAP.incrementAndGet(key);
}
阅读全文 »

Redis的内存优化

发表于 2017-02-16   |   分类于 Redis开发与运维   |     |   阅读次数

声明:本文内容来自《Redis开发与运维》一书第八章,如转载请声明。

Redis所有的数据都在内存中,而内存又是非常宝贵的资源。对于如何优化内存使用一直是Redis用户非常关注的问题。本文让我们深入到Redis细节中,学习内存优化的技巧。分为如下几个部分:

一. redisObject对象
二. 缩减键值对象
三. 共享对象池
四. 字符串优化
五. 编码优化
六. 控制key的数量

一. redisObject对象

Redis存储的所有值对象在内部定义为redisObject结构体,内部结构如下图所示。

Redis存储的数据都使用redisObject来封装,包括string,hash,list,set,zset在内的所有数据类型。理解redisObject对内存优化非常有帮助,下面针对每个字段做详细说明:

阅读全文 »
1234…6
carlosfu

carlosfu

55 日志
22 分类
47 标签
cachecloud shiye xiaodada
© 2018 carlosfu
由 Hexo 强力驱动
主题 - NexT.Mist