擅长面向对象设计、C++程序开发,在金山和华为呆过,互联网从业十多年,有分布式计算和存储系统经验。
Linux远程批量工具mooon_ssh和mooon_upload使用示例.pdf 目录 目录 1 1. 前言 1 2. 批量执行命令工具:mooon_ssh 2 3.
Kafka常用命令收录.pdf 目录 目录 1 1. 前言 2 2. Broker默认端口号 2 3. 启动Kafka 2 4.
版本:redis-3.0.5 redis-3.2.0 redis-3.2.9 redis-4.0.11 参考:http://redis.io/topics/cluster-tutorial。
调整以下参数,可以大幅度改善Redis集群的稳定性: 为何大压力下要这样调整? 最重要的原因之一Redis的主从复制,两者复制共享同一线程,虽然是异步复制的,但因为是单线程,所以也十分有限。
下载位置:https://github.com/eyjian/libmooon/tree/master/shell #!/bin/bash # 统计UPD丢包工具 # 可选参数1:统计间隔(单位:秒,默认10秒) ...
指定集群中任意一个节点,查看集群中所有节点当前已用物理内存、配置的最大物理内存和系统物理内存。 源码(可从下载): #!/bin/bash # Query the memory of all nodes in a cluster ...
使用之前准备工作: 1)配置好与端口无关的公共redis.conf文件,和工具放在同一目录下 2)配置好与端口相关的模板redis-PORT.conf文件,也和工具放在同一目录下(部署时PORT会被替换成具体的端口号) 3)配置好组成集群的节点文件redis_cluster.
工具的作用: 1)比“cluster nodes”更为直观的显示结果 2)指出落在同一个IP上的master 3)指出落在同一个IP上的master和slave对 运行效果图: 源代码(可从https://github.
在一台物理机上启动6个Redis实例,组成3主3从集群,端口号依次为:1379 ~ 1384,端口号1379、1380和1384三个为master,端口1379的进程ID为17620。现将进程17620暂停(发送SIGSTOP信号),观察集群发现故障时长,和主从切换时长。
目录 目录 1 1. 前言 2 2. 缩略语 2 3. 配置和主题 3 3.1. 配置和主题结构 3 3.1.1. Conf 3 3.1.2. ConfImpl 3 3.1.3. Topic 3 3.
// 下列代码输出什么? #include <iostream> #include <string> // typedef basic_ostream<char> ostream; class A { private: int m1,m2; public: A(int a, i.
结论: 待确认是否为redis的BUG,原因是进程实际占用的内存远小于配置的最大内存,所以不会是内存不够需要淘汰。 CPU百分百redis-server进程集群状态: slave 解决办法: 使用gdb将d.ht[0].used的值改为0 问题原因: dictGetRandomKey()过程中, 无法走到分支“if (dictSize(d) == 0) return NULL;”, 导致函数dbRandomKey()进入死循环。
问题复现步骤: 1) 输入字符串: { "V":0.12345678 } 2) 字符串转成cJSON对象 3) 调用cJSON_Print将cJSON对象再转成字符串 4) 再将字符串转成cJSON对象 5) 保留8位精度方式调用printf打印值,输出变成:0.
目录 目录 1 1. 研究目的 1 2. 基本概念 1 3. crontab 1 3.1. 编辑 2 3.1.1. “crontab -e”工作流 2 3.2. 问题 3 4. crond 3 4.1. /etc/crontab 3 1. 研究目的 更好使用crontab,和解决crontab使用问题。
两种方式: 1)直接在crontab中定义变量,如: A=123 * * * * * echo $A > /tmp/a.txt 注意在定义变量时不能使用$引用其它变量,如下面的做法错误: A=123 B=$A 2)在/etc/environment中定义变量 此文件定义变量的格式为:NAME=VALUE,和crontab相关,也不能使用$引用其它变量。
版本: redis-3.2.9 部署: 5台64G内存的物理机,每台机器启动2个redis进程组成5主5备集群,每台机器1个主1个备,并且错开互备。 问题: 发现redis进程占用内存高达40G,而且全是备进程。
crontab条目中包含%号,最常见的取时间,如:date +%d, 对%需要使用\进行转义,否则不能按预期执行,正确做法为: * * * * * echo "`date +\%d`" > /tmp/r1r.
coredump的调用栈: #0 0xf76f5440 in __kernel_vsyscall () #1 0xf73c4657 in raise () from /lib/libc.
可以修改/etc/rc.d/boot.local让规则重启后也能生效,如: /sbin/iptables -F /sbin/iptables -A INPUT -i eth0 -p tcp --sport 80 -j ACCEPT /sbin/iptables -A INPUT -i eth0 -p tcp -j DROP /sbin/iptables -A INPUT -i eth0 -p udp -j DROP iptables是一个链的方式从前往后判断,如果前面的规则成立就不会往后继续,所以要注意顺序,一般每行对应一条规则。
确定Kafka安装和启动正确,ZooKeeper可以查到所有的Brokers,但执行: kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic 遇到如下错误: java.
tcpcopy是一个tcp流量复制工具,当前还支持udp和mysql流量的复制。 目的: 将机器10.24.110.21的5000端口流量引流到机器10.23.25.11的5000端口。
C++11将addressof作为标准库的一部分,用于取变量和函数等内存地址。 代码示例: #include #include void f() {} int main() { int m; printf("%p\n", std::addresso...
有如下一个结构体: struct X { uint32_t a; char* b[0]; }; sizeof(X)的值为多少了? 关键点:数组维度为0的成员不参与,但是它的类型参与。
如果HBase thrift2报:“TIOError exception: Default TException”, 这个可能是因为操作的表不存在,不一定是网络或磁盘操作异常。 HBase Thrift2偷懒了,所有异常被统一成了TIOError和TIllegalArgument两个异常, 导致调用者无法区分,而且出错信息也没能很好的带过来,增加了定位工作量。
通过需要将process_monitor.sh放到crontab上,以便系统重启自动生效,也可避免process_monitor.sh被意外终止导致失效,crontab的时间部分一般设置为1分钟执行一次,如:* * * * *。
https://github.com/eyjian/mooon/releases/tag/mooon-tools mooon_ssh:批量远程命令工具,在多台机器上执行指定命令 mooon_upload:批量远程上传工具,上传单个或多个文件到单台或多台机器 mooon_download:批量远程下载工具,从指定机器下载一个或多个文件 mooon-tools-glibc2.
正常情况下,什么时候上报blocks,是由NameNode通过回复心跳响应的方式触发的。 一次机房搬迁中,原机房hadoop版本为2.7.2,新机房版本为2.8.0,采用先扩容再缩容的方式搬迁。
详情请参见DatanodeUtil.java中的函数idToBlockDir(File root, long blockId)。 如果block文件没有放在正确的目录下,则DataNode会出现“expected block file path”日志。
如果DataNode的dfs.datanode.data.dir全配置成SSD类型,则执行“hdfs dfs -put /etc/hosts hdfs:///tmp/”时会报如下错误: 2017-05-04 16:08:22,545 WARN org.
Hadoop-2.8.0分布式安装手册.pdf 目录 目录 1 1. 前言 3 2. 特性介绍 3 3. 部署 5 3.
目录 目录 1 1. 前言 1 2. 名词 1 3. 功能 1 4. 唯一性原理 2 5. 系统结构 2 5.
# python setup.py install Traceback (most recent call last): File "setup.py", line 11, in import setuptools File "/home/zhangsan/setuptools-34.
官方说明: https://dev.mysql.com/doc/refman/5.7/en/mysql-real-escape-string.html 相关资料: https://dev.
coredump时的调用栈: #0 0x081eff2c in addbyter () #1 0x081f05b8 in dprintf_formatf () #2 0x081f15cf in curl_mvsnprintf () #3 0x081f0079 in c...
点击(此处)折叠或打开 // 测试mktime和localtime_r性能及优化方法 // // 编译方法:g++ -g -o x x.cpp或g++ -O2 -o x x.cpp,两种编译方式性能基本相同。
cron和sh等可能被某些共享库hook,而这些共享库可能会触发SIGPIPE,导致crontab和shell工作异常,解决办法是程序忽略SIGPIPE或脚本中使用“trap '' SIGPIPE”。
nginx做反向代理时的真实IP.pdf 1. 编译 对于client -> nginx reverse proxy -> apache, 要想在程序中取得真实的IP,在执行nginx的configure时,必须指定参数“--with-http_realip_module”,示例: .
HBase Thrift2 CPU过高问题分析.pdf 目录 目录 1 1. 现象描述 1 2. 问题定位 2 3. 解决方案 5 4. 相关代码 5 1. 现象描述 外界连接9090端口均超时,但telnet端口总是成功。
零停重启程序工具Huptime研究.pdf 目录 目录 1 1. 官网 1 2. 功能 1 3. 环境要求 2 4. 实现原理 2 5.
示例: # ls /usr/local/r3c/bin/lib /bin/ls: /usr/local/r3c/bin/lib: ????????? 查...
百度没能解决“连接到icloud是出错”,突然发现是因为禁止了“设置”访问WIFI和蜂窝网络(第三张图所示)。
pwdx - report current working directory of a process,格式:pwdx pid 内存分析工具 valgrind valgrind辅助工具 qcachegrind 可视化查看valgrind结果 淘宝DBA团队发布的监控脚本,...
1) 配置HDFS HttpFS和WebHDFS 如果HDFS是HA方式部署的,则只能使用HttpFS,而不能用WebHDFS。 2) 安装依赖: apr-iconv-1.2.1 confuse-3.0 apr-util-1.5.4 libpng-1.6.26 apr-1.5.2 expat-2.2.0 pcre-8.38 libxml2-devel libxslt-devel sqlite-devel 。
HDFS支持两种RESTful接口:WebHDFS和HttpFS。 WebHDFS默认端口号为50070,HttpFS默认端口号为14000。 默认启动WebHDFS而不会启动HttpFS,而HttpFS需要通过sbin/httpfs.sh来启动。
编译hbase-1.2.3源代码.pdf 目录 目录 1 1. 约定 1 2. 安装jdk 1 3. 安装maven 1 4.
如果在运行spark-sql时遇到如下这样的错误,可能是因为yarn-site.xml中的配置项yarn.nodemanager.vmem-pmem-ratio值偏小,它的默认值为2.1,可以尝试改大一点再试。
如果在运行spark-sql时遇到如下这样的错误,可能是因为yarn-site.xml中的配置项yarn.nodemanager.vmem-pmem-ratio值偏小,它的默认值为2.1,可以尝试改大一点再试。
优点:可支持海量访问的频率控制,只需要增加Redis机器,单个Redis节点(只占用一个cpu core)即可支持10万/s以上的处理。 基于IP频率限制是种常见需求,基于Redis可以十分简单实现对IP的频率限制,具体手段为利用Redis的key过期和原子加减两个特性。
#include #include #include // g++ -g -o x x.cpp -D__STDC_FORMAT_MACROS -std=c++11 int main() { int64_t a = 32; //pri...