首页
Search
1
Linux免密登陆-ubuntu
976 阅读
2
Redis集群部署方案
953 阅读
3
数据同步工具DataX、Sqoop和Canal
918 阅读
4
Hadoop各版本汇总
906 阅读
5
Spark学习笔记
884 阅读
大数据
Flink
后端
Java
笔记
运维
游客
Search
标签搜索
大数据
Flink
离线
实时
Redis
OpenJDK
Java
笔记
JVM
Elasticsearch
GC
Hadoop
Hudi
Flink CDC
K8S
数据湖
WD1016
累计撰写
56
篇文章
累计阅读
12.4万
次
首页
栏目
大数据
Flink
后端
Java
笔记
运维
页面
搜索到
30
篇与
WD1016
的结果
返回首页
2020-09-19
CPU使用率突增问题排查记录-木马攻击
1.使用top或者ps -aux | sort -k4nr | head -n 10命令查看占用cpu较高的进程2.使用systemctl status 19084查看Main PID,可以看到是定时任务3.使用cd /proc/681ls -ail查看所在目录,杀掉进程、删除相关文件夹
2020年09月19日
1,332 阅读
77 点赞
2020-01-11
JVM垃圾收集行为分析方法
尽管某些监控工具,如:jvisualvm,可以实时提供垃圾收集图表和指标,但它们并没有提供GC行为完整的详细信息,GC日志是研究垃圾收集行为的最佳信息来源。启用GC日志 可以通过指定以下JVM参数来启用GC日志:Java 8及以下版本-XX:+PrintGCDetails -Xloggc:<gc-log-file-path> Example: -XX:+PrintGCDetails -Xloggc:/opt/tmp/myapp-gc.logJava 9及以上版本-Xlog:gc*:file=<gc-log-file-path> Example: -Xlog:gc*:file=/opt/tmp/myapp-gc.log注意事项 一般需要观察24小时的GC日志,这样就会同时看到高流量和低流量的情况。 建议从生产环境中收集GC日志,因为垃圾收集行为受流量模式的影响很大,在测试环境中很难模拟生产流量。我们进行2次测试:基线测试——使用JMeter工具在没有启用垃圾收集GC日志的情况下运行应用程序20分钟,同时有200个并发用户。GC日志启用测试——使用相同的JMeter脚本运行应用程序并启用垃圾收集GC日志,持续时间为20分钟,同时有200个并发用户。对比结果如下:如图所示,CPU和内存消耗没有明显差异,同样,平均响应和事务吞吐量也没有明显差异,通过实验可以看出,GC日志在生产服务器中增加的开销可以忽略不计。分析工具 捕获GC日志后,可以使用以下免费工具之一来分析GC日志:1.GCeasy 2.IBM GC & Memory visualizer 3.HP Jmeter4.Garbage Cat
2020年01月11日
709 阅读
13 点赞
2019-04-20
Redis集群部署方案
系统包安装 配置操作系统yum 源安装以下系统包安装gcc:yum install gcc安装zlib:yum install zib安装ruby:yum install ruby 2.0以上安装rubygems:yum install rubygemsRedis 安装 在redis 官网https://redis.io/download下载 redis-3.2.9.tar.gz拷贝redis-3.2.9.tar.gz 到/application/search解压 tar –zxvf redis-3.2.9.tar.gz安装 cd src && make && make test && make install修改配置 进入cd /application/search/ redis-3.2.9复制 cp redis.conf redis6400.conf修改 redis6400.conf 里面的参数port 6400 --端口maxmemory 2g –内存大小cluster-enabled yes –开启集群模式dir /data0/redis 数据文件存放位置详细配置请见 服务器上配置启动停止 以 172.16.0.9 6400为例:启动:redis-server redis6400.conf停止: redis-cli –c –h 172.16.0.9 –p 6400 shutdown构建集群 在三台172.16.0.9,172.16.0.8 172.16.0.6 安装完成redis以后构建三主三从的高可用redis集群在任一台机器执行命令:/application/search/redis-3.2.9/src/redis-trib.rb create --replicas 2 172.16.0.9:6400 172.16.0.9:6401 172.16.0.9:6402 172.16.0.6:6500 172.16.0.6:6501 172.16.0.6:6502 172.16.0.8:6600 172.16.0.8:6601 172.16.0.8:6602
2019年04月20日
953 阅读
38 点赞
2019-03-09
kubeadm部署k8s问题汇总
1.kubectl get cs查看组件状态kube-scheduler和kube-controller-manager显示unhealthy配置文件路径:/etc/kubernetes/manifests/scheduler.conf/etc/kubernetes/manifests/controller-manager.conf去掉--port=0这个设置,然后重启sudo systemctl restart kubelet2.报错open /run/flannel/subnet.env: no such file or directory查看各个节点,包括master 节点是否有/run/flannel/subnet.env,内容应该是类似如下:FLANNEL_NETWORK=10.244.0.0/16FLANNEL_SUBNET=10.244.0.1/24FLANNEL_MTU=1450FLANNEL_IPMASQ=true没有则创建3.no space left on device错误修改虚机启动的引导项 grub 中的cgroup.memory=nokmem,让机器启动时直接禁用 cgroup的 kmem 属性修改/etc/default/grub 为:GRUB_CMDLINE_LINUX="crashkernel=auto net.ifnames=0 biosdevname=0 intel_pstate=disable cgroup.memory=nokmem"生成配置:/usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg 路径中可能是grub重启机器:reboot验证:cat /sys/fs/cgroup/memory/kubepods/burstable/pod//memory.kmem.slabinfo 无输出即可。4.解决Google浏览器不能打开kubernetes dashboard方法mkdir key && cd key #生成证书 openssl genrsa -out dashboard.key 2048 openssl req -new -out dashboard.csr -key dashboard.key -subj '/CN=192.168.246.200' openssl x509 -req -in dashboard.csr -signkey dashboard.key -out dashboard.crt #删除原有的证书secret kubectl delete secret kubernetes-dashboard-certs -n kube-system #创建新的证书secret kubectl create secret generic kubernetes-dashboard-certs --from-file=dashboard.key --from-file=dashboard.crt -n kube-system #查看pod kubectl get pod -n kube-system #重启pod kubectl delete pod <pod name> -n kube-system
2019年03月09日
501 阅读
75 点赞
2019-02-16
Elasticsearch学习笔记
recovery & gateway ES在有节点加入或退出时会根据机器的负载对索引分片进行重新分配,挂掉的节点重新启动时也会进行数据恢复。代表ES索引的持久化存储方式,ES默认是先把索引存放到内存中,当内存满了时再持久化到硬盘。当这个ES集群关闭在重新启动是就会从gateway中读取索引数据。支持本地文件,分布式文件系统,Hadoop的HDFS。{lamp/}搜索类型 SearchType搜索类型有4种 ①query and fetch(速度最快)(返回N倍数据量)②query then fetch(默认的搜索方式) ③DFS query and fetch ④DFS query then fetch(可以更精确控制搜索打分和排名。) DFS解释:先把各个分片的词频率和文档频率收集一下,然后进行词搜索的时候,各分片依据全局的词频率和文档频率进行搜索和排名。QUERY_AND_FETCH是最快的,DFS_QUERY_THEN_FETCH是最慢的。从搜索的准确度来说,DFS要比非DFS的准确度更高。{lamp/}Query 1.查询所有(match_all)。2.解析查询字符串(query_string)支持全部的Apache Lucene查询语法。3.通配符查询(wildcardQuery)匹配多个字符,?匹配1个字符 注意:避免 开始, 会检索大量内容造成效率缓慢。4.词条查询(termQuery)匹配在给定字段中含有该词条的文档,而且是确切的、未经分析的词条。5.字段匹配查询(matchQuery、multiMatchQuery匹配多个字段)。6.标识符查询(idsQuery)此查询针对内部的_uid字段运行,所以它不需要启用_id字段。7.相似度查询(fuzzy)基于编辑距离算法来匹配文档。8.范围查询(range)字段可以是数值型,也可以是基于字符串的。9.跨度查询(spanTermQuery)前面有多少词。10.组合查询、复杂查询、布尔查询(boolQuery)(must、mustNot、should-and、not、or)结合其他查询使用。11.正则表达式查询(regexpQuery)。12.分页查询(setFrom(0).setSize(1))。13.排序查询(addSort)。14.过滤filter查询(setPostFilter(FilterBuilders.rangeFilter("age").from(1).to(19)))15.高亮highlight。16.聚合查询aggregations。{lamp/}文档写入 a.数据写入buffer 同时写入translog b.每隔1s,buffer中的数据被写入segment文件(先写入os cache)c.每隔30分钟或者translog文件一定大时就flush,所有cache中的文件被fsync到磁盘。数据写入到可以搜索默认是1s,近实时。{lamp/}IK分词器 ①针对于es集群中已经存在的历史索引库,不会进行重新分词,分词插件不起作用。②新建索引库,以及索引库下的type时,要指定相应的中文分词插件,才会起作用。会根据分词插件,对新增的索引信息进行分词,存储到es集群中。③需要将安装好的ik中文分词插件拷贝到集群中别的节点上。④给es集群安装插件时,优先安装中文分词插件(建议排在第一位!!)。⑤windows下的换行符是rn , Linux os下的换行符是n ;将windows下的指令拷贝到linux命令。行下执行,往往会报错,不能正常执行,应对方案是:a)先将内容粘贴到Linux下的临时文件中;b)然后从linux临时文件中拷贝。{lamp/}优化 ①log输出的水平默认为trace,查询超过500ms即为慢查询,就要打印日志,把log输出水平改为info,可以减轻服务器的压力②批量入库大量数据的话,建议将副本数设置为0。因为es在索引数据的时候,如果有副本存在,数据也会马上同步到副本中,这样会对es增加压力。待索引完成后将副本按需要改回来。这样可以提高索引效率。③调大系统的"最大打开文件数",建议32K甚至是64K ulimit -a (查看) ulimit -n 32000(设置)④修改bin/elasticsearch.in.sh中ES_MIN_MEM和ES_MAX_MEM的大小,建 议设置一样大,避免频繁的分配内存,根据服务器内存大小,一般分配60%左右(默认 256M) ⑤分片数过多会导致检索时打开比较多的文件,另外也会导致多台服务器之间通讯。而分片数过少会导至单个分片索引过大,所以检索速度慢。建议单个分片最多存储20G左右的索引数据,所以,分片数量=数据总量/20G ⑥副本多的话,可以提升搜索的能力,但是如果设置很多副本的话也会对服务器造成额外的压力,因为需要同步数据。所以建议设置2-3个即可⑦使用filter查询会使用query cache, 如果业务场景中的过滤查询比较多,建议将querycache设置大一些,以提高查询速度。indices.queries.cache.size:10%(默认),可设置成百分比,也可设置成具体值,如256mb。⑧查询结果如query.setSize不能设置成 Integer.MAX_VALUE, 因为ES内部需要建立一个数据结构来放指定大小的结果集数据。{lamp/}其他 1.Solr 查询快,但更新索引时慢(即插入删除慢),用于电商等查询多的应用;ES建立索引快(即查询慢),即实时性查询快,用于facebook新浪等搜索。2.索引库名称必须要全部小写,不能以下划线开头,也不能包含逗号。3.BigDesk Plugin:节点的实时状态监控,包括jvm的情况,linux的情况, elasticsearch的情况。4.discovery.zen代表ES的自动发现节点机制,通过配置可以禁用,此时需要设置节点注解列表。5.如果不想返回完整的JSON文档,可以使用source返回指定字段。6.在elasticsearch中所有的搜索都会触发相关性分数计算。过滤器不计算得分,所以他们比执行查询的速度,过滤器可缓存在内存中,允许重复搜索。如果相关性不重要,那就使用filter,否则就使用query。7.master节点不参与查询、索引操作,仅负责对于集群管理,所以在CPU、内存、磁盘配置上,都可以比数据节点低很多。8.在Lucene中删除文档,数据不会马上在硬盘上除去,而是在lucene索引中产生一个.del的文件,而在检索过程中这部分数据也会参与检索,lucene在检索过程会判断是否删除了,如果删除了再过滤掉。9.默认给索引设置5个分片1个副本,分片数已经创建就不可修改。10.ES5.X之后不再支持string;5.4之前Boolean类型支持代表boolean的数字和字符串,之后只接受true、false、"true"、"false"。11.ES5.4之后对test类型的字段采用BM25评分模型,而不是基于tf-idf,评分模型的选择可以通过similarity指定。12.ES是在每个分片上单独打分的,因此分片数量会影响打分结果,分词器也会影响评分,不同的分词器会使倒排索引中词项数发生改变。13.ES默认会索引所有的字段,如果只需要存储,enable可以设置成false,这样只能从_source中获取,无法搜索到。
2019年02月16日
647 阅读
3 点赞
1
2
3
4
...
6