开发者学堂课程【ElasticSearch 最新快速入门教程:创建和删除】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/642/detail/10683
创建和删除
内容介绍:
一、关于创建
二、关于删除
一、关于创建
1.调大系统最大打开文件数
对于文件个数,要调大系统的"最大打开文件数",建议32K 其至是64K。
(1)查看系统最大打开文件数
在 Linux 系统中,可以通过 ulimit -a 进行查看,查看结果中的“open files”即为此时系统的最大打开文件数。
(2)调大系统最大打开文件数
可以通过 ulimit -n 32000对系统最大打开文件数进行设置
2.修改配置文件调整 ES 的 IVM 内存大小
(1)在 elasticsearch 核心配置文件中,可以设置 ES_MIN_MEM 和 ES_MAX_ MEM的大小,建议设置较大一些,避免频繁的分配内存,根据服务器内存大小,一般分配60%左右(默认256M)
(2)如果使用 searchwrapper 插件启动 es 的话则修改[过时,在 es1x中有用]
bin/service/elasticsearch.conf(默认1024M,2.x以后不用考虑)
3. 设置 mlockall 来锁定进程的物理内存地址
在配置文件中,修改conf/elasticsearch.yml与bootstrap.mlock
all:true,即可锁定进程的物理内存地址,也可以加快创建时的速度。
(1)分片多的话,可以提升建立索引的能力,5-20个比较合适。如果分片数过少或过多,都会导致检索比较慢。分片数过多会导致检索时打开比较多的文件,另外也会导致多台服务器之间通讯;而分片数过少会导至单个分片索引过大,所以检索速度慢。建议单个分片最多存储20G 左右的索引数据,所以,分片数量=数据总量/20G。
(2)副本多的话,可以提升搜索的能力,但是如果设置很多副本的话也会对服务器造成额外的压力,因为需要同步数据。所以建议设置2-3个副本即可,要定时对索引进行优化,不然 segment 越多,查询的性能就越差。
索引量不是很大的话情况下,可以将 segment 设置为1,在 Linux 系统中,输入:
curl-XPOST ‘http://janson01:9200/ok/_forcemerge?pretty&
max_num segments=1'
结果为
{
"_shards": {
"total": 9
"successful": 10
"failed": 0
}
}
段数优化,要全面优化索引,将其设置为1。默认设置是只需检查是否需要执行合并,如果需要执行合并,如果需要执行合才执行合并操作。【经过测试,越小,速度越快】
curl-XPOST ‘http:/localhost:9200/crxy/optimize?max num segments=1'
java代码:cient.admin()indices().prepareOptimize("bigdata").
setMaxNumSegments(1).get()
二、关于删除
1. 删除文档
在 Lucene 中谢除文档,数据不会马上在硬盘上除去,而是在 lucene 索引中产生一个.del 的文件,而在检索过程中这部分数据也会参与检索,lucene 在检索过程会判断是否删除了,如果删除了再过滤掉,这样也会降低检索效率。
所以可以执行清除删除文档:
curl-XPOST 'http://locathost:9200/bigdata/optimize?only expunge deletes=true'
client.admin().indices().prepareOptimize("bigdata").setOnlyExpungeDeletes(true).get();
如果在项目开始时需要批量入库大量数据的话,建议将副本数设置为0,因为 es 在索引数据的时候,如里有副本存在,数据也会马上同步到副本中,这样会对 es 增加压力。待索引完成后将副本按需要改回来,这样可以提高索引效率。
在 Linux 系统中输入:
curl-XPOST ‘http://janson01:9200/ok/_forcemerge?pretty&
only expunge deletes=true'
结果为
{
"_shards": {
"total": 10
"successful": 10
"failed": 0
}
}
以上即为关于创建和删除的内容,其中的 elasticsearch 配置文件中有一个 in.sh,在系统中输入 vim es/config/。
根据查询结果可知,
在新版本中有一个配置文件叫作 jvm.options,输入 vim jvm.options 即可查询其配置的虚拟机及其参数。