- 浏览: 289521 次
- 性别:
- 来自: 北京
最新评论
-
Ann-phei:
wooding老师,有没有出书计划呀,是否方便加我QQ详聊呀 ...
2016年书架整理 -
可乐瓶里的小辣椒:
Storm目录贴 -
可乐瓶里的小辣椒:
...
TCP编号系统 -
woodding2008:
tivan 写道反压的你有进行测试过吗?有做功能测试,没有做性 ...
Storm1.0.x新功能调研 -
tivan:
反压的你有进行测试过吗?
Storm1.0.x新功能调研
文章列表
Redis RDB持久化
- 博客分类:
- Redis
redis是内存数据库,它将自己的数据库状态存储在内存里面,所以如果不想办法将存储在内存中的数据库状态保存到磁盘里面,那么一旦服务器进程退出,服务器中的数据库状态也会消失不见。为了解决这个问题,Redis提供了RDB持久化功能,这个功能可以将Redis在内存中的数据库状态保存到磁盘里面,表面数据意外丢失。RDB持久化功能所生成的RDB文件时一个经过压缩的二进制文件,通过该文件可以还原生成RDB文件时的数据库状态。
RDB文件的创建与载入
有两个Redis命令可以用于生成RDB文件,一个是SAVE,另一个是BGSAVE。
SAVE命令会阻塞Re ...
Redis过期删除策略
- 博客分类:
- Redis
设置键的生存时间或过期时间
通过EXPIRE命令或者PEXPIRE命令,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间(Time To Live,TTL),在经过指定的时间之后,服务器就会自动删除生存时间为0的键。
set k ...
监控Storm Worker的系统资源情况
- 博客分类:
- Storm
storm平台是分布式的计算框架,任务运行状况跟踪起来会比较麻烦,通过在所有的supervisor的机器上部署进程采集脚本,并且将任务名字以及端口加入监控数据counter的tag中,以便于用来跟踪任务的运行情况。
监控效果
参考资料
https://github.com/open-falcon/plugin/blob/master/common/60_proc_resource_status.py
http://www.malinga.me/reading-and-understanding-the-storm-ui-storm-ui-explained/
I tried to find a document that explains every parameter in the storm UI, but I did not find any. So I thought of starting one of my own. I will start this with whatever information I have by now and will try ...
Storm元数据总体交互
- 博客分类:
- Storm
storm在zookeeper中存储结构
storm采用zookeeper存储nimbus、supervisor、worker以及executor之间共享的元数据,模块重启之后可以通过对应元数据恢复,所以storm是无状态的。
$rootPath/workerbeats/$topology_id/$node_port
存储由node和port指 ...
Storm worker进程发生死锁
- 博客分类:
- Storm
worker进程发生死锁[0.9.5]
在0.9.5版本的storm发现netty通信过程中出现死锁,只发现过一次,发生频率较低。
死锁栈信息
Found one Java-level deadlock:
=============================
"Thread-12-disruptor-worker-transfer-queue":
waiting to lock monitor 0x00007f85e000aee8 (object 0x00000007b4ffc8e8, a java.lang.Object),
...
Storm Worker中的线程
- 博客分类:
- Storm
worker中的每个计时器都对应一个java线程,使用计数器进行心跳保持以及获取元数据更新信息。
创建woker
mk-worker函数用于创建worker进程,主要工作包括:
启动相应计时器
创建worker中对应的executor
启动接收消息线程
...
Storm Nimbus中的线程
- 博客分类:
- Storm
nimbus计时器线程
nimbus除主线程之外还有一个计数器线程,他主要有三个作用:
调用mk-assignment方法启动新一轮任务的分配,调用do-cleanup方法清理storm元数据。这两项操作会每个nimbus.monitor.freq.secs执行一次,默认值:10秒。
调用clean-inbox方法清理nimbus本地目录中的topoloyg的jar包。该操作每个nimbus.cleanup.inbox.freq.secs执行一次,默认值:600秒。
topology的状态转移时间,只有当nimbus接收到对应的服务请求时才会触发,比如:kill、rebalance ...
Kafka平台问题总结
- 博客分类:
- Kafka
总结一下运营kafka平台过程中遇到的问题。
网络限制
新扩容的机器在由于其他原因导致在交换机上做了流量限制,出只能达到300+Mb,这个问题很隐蔽,不容易被发现。解决方式也很容易直接去掉限流即可。
Zookeeper连接上限
基于kafka客户端做了一层包装,某些版本上有bug会导致zookeeper连接有泄漏,很容易就超过一个ip Max60个连接的限制,最终导致访问zookeeper失败。
a01.zookeeper.kafka.javagc
60 192.168.200.36
...
背景介绍
一支广告的投放通常有很多的限定条件:地域、时段、频次、广告位、轮播顺序、用户标签【性别、年龄、爱好】。广告主的期望有良好的投放效果,广告平台期望有良好的投放量以及效果。假设媒体资源足够,那我们应该需要计算出每一分钟应该完成的投放量,调度就是为了完成这个目标。
调度需要的数据
容量曲线
分钟级别的排期
总的投放量
已经完成的数据量
计算公式
本分钟应该完成的量=(总的投放量-已完成量)*容量因子
容量因子=当前分钟容量/剩余排期容量 [计算过程数据完全依赖容量曲线]
已经完成的量
获取这个数据的方式有很多种 ...