elasticSearch5.x单实例和集群安装

单实例安装

下载地址:https://www.elastic.co/downloads/elasticsearch

    1.解压
    2. ./bin/elasticsearch 

可能会出现的问题:

1.max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

这个问题是无法创建本地文件,用户最大可创建文件数太小
解决:只需要修改创建文件的最大数目为65536就行了
vim /etc/security/limits.conf 

    root soft nofile 65536
    root hard nofile 65536
    * soft nofile 65536
    * hard nofile 65536

保存、退出、重新登录才可生效

soft nproc:可打开的文件描述符的最大数(软限制)
hard nproc:可打开的文件描述符的最大数(硬限制)
soft nofile:单个用户可用的最大进程数量(软限制)
hard nofile:单个用户可用的最大进程数量(硬限制)

2.max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

虚拟内存太小

sudo vim /etc/sysctl.conf 

    vm.max_map_count=262144

执行命令:
sudo sysctl -p

3.Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error=’Cannot allocate memory’ (errno=12)

 jvm需要分配的内存太大
 vim config/jvm.options 

-Xms2g
-Xmx2g
该为:
-Xms100m
-Xmx100m

4.max number of threads [1024] for user [es] likely too low, increase to at least [2048]

原因:无法创建本地线程问题,用户最大可创建线程数太小 
解决方案:切换到root用户,进入limits.d目录下,修改90-nproc.conf 配置文件
成功启动:
    vi /etc/security/limits.d/90-nproc.conf

找到如下内容:

* soft nproc 1024

修改为

* soft nproc 2048

配置文件解析:

Ø Cluster

    cluster.name
    集群名称,如果有多个集群,那么每个集群名就得是唯一的。

Ø Node

    1.node.data

    集群中的节点名称,比如前面说的828384三台机子每台都有一个名称,你也可以不设这个名称,默认的集群启动时会自己给每个节点初始化一个名称,但强烈建议这里还是由自己设置比较好。

    2.node.master

    该节点是否是master,true表示是的,false表示否,默认是true.

    3.node.data

    该节点是否存储数据,默认true表示是的。

    说明:对于上面两个节点,如果你希望该节点只是一个master,但不存储数据,则应当设置为:

    node.master: true

    node.data: false

    如果你希望该节点只存储数据,但不是一个master,则应该设置:

    node.master: false

    node.data: true

    如果你既不希望该节点为一个master,也不想它存储数据,则应该设置为:

    node.master: false

    node.data: false

    这种情况一般是你希望该节点仅仅是作为一个搜索负载均衡器,比如从各节点得到数据,聚合结果等。

Ø Index

    1. index.number_of_shards

    设置一个索引被分成的分片数,默认是5

    2.index.number_of_replicas

    设置一个索引有几个拷贝,默认为1。拷贝指的是其它节点对该节点的拷贝,比如在84上创建了一个索引,那么这个拷贝会存在于8283上,这是一个分布式的属性。

    拷贝越多,则搜索性能越佳,而分片越多则索引创建性能越好。

Ø Paths

    1.path.conf

    配置文件目录,默认为es根目录下的config目录。

    2.path.data

    索引存储路径,默认为es根目录下的data目录,可以有多个存储路径,各存储路径用逗号隔开,如:path.data: /path/to/data1,/path/to/data2

    3.path.work

    临时文件存放目录,默认为es根目录下的work目录

    4.path.logs

    日志文件存放目录,默认为es根目录下的logs目录。

    5.path.plugins

    插件的安装目录,默认为es根目录下的plugins目录。

Ø Network And HTTP

    1.network.bind_host

    Es节点绑定的地址,为一个ip地址(IPv4或IPv6)

    2.network.publish_host

    Es发布的地址,其它节点通过这个地址与其进行通信

    3.network.host

    该节点网络地址,也是一个ip地址,如果设置了该属性,则network.bind_host与network.publish_host都不用再设置了,比如我这里三台机子设置的值分别为:

    118.200.108.82118.200.108.83118.200.108.844.transport.tcp.port

    节点之间通信的端口,默认为9300,在我们应用程序中调用es的方法提交索引创建时也是使用的这个端口。

    5.http.port

    http访问端口,默认是9200,通过这个端口,调用方可以索引查询请求。

    6.http.max_content_length

    设置内容的最大容量,默认是100MB

    7.http.enabled

    是否禁止http访问,默认是false。

Ø Discovery

    1 discovery.zen.minimum_master_nodes

    设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)。

    2 discovery.zen.ping.timeout

    设置集群中自动发现其它节点时ping连接超时时间,默认为3秒,对于比较差的网络环境可以高点的值来防止自动发现时出错

    3 discovery.zen.ping.multicast.enabled

    设置是否打开多播来发现来发现节点,默认是true

    4 discovery.zen.ping.unicast.hosts

这里写图片描述

head插件安装:

elasticsearch-head是一个界面化的集群操作和管理工具,可以对集群进行傻瓜式操作。你可以通过插件把它集成到es(首选方式),也可以安装成一个独立webapp
https://github.com/mobz/elasticsearch-head

es-head主要有三个方面的操作:

    1.显示集群的拓扑,并且能够执行索引和节点级别操作
    2.搜索接口能够查询集群中原始json或表格格式的检索数据
    3.能够快速访问并显示集群的状态
    4.有一个输入窗口,允许任意调用RESTful API。这个接口包含几个选项,可以组合在一起以产生有趣的结果; 
        A.请求方法(getputpostdelete),查询json数据,节点和路径
        B.支持JSON验证器
        C.支持重复请求计时器
        D.支持使用javascript表达式变换结果
        F.收集结果的能力随着时间的推移(使用定时器),或比较的结果
        E.能力图表转换后的结果在一个简单的条形图(包括时间序列)
    node.js安装:
        https://nodejs.org/zh-cn/download/

        export NODE_HOM=/home/hadoop/app/node-v8.9.3-linux-x64/
        export PATH=$PATH:$NODE_HOME/bin

        检验:
        node -v

        npm 包管理工具

    安装head:
        解压
        cd 主目录
        npm install //安装需要的包

        npm run start //启动

    es和head是两个进程,通信需要跨域
    修改:es的配置文件:elasticsearch.yml
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    bin/elasticsearch -d 后台启动

访问esweb届界面: http://ip:9200/
访问headweb界面: http://ip:9100/

这里写图片描述

这里写图片描述

集群安装:

集群安装:
    master:
    vim config/elasticsearch.yml

        #需要与head连接设置
        http.cors.enabled: true
        http.cors.allow-origin: "*"

        #集群的名字,节点的名字,是否为master节点
        cluster.name: ESCluster
        node.name: master
        node.master: true
        #绑定的ip,master的所在的ip
        network.host: 0.0.0.0
        discovery.zen.ping.unicast.hosts: ["0.0.0.0"]


    slave:
        cluster.name: ESCluster
        node.name: slave1
        node.master: false

        network.host: 0.0.0.0
        discovery.zen.ping.unicast.hosts: ["node2"]

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值