- 博客(21)
- 收藏
- 关注
原创 老集群加新节点后一些有用的ES curl api命令
老集群加新节点后一些有用的ES curl api命令查看每台机器在某天日志的shards数量: curl -s "172.24.27.232:9200/_cat/shards" | grep '20211011' | awk '{print $NF}' | sort -r | uniq -c | sort -r 注意替换ip和日期,示例中是广州集群的一台es节点,查看日期是2021年10月11号查看正在重平衡的切片列表 curl -s "172.24.27.232:9200/_cat/shard
2023-11-26 12:12:57
474
原创 ES集群如何下掉多余的数据节点
公司某ES集群5台机器共计25T硬盘,实际只使用了不到10T。所以这里需要下掉一个节点以节省成本。背景:5个节点都是data节点,都没有在配置文件中设置node.roles项。首先需要把要下掉的节点上的分片转移到其他节点上去,命令很简单:curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'{ "transient": { "cluster.routing.
2021-10-25 19:36:12
2217
原创 ES集群重启注意事项
1、ES集群千万不要一次性重启全部节点,会导致所有分片被置为 unassigned_shards,重启后需要大量时间重新分配切片。这期间集群会处于red状态,不能写入任何新数据。这在生产环境中会导致灾难性的后果。2、所有,要采用轮流重启的方式。重启一个节点,等该节点重新加入并且集群状态变为green后,再重启下一个节点。3、重启过程中,要临时关闭一个功能。每个结点重启时,ElasticSearch集群的高可用和自平衡方案会自动在别的结点上复制该重启结点的分片,这定然导致了很大的IO和网络开支。所以要临
2021-10-16 23:14:29
8426
原创 多进程写同一个日志文件时如何确保每条日志不与其他日志重叠
背景/ write + O_APPEND 可以实现多进程写相同日志不交叉我们有多个进程,往同一个文件写日志。当然希望能每条日志边界清晰,既不与其他日志重叠,也不与其他日志交叉。为了达到这个目的,最直观的想法就是加锁。但其实不必这么麻烦,只需在打开文件时使用O_APPEND标记,并使用无用户态缓冲的写文件接口(以C来讲也就是write),就可以确保日志不重叠。O_APPEND的作用在使用open打开文件时,第二个参数flags可以指定各种标记,其中就包括O_APPEND.O_APPEND标记的作用是,
2021-06-24 21:20:07
2921
原创 20210618
一、logstash从kafka拉数据到本地腾讯云的ckafka消息查询界面真的太反人类了,不仅要手动指定分区,每次查询还最多只显示20条消息。input { kafka { bootstrap_servers => "XXX.XXX.XXX.XXXX:XXXX" topics => ["xxxx"] consumer_threads => 12 # 这个group_id不能和现有的重合,否则会和正在运行的同名group一起消费 group_
2021-06-21 09:29:46
247
原创 20210617
一、filebeat连kafka报错:circuit breaker is open现象:疯狂重复下列打印2021-06-17T09:10:56.052Z INFO [publisher] pipeline/retry.go:219 retryer: send unwait signal to consumer2021-06-17T09:10:56.052Z INFO [publisher] pipeline/retry.go:223 done在filebeat的yml文件中添加下列选项打开调
2021-06-17 21:19:46
3757
2
原创 20210601
一、调整系统的共享内存上限今天遇到创建32个大小为100MB的共享内存失败。原因是创建的共享内存总大小超过了系统允许的共享内存上限。查询系统共享内存上限的命令是 ipcs -l:[ops@g-null kernel]$ ipcs -l------ Shared Memory Limits --------max number of segments = 4096max seg size (kbytes) = 3139174max total shared memory (kbytes) =
2021-06-01 20:08:17
1579
原创 window双网卡上网
公司的开发电脑上装了两张网卡,内网网卡只能上公司内网,外网网卡可以上外网。但是上内网时需要禁用外网网卡,上外网时需要禁用内网网卡,否则不能上网。由于来回切换很麻烦,所以我在网上搜索到了解决办法,并试验成功。以下是具体的操作步骤:开始->搜索->输入"cmd",以管理员身份打开。在cmd对话框依次输入下面三条命令:1、首先输入命令:route delete 0.0.0.0这...
2019-11-06 10:40:10
671
原创 snprintf的使用方法和陷阱
snprintf()用于往buf中写入格式化的字符串。想要正确地使用snprintf,需要对它的入参size和返回值的含义有准确的理解。否则会踩入深坑而不自知。1.语法说明函数声明:int snprintf(char *str, size_t size, const char *format, ...);参数说明:size:snprintf往buf中最多写入size个字节。注意,字...
2019-10-17 10:23:43
3983
1
原创 linux共享内存的使用方法
共享内存是高效的IPC方式。一、创建共享内存: #include <sys/ipc.h> #include <sys/shm.h> int shmget(key_t key, size_t size, int shmflg); 例如: int shmid = shmget(key, size, 06...
2019-10-16 20:41:07
1146
1
原创 Go切片的使用方法
切片简介Go的切片(slice)是Go语言内置的一种数据结构。在使用上,Go的切片和C++ STL的vector有以下相同点:都可以直接索引,像数组一样随着元素个数的增加,可以自动扩大容量。(每超过一次,则将容量扩展为当前的两倍(Go目前的版本就是两倍扩展,而STL vector没有明确规定,根据不同的实现版本,2倍或者1.几(隐约记得visual studio2015似乎就是1.几)都...
2019-09-18 23:02:35
1273
原创 shell的重定向
shell中>,>>,<,<<这四个符号都用来重定向。其中,>,>>是用于重定向输出;<,<<用于重定向输入。1. >的用法常见用法,将错误输出重定向到/dev/null文件,起到屏蔽错误信息输出的作用#由于没有xxx这个文件,所以会报错root@ubuntu:~# ls xxxls: 无法访问xxx: 没...
2019-09-18 00:00:27
463
原创 我掌握的vim常用命令梳理
前言我平时用vim不多,用到的时候大部分是在git commit。但是前前后后用了这么久,还是大致记住了一些命令,都是使用频率比较高的(使用频率低的自然也没记住)。这里总结一下。首先是vim最迷惑人的退出了。(注意’:‘也是命令的一部分,’:'表示进入命令模式。)退出 :q保存 :w保存并退出 :wq保存并退出 shift+zz光标跳转翻页向下全屏翻页 ctrl+f向上全屏翻...
2019-09-07 00:31:21
191
原创 perror与printf,及其在错误信息打印上的应用
原型printf和perror都可以在屏幕上打印信息。那么这两个有什么区别呢?首先看函数原型: #include <stdio.h> void perror(const char *s); // perror - print a system error message #include <stdio.h> int printf(const char *fo...
2019-08-31 18:27:32
4940
原创 UNIX管道--简介与示例
管道简介术语定义代码示例重点总结简介管道是UNIX系统最古老的IPC形式。它有以下两点局限性:数据只能单向流动只能在具有公共祖先的两个进程间使用。通常是父进程通过系统调用pipe()创建管道,然后fork()出子进程,这两个进程就可以通过管道进行通信了。术语定义管道fd:一条管道有两个套接字,这两个套接字是在调用pipe(fd)创建管道时获取获取的。fd[0]:通过该套接字可...
2019-08-31 18:03:00
1226
翻译 为什么++i 优于 i++
对于for(T i=0;i<n;i++)for(T i=0;i这两种写法,如果T是基本数据类型比如int,则两种写法没有性能差异。如果T是一个类,则++i效率更高,原因如下:class SomeNum{ int i;public: SomeNum operator++() // ++i { i = i + 1; return
2017-10-14 23:11:11
490
原创 用两个栈实现队列 【C++实现】
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。给定函数头class Solution{public: void push(int node) { } int pop() { }private: stack stack1; stack stack
2017-10-06 00:09:58
392
原创 从尾到头打印链表 【C++实现】
题目描述输入一个链表,从尾到头打印链表每个节点的值。函数头:vector printListFromTailToHead(ListNode* head)思路:遍历一次链表,从而将链表节点的值从头到尾存入栈中;然后将栈内元素出栈,依次存入用于返回函数结果的vector中。vector printListFromTailToHead(ListNode* head) { stack
2017-10-05 17:02:25
372
翻译 替换空格【C++实现】
题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。给定函数头: void replaceSpace(char *str,int length)题意分析:替换之后的字符串,其有效字符长度大于 原字符串。新字符串仍旧存放在指针str所指向的内存中,该内存的最大长度为 le
2017-10-05 16:21:18
1286
转载 二维数组中的查找【C++实现】
题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。【分析:以左下为起点,往上元素数值递减,往右元素数值递增。】bool Find(int target, vector > array) { const int l = array[0].size();//列数
2017-10-04 00:17:56
548
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人