elasticsearch安装-5.4.2

ElasticSearch安装文档

引言

此文档是基于ElasticSearch5.4.2版本的部署文档,旨在说明ElasticSearch的安装部署步骤,作为后续ElasticSearch的安装部署参考。

ElasticSearch介绍


ElasticSearch是业界最流行的开源搜索引擎,基于apache-luncene的开源实现,同类比和apache-solr有很多相似处,但在部署、可扩展性和功能方面有差异。

ElasticSearch和solr在使用场景也有不一样的针对性,ElasticSearch基于json格式的数据配置,而solr基于schema格式的配置,在使用场景上,ElasticSearch更偏向于查询、过滤和分组分析统计方面,他支持range、关联的查询;而solr更加偏向于文本的全文检索;对于高级检索的支持并没有那么强。

部署准备


ElasticSearch安装,包括插件的支持需要以下的依赖:

  • elasticsearch.tar
  • node.js
  • jdk8
  • ecs

elasticSearch部署步骤


  1. 保证java环境安装成功
  2. 如果是多节点安装,保证ntpd时间同步服务安装成功 ntpd service status
  3. 解压到安装的目录 tar -zvxf elasticsearch-5.4.2.tar.gz

配置信息


  • 基本配置

      cluster.name: elasticsearch        #集群名称(集群名称需配置成一致)
      node.name: es-node-01              #节点名称
      node.master: true                    #是否是master节点(集群环境下配置)
      node.data: true                       #是否是数据节点
      path.data: /usr/local/es-5.4/data  #数据文件存储路径
      path.logs: /usr/local/es-5.4/logs  #日志文件存储路径
      network.host: 192.168.1.23         #对外暴露的IP地址
      http.port: 9200                    #es的http访问端口
      http.cors.enabled: true            #http跨域访问设置
      http.cors.allow-orign: "*"         #请求访问限制,*为不限制
      discovery.zen.ping.unicast.hosts: ["192.168.11.11", "192.168.11.12"]   #集群节点列表配置
      discovery.zen.ping_timeout: 120s   #集群节点ping值超时时间配置
    
  • 系统调优

ElasticSearch在使用上需要对系统参数进行调优处理,以满足es的日常应用

  1. 配置系统最大打开文件描述符

     vim /etc/sysctl.conf
     设置 vm.max_map_count = 262144
     设置完成后执行以下命令生效
     sysctl -p        
    
  2. 配置进程最大打开文件描述符
    
     vim /etc/security/limits.conf
     在文件最后添加:
     * soft nofile 65536
     * hard nofile 65536
    

插件安装


ElasticSearch支持很多插件安装,包括kibana监控、ElasticSearch-sql支持、ElasticSearch-head插件,此处,仅介绍ElasticSearch-head插件安装;head插件是一个基于node.js的ElasticSearch的UI管理界面,基于此插件,我们可以在head界面中:

  1. 查看、监控集群、节点的信息和状态,以及健康值等内容
  2. 在管理界面上对数据进行浏览、查询等操作
  3. 查看数据分片情况,以及索引情况
  4. 提供基本查询和复合查询功能对数据进行查询

es-head插件安装


  1. 下载head插件,解压,移动到自定义目录

wget https://github.com/mobz/elasticsearch-head/archive/master.zip
unzip elasticsearch-head-master.zip
mv elasticsearch-head-master.zip /home/ntc/code/elasticsearch-head

  1. 安装node

wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz
tar -zxvf node-v4.4.7-linux-x64.tar.gz

  1. 配置node的环境变量

vim /etc/profile
export NODE_HOME=/home/elastic/node-v4.4.7
export PATH= N O D E H O M E / B I N : NODE_HOME/BIN: NODEHOME/BIN:PATH
source /etc/profile

  1. 测试下node是否安装成功

echo $NODE_HOME node -v

  1. 安装grunt

cd /home/ntc/code/elasticsearch-head
npm install -g grunt-cli
npm install PS:有可能存在install失败的情况,可以尝试:
npm install phantomjs-prebuilt@2.1.14 --ignore-scripts

  1. 修改head源码

vi /home/ntc/code/elasticsearch-head/Gruntfile.js

connect: {
    server: {
        options: {
            port: 9100,
            hostname: '*',
            base: '.',
            keepalive: true
        }
    }
  1. 修改默认链接地址

vi /home/ntc/code/elasticsearch-head/_site/app.js

     this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200"; 

修改成

    this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.40.133:9200";

8.运行grunt-server,启动head插件

cd /home/ntc/code/elasticsearch-head //先跳转到head目录下
grunt server //若想在后台运行,结尾追加“&”

es-java api 调用


  • maven依赖

       <!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-core -->
      <dependency>
          <groupId>org.apache.lucene</groupId>
          <artifactId>lucene-core</artifactId>
          <version>6.6.0</version>
      </dependency>
      <!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-highlighter -->
      <dependency>
          <groupId>org.apache.lucene</groupId>
          <artifactId>lucene-highlighter</artifactId>
          <version>6.6.0</version>
      </dependency>
      <!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-queries -->
      <dependency>
          <groupId>org.apache.lucene</groupId>
          <artifactId>lucene-queries</artifactId>
          <version>6.6.0</version>
      </dependency>
    
  • java代码

          Settings settings = Settings.builder().put("client.transport.sniff", true).
              put("client.transport.ignore_cluster_name", false).put("cluster.name","es-cluster").build();
          TransportClient client = new PreBuiltTransportClient(settings).
          addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.11.11"),9300))
          .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.11.12"),9300));
          Map<String, Object> map = new HashMap<String, Object>();
          Random ran = new Random();
          map.put("nickname", "测试" + ran.nextInt(100));
          map.put("sex", ran.nextInt(100));
          map.put("age", ran.nextInt(100));
          map.put("mobile", "15014243232");
          IndexResponse response = client.prepareIndex("users", "user").setSource(map).get();
          System.out.println(response);
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值