CodeTips 每周日发布,旨在总结个人的编码心得,梳理遇到的小问题,分享读过的优秀技术文章或者学习资源。
以下不同分类的链接,个人已经按照读取的优先级排好序了(排序优先仅代表个人观点)。
ELK Tips
Logstash 字符串分割(Split)
以下配置将 message
内容按照 \t
进行切分,为了使 \t
生效需要将 logstah.yml 中配置项 config.support_escapes
设置为 true,当设置为 true 时,带引号的字符串将处理转义字符,默认值为 false。
filter {
mutate {
split => {"message" => "\t"}
add_field => {
"ftimeold" => "%{[message][0]}"
}
}
}
复制代码
Logstash 按文件读取内容并存储到 ES
下面的配置将读取/home/txts/*
下的文件,并读取整个文件内容,然后将文件内容存储到 test-text
索引中,同时该条记录的 _id
为文档的文件名。这里需要注意的是,想读取到文档末尾时,分隔符需设置为 EOF
。
input {
file {
path => ["/home/txts/*"]
start_position => "beginning"
mode => "read"
delimiter => "EOF"
file_completed_action => "log"
file_completed_log_path => "/home/logs/file.log"
}
}
output {
elasticsearch {
hosts => ["http://192.168.3.214:9200/"]
index => "test-text"
document_id => "%{path}"
}
stdout {}
}
复制代码
ES 查询结果的一致性
为了保证用户每次查询结果的一致性(文档在结果中的顺序),可以在查询 url 里添加 preference=<some string>
这个参数,其中<some string>
可以是用户的 session ID,这样某一个用户查询的时候,查询会被固定在某几个 shard。
同义词的扩展或收缩
- 简单扩展,把同义词列表中的任意一个词扩展成同义词列表所有的词:
jump,hop,leap
; - 简单收缩,把左边的多个同义词映射到了右边的单个词:
leap,hop => jump
; - 类型扩展,完全不同于简单收缩或扩张,并不是平等看待所有的同义词,而是扩大了词的意义使被拓展的词更为通用:
"cat => cat,pet",
"kitten => kitten,cat,pet",
"dog => dog,pet"
"puppy => puppy,dog,pet"
复制代码
设置某个索引为只读状态
index.blocks.write
设置为 true 来禁止对索引的写操作,但索引的 metadatra 可以正常写。
PUT indexName/_settings
{
"index.blocks.write": true
}
复制代码
failed to process cluster event (put-mapping) within 30s
这个是创建 mapping 的时候超时了,默认是 30s 应该是集群处理不过来了。索引文件太多,使得集群的状态数据过多过大,在每个小时新建索引和设置索引 mapping 的时候,就产生集群状态更新任务交给 master 处理,master 在变更状态数据的时候是单线程处理的,如果集群总的状态数据很大,master处理这些任务就容易出现超时。
解决办法:
- 控制集群的总的索引数量,shard数量;
- 如果同时创建的索引非常多,最好避免通过写入数据自动创建索引;
- 可以通过 cron 任务,预先顺序的创建好索引。
优秀技术文章
ELK 相关
- Elasticsearch Nested类型深入详解
- 为什么Elasticsearch查询变得这么慢了?
- elasticsearch安装与配置
- 初识elasticsearch中的REST接口
- elasticsearch修改数据
大数据相关
- PB级电竞数据实时分析,大数据平台架构升级之路
- 阿里巴巴为什么选择Apache Flink?
- 美团点评基于 Flink 的实时数仓建设实践
- 直击传统商业五大痛点,如何打造一个爆款的商圈洞察产品?
- 腾讯AI Lab开源800万中文词的NLP数据集
- 大数据技术#1 大数据技术生态体系
咨询与资源
- Redis 5.0 正式发布!一网打尽所有新特性!
- 腾讯发布前端组件框架 Omi,全面拥抱 Web Components
- 阿里云的这群疯子
- 《增长黑客》作者范冰:基于数据驱动的运营增长
- GitHub上获得26992个Star的Java面试项目
- 阮一峰的网络日志第 27 期
- 高并发场景下的限流策略
- Git 和 GitHub:从入门到实践
- GitHub 发布了一款重量级产品,可直接运行代码!
- Angular 7.0发布,带来CLI Prompts、虚拟滚动和拖放等特性
其他
资源分享
- 《Apache Kylin 相关电子书》 链接: pan.baidu.com/s/15FRduvnd… 提取码: 9vey
- 《HBase 不睡觉书》 链接: pan.baidu.com/s/1DOuc0-Yb… 提取码: 41hk
强烈推荐《HBase 不睡觉书》,入门学习 HBase 的不二之选。
Any Code,Code Any!
扫码关注『AnyCode』,编程路上,一起前行。