ElasticSearch集群安装指南

安装过程
一、建立ElasticSearch应用专用用户
由于ES不允许用root运行,所以需要先创建一个账号给它。
1.创建用户组app

groupadd app

2.创建用户elastic

useradd -g app elastic

3.设置密码

passwd elastic 

4.创建安装目录

mkdir /app/elastic
chown -R elastic:app /app/elastic
chmod 755 /app/elastic

建立用户并授权目录后使用新用户继续操作。
二、下载解压到适当的目录
选择版本时需要考虑elasticsearch-analysis-ik匹配的版本,请参考 https://github.com/medcl/elasticsearch-analysis-ik/issues#versions中的版本对应关系
最新版的elasticsearch在 https://www.elastic.co/downloads/elasticsearch 下载,过去的版本请在 https://www.elastic.co/downloads/past-releases 查找

su elastic
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.tar.gz -o /app/elastic/elasticsearch-5.5.2.tar.gz

把下载后的文件解压在/app/elastic目录

tar xvfz elasticsearch-5.5.2.tar.gz

三、修改配置文件

    vim ./elasticsearch-5.5.2/config/elasticsearch.yml

1.修改以下cluster.name: 自定义群名称,同一集群内必须设置相同的名称

node.name: 自定义

节点名称,同一集群内设置不network.host: 本机IPost地址,可以为0.0.0.0,一般直接设置为本机IP

http.port: 9200

2.默认端口9200

discovery.zen.ping.unicast.hosts: ["“,”“,”“]

集群内扫描的机器IP:port,需要添加集群通讯端口,端口默认为9300, 如 ”127.0.0.1:9300”。本机ip:port也要加上。

四、安装ik分词

1.确认要安装的插件版本是否和ElasticSearch版本匹配 ,请参考elasticsearch-analysis-ik和elasticsearch版本对应关系

2.在线安装方式(问题是通常在国内都很慢,原因你懂的):
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.5.1/elasticsearch-analysis-ik-5.5.1.zip

3.或者手动下载 https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.5.1/elasticsearch-analysis-ik-5.5.1.zip的包并执行步骤2的命令
./bin/elasticsearch-plugin install elasticsearch-analysis-ik-5.5.1.zip

4.又或者,离线安装方式,手动下载已经构建好的包,后放在./bin/elasticsearch-plgin下

#位于elasticsearch安装目录下
mkdir ./plugin/analysis-ik
#把下载后的elasticsearch-analysis-ik-5.5.1.zip放在/tmp下
unzip /tmp/elasticsearch-analysis-ik-5.5.1.zip
mv /tmp/elasticsearch/* ./plugins/analysis-ik

5.测试步骤:https://github.com/medcl/elasticsearch-analysis-ik#quick-example

五、启动
使用以下命令启动,可添加参数-d 后台启动

/app/elastic/elasticsearch-5.5.2/bin/elasticsearch -d

六、快速部署到其他集群
按部署完成了一个节点(master)后,如果需要快速部署到其他多个集群,可以复制master节点的安装目录到其他节点的相同目录,然后只要修改./elasticsearch-5.5.2/config/elasticsearch.yml中的host和discovery.zen.ping.unicast.hosts即可
本项目的Index和Mapping创建方法
本项目使用的index名称为app,type名称为test
创建名为app的index,创建一个ik_pinyin_analyzer

curl -XPUT http://10.18.100.207:9200/app/ -d'
{
    "index" : {
        "analysis" : {
            "analyzer" : {
                "ik_pinyin_analyzer" : {
                    "type":"custom",
                    "tokenizer" : "ik_smart",
                    "filter" : ["my_pinyin","word_delimiter"]
                }
            },
            "filter" : {
                "my_pinyin" : {
                    "type" : "pinyin",
                    "first_letter" : "none",
                    "padding_char" : " "
                }
            }
        }
    }
}'

在type test下的_all字段创建mapping

curl -XPOST http://10.18.100.207:9200/app/test/_mapping -d'
{
    "_all": {
        "analyzer": "ik_pinyin_analyzer",
        "search_analyzer": "ik_pinyin_analyzer",
        "term_vector": "no",
        "store": "false"
    }
}'

修改index的最大fields数量

curl -XPUT 'http://10.18.100.206:9200/app/_settings' -d'
{
    "index.mapping.total_fields.limit": 200000
}'

各类报错解决:
一、root用户启动
报错信息:java.lang.RuntimeException: can not run elasticsearch as root
解决方法:设置一个非root用户,用于管理elastic
二、节点数不足:
1.报错信息:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
解决方法:

ulimit -Hn 查看硬限制
vim /etc/security/limits.conf

添加以下两行【elastic是用户名】:

    elastic soft nofile 65536
    elastic hard nofile 65536

重新登录检查是否生效。
2.报错信息:max number of threads [1024] for user [elastic] is too low, increase to at least [2048]
解决方法:
vim /etc/security/limits.d/xx-nproc.conf【文件名会有所不同,且节点数不一定为1024,大于需求值就不需要改】
修改:

        * soft nproc 1024 -> * soft nproc 2048

3.报错信息:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方法:

    vim /etc/sysctl.conf

添加:

    vm.max_map_count=655360

检查:

      sysctl -p

三、使用公网IP无法访问/无法绑定路由
原因:防火墙未开放端口
解决方法【此处举例为CentOS7】:
添加9200端口开放传输:

firewall-cmd --zone=public --add-port=9200/tcp --permanent

添加9200端口开放集群通讯:

firewall-cmd --zone=public --add-port=9300/tcp --permanent

重启防火墙:

firewall-cmd --reload
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PatrickYung

你的打赏是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值