TDH 常见运维命令(部分)

 

通过一条命令来搜集所有节点下regionServer的Exception日志:

cat /etc/hosts | grep 172.16 | awk  '{print $1}' | xargs -i ssh {} " grep Exception -R /var/log/hyperbase1/*log"

 

 截图如下。日志较多截不完,就直接取消了

 

 

查找InceptorServer进程或者ES进程用到的jar包以及jar包对应的md5码

jps | grep InceptorServer| awk '{print $1}' |xargs -i  jinfo {} | grep java.class.path|awk -F = "{print $2}" | xargs -d : -i echo {} | xargs md5sum

 

 

 

查看ES进程对应的线程以及通过shell命令来查看进程所用到的端口号

jps | grep Elasticsearch | awk '{print $1}' | xargs -i top -Hb -p {} netstat

 

 

 

快速查找某一个class所对应的jar包方法

find /usr/java/jdk1.7.0_71/lib -name "*jar" | awk '{print $1}' | xargs -i jar tf  {} | grep JavaInterface

 

 

免密登录练习

 

 

 

正排索引与倒排索引的理解

 

倒排索引和正排索引都是检索的方式,正排索引是 先扫描 文档doc 从中找到相应的 word 词汇,在一些场景中比较适用,但是例如 根据关键词,找到相应的文档全文,就可能需要扫描文档结束后才知道

文档中是否存在 关键词,会比较不合理,因此 可以使用倒排索引,用关键词和文档的映射去找到关键词,定位文档,效率会有所提升。

 

 

FST与Hashmap对比的理解

 

FST 是 lucene4中的一种数据结构。在部分场景中,可以使用 FST 替代 HashMap。

同时 FST也有相应的优点。

结构更加紧凑,压缩相应的存储空间。不考虑输出,是一个无环的 DFA

 

 

通过curl命令来执行以下es api操作   创建索引、插入数据、查询数据、带条件查询数据

 

创建索引:curl -XPUT 'tdh198:9200/xue_test/?pretty'

插入数据:curl -XPUT 'tdh198:9200/xue_test/dev/1?pretty' -d '{

    "firstname":        "San",

    "lastname":         "Zhang",

    "age":              26,

    "on_board_date":    "2015-10-31",

    "hometown":         "Beijing",

    "school":           "Nanjing University",

    "married":          false,

    "about":            "I love Beijing Opera"

}'

查询数据:curl -XGET 'tdh198:9200/xue_test/dev/1?pretty'

带条件查询数据:curl -XPOST 'tdh198:9200/xue_test/_search' -d '{

    "query": {

        "match_all":{}

    }

}

 

在 search 界面中对应

 

 

数据对应为

 

 

构建索引时,number_of_shards 和 number_of_replicas 注意事项

   

每个硬盘一个shard,一个shard存储不要超过30G。

初次索引的时候,把 replica 设置为 0,提高性能;

ES通过Shard Replication 保证Node节点出现故障时出现数据的完整性。

在Relocating的时候,Replica 从Primary 进行Recover时,Primary会先Snapshot Lucene,

然后拷贝数据到Replica,最后通过回放Translog 保证数据的一致性。

 

常见的分词方式都有哪些及概述  (借鉴网上资料)

英文分词器:英文分词的基础是以空格切分为一个个的单词,但是不同的分词器会在此基础上存在细微的差别。在Transwarp Search中,可选的英文分词器有两种:一是标准分词器(standard analyzer):标准分词器根据Unicode Consortium的定义的单词边界(word boundaries)来切分文本,然后去掉大部分标点符号,最后,把所有词转为小写;二是语言分词器(english analyzer): english 分词器自带一套英语 停用词库 ——像 and 或 the 这些与语义无关的通用词。这些词被移除后,把所有词转为小写,并根据语法规则转化成词根。

中文分词器:不同于英文分词规则,中文难以用空格来分词,只能逐字切分,所以使用的是另外一套分词器。在Transwarp Search中可选的中文分词器有两种; 一是ik分词器: ik分词使用了“正向迭代最细粒度切分算法”,简单说来就是Segmenter会逐字识别词元,并去掉停用词,将能够分出来的词元全部输出; 二是mmseg分词器: mmseg分词器是基于正向最大匹配算法将文本切分为歧义最小的token。

 

常见运维命令 rest api 篇

_cat 查看 集群状态 设计 shard node cluster

 

_cat/segments

查看各index的segment详细信息,包括segment名, 所属shard, 内存/磁盘占用大小, 是否刷盘, 是否merge为compound文件等.

查看index详细信息(/_cat/indices)

查看集群中所有index的详细信息,包括index状态,shard个数(primary/replica),doc个数等,可参考help. 可以查看指定index的信息(/_cat/indices/${index})

查看alias详细信息(/_cat/aliases)

查看集群中所有alias信息,包括alias对应的index, 路由配置等. 可以查看指定alias的信息(/_cat/aliases/${alias}). 

查看shard详细信息(/_cat/shards)

查看各shard的详细情况,包括shard的分布, 当前状态(对于分配失败的shard会有失败原因), doc数量, 磁盘占用情况, shard的访问情况(如所有get请求的成功/失败次数以及对应耗时等). 可以指定index只查看某个index的shard信息(/_cat/shards/${index}). 

查看单节点分配信息(/_cat/allocation)

查看单节点的自定义属性(/_cat/nodeattrs)

查看集群当前状态(/_cat/health)

查看集群各个节点的当前状态(/_cat/nodes)

查看集群master节点(/_cat/master

查看集群fielddata内存占用情况(/_cat/fielddata)

查看集群doc数量(/_cat/count)

查看集群的pendingTask情况(/_cat/pending_tasks)

查看各个节点的插件信息

curl "tdh198:9200/_cat/plugins?v"

查看集群的recovery情况

curl -XGET 'tdh198:9200/_cat/recovery?v'

查看集群各节点的threadpool统计信息(/_cat/thread_pool)

curl "tdh198:9200/_cat/thread_pool?v"

部分效果图:

查看各个节点信息 插件信息

 

查看集群的recovery情况

curl -XGET 'tdh198:9200/_cat/recovery?v

 

 

查看集群各节点的threadpool统计信息(/_cat/thread_pool)

curl "tdh198:9200/_cat/thread_pool?v"

 

没有更多推荐了,返回首页