一、环境准备

1>准备三台centos7.2(本次实验环境),

192.168.105.55

192.168.105.56

192.168.105.57

并按装JDK1.8

创建用户和组 elastic

groupadd   elastic

adduser -g elastic -d /home/elastic   elastic

2>必须要的系统配置:

/etc/security/limits.conf

*  -  nofile  65535

/etc/sysctl.conf

vm.max_map_count = 262144

要执行sysctl -p 持久化配置,不然切换用户后,可能没有生效

二、安装配置

1、上传elasticsearch-6.8.1.tar.gz包只三台服务器/home/elastic目录下,并创建目录/elastic/data 和/elastic/log

2、解压安装包 tar -xzvf elasticsearch-6.8.1.tar.gz,并将文件夹重命名为elasticsearch

3、修改配置文件elasticsearch/config/elasticsearch.yml

三台分别的node-1,node-2,node-3;

network.host分别为三台机器的ip

cluster.name: appEsCls
node.name: node-1
path.data: /home/elastic/elastic/data
path.logs: /home/elastic/elastic/log
network.host: 192.168.105.55
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.105.55", "192.168.105.56","192.168.105.57"]
gateway.recover_after_nodes: 3

然后启动集群

三台机器分别执行elasticsearch/bin/elasticsearch -d (-d表示后台执行,可以不用)

启动成功后查看日志: /home/elastic/log/appEsCls.log

分别有[node-X] started

然后查看集群状态及节点状态(可以分别查看各个节点的情况)

curl  http://192.168.105.55:9200/_cat/health?v

curl  http:/192.168.105.57:9200/_cat/nodes?v

master下面的*表示该节点为master节点

三、x-pack设置elasticsearch安全访问

1.任意一台服务器上执行命令

./elasticsearch-certgen
#####################################
Please enter the desired output file [certificate-bundle.zip]: cert.zip (压缩包名称)
Enter instance name: appEsCls(实例名)
Enter name for directories and files [p4mES]: elasticsearch(文件夹名)
Enter IP Addresses for instance (comma-separated if more than one) []: 192.168.105.55,192.168.105.56,192.168.105.57(实例ip,多个ip用逗号隔开)
Enter DNS names for instance (comma-separated if more than one) []: node-1,node-2,node-3(节点名,多个节点用逗号隔开)
Would you like to specify another instance? Press 'y' to continue entering instance information: (到达这一步,不需要按y重新设置,按空格键就完成了)
Certificates written to /home/elastic/elasticsearch/bin/cert.zip(这个是生成的文件存放地址,不用填写)

2. 将压缩文件cert.zip分别拷贝纸三台机器的 /home/elastic/elasticsearch/config文件夹下并解压,
生成ca和elasticsearch并修改配置文件elasticsearch.yml
增加如下配置:
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.ssl.key: elasticsearch/elasticsearch.key
xpack.ssl.certificate: elasticsearch/elasticsearch.crt
xpack.ssl.certificate_authorities: ca/ca.crt

3. 重启三台节点

执行elasticsearch/bin/elasticsearch-setup-passwords interactive

自定义设置elastic、kibana....等所有工具的登录密码 最高级账号elastic 可以登录所有组件

然后再重启三台节点

这时,执行curl命令则需要验证密码了

curl  http://192.168.105.57:9200?pretty

curl -u elastic:123456 http://192.168.105.57:9200

四、Java客户端编写

1、普通客户端程序

pom.xml:

<dependency>   <groupId>org.elasticsearch</groupId>   <artifactId>elasticsearch</artifactId>   <version>${elasticsearch.version}</version></dependency><dependency>   <groupId>org.elasticsearch.client</groupId>   <artifactId>transport</artifactId>   <version>${elasticsearch.version}</version></dependency>

<dependency>   <groupId>org.elasticsearch.plugin</groupId>   <artifactId>transport-netty4-client</artifactId>   <version>${elasticsearch.version}</version></dependency>

code:
@Configurationpublic class ElasticSearchClientConfig {

    @Value("${elasticsearch.cluster-nodes}")    private String clusterNodes;

    @Value("${elasticsearch.cluster-name}")    private String clusterName;

    @Bean    public Client client() {        Settings settings = Settings.builder().put("cluster.name", clusterName)                .put("client.transport.sniff", true).build();

        TransportClient client = new PreBuiltTransportClient(settings);        try {            if (clusterNodes != null && !"".equals(clusterNodes)) {                for (String node : clusterNodes.split(",")) {                    String[] nodeInfo = node.split(":");                    client.addTransportAddress(new TransportAddress(InetAddress.getByName(nodeInfo[0]), Integer.parseInt(nodeInfo[1])));                }            }        } catch (UnknownHostException e) {        }

        return client;    }}

2、带X-PACK授权控制的客户端编写

pom.xml:

<dependency>   <groupId>org.elasticsearch</groupId>   <artifactId>elasticsearch</artifactId>   <version>${elasticsearch.version}</version></dependency><dependency>   <groupId>org.elasticsearch.client</groupId>   <artifactId>x-pack-transport</artifactId>   <version>${elasticsearch.version}</version></dependency>

<dependency>   <groupId>org.elasticsearch.plugin</groupId>   <artifactId>transport-netty4-client</artifactId>   <version>${elasticsearch.version}</version></dependency>
注意:version 为6.8.1的x-pack-transport的jar可能无法下载,需要添加repository:
https://artifacts.elastic.co/maven
<profiles>   <profile>      <id>dev</id>      <repositories>         <repository>  <!-- 增加elastic仓库 -->            <id>elasticsearch-releases</id>            <url>https://artifacts.elastic.co/maven</url>            <releases>               <enabled>true</enabled>            </releases>            <snapshots>               <enabled>false</enabled>            </snapshots>         </repository>      </repositories>      <pluginRepositories>      </pluginRepositories>   </profile></profiles>
code:
@Configurationpublic class ElasticSearchClientConfig{
    @Value("${elasticsearch.cluster-nodes}")    private String clusterNodes;

    @Value("${elasticsearch.cluster-name}")    private String clusterName;    @Value("${elasticsearch.user-password}")    private String userPwd;

    @Bean    public Client client() {        Settings settings = Settings.builder().put("cluster.name", clusterName)                .put("xpack.security.user", userPwd)                .put("xpack.ssl.key", "E:/elasticsearch/elasticsearch.key")                .put("xpack.ssl.certificate", "E:/elasticsearch/elasticsearch.crt")                .put("xpack.ssl.certificate_authorities", "E:/ca/ca.crt")                .put("xpack.security.transport.ssl.enabled", "true").build();
        TransportClient client = new PreBuiltXPackTransportClient(settings);        try {            if (clusterNodes != null && !"".equals(clusterNodes)) {                for (String node : clusterNodes.split(",")) {                    String[] nodeInfo = node.split(":");                    client.addTransportAddress(new TransportAddress(InetAddress.getByName(nodeInfo[0]), Integer.parseInt(nodeInfo[1])));                }            }        } catch (UnknownHostException e) {        }

        return client;    }}


转载于:https://www.cnblogs.com/fred925/p/11181414.html

ElasticSearch6.8.1集群搭建及Java客户端编写相关推荐

  1. Redis集群搭建及java连接redis

    Redis集群搭建及java连接redis Redis集群分为三种: 1.主从关系模式2.Sentinel哨兵关系模式3.Cluster去中心化模式 1.主从关系模式 1.1.什么是主从模式? (1) ...

  2. ElasticSearch集群安装及Java客户端使用

    ElasticSearch集群安装及Java客户端使用 1.传统模式安装 1.1 ElasticSearch安装 下载Es安装包 ElasticSearch的官方地址:https://www.elas ...

  3. *福音*阿里云redis5.0.*集群搭建及java代码测试详细(终于不用ruby了)

    redis 5.0版本 集群搭建不需要我们安装ruby就可以搭建成功,并且redis给我们提供了快速搭建脚本,执行utils/create-cluster/ 目录下的create-cluster脚本 ...

  4. Redis 多服务器集群搭建

    Redis 多服务器集群搭建 近期,想到之前使用的Redis集群测试使用的是单服务器上的伪集群,重温<Redis深度历险-核心原理与应用实践>的案例,觉得还是搭建一下多服务器集群来玩一玩会 ...

  5. Linux环境快速搭建elasticsearch6.5.4集群和Head插件

    今天来一起实战Linux环境下搭建elasticsearch6.5.4集群和Head插件: 环境信息 操作系统:Ubuntu 16.04.5 LTS JDK:1.8.0_191 elasticsear ...

  6. java kafka 集群消费_kafka集群搭建和使用Java写kafka生产者消费者

    转自:http://chengjianxiaoxue.iteye.com/blog/2190488 1 kafka集群搭建 1.zookeeper集群 搭建在110, 111,112 2.kafka使 ...

  7. docker下,一行命令搭建elasticsearch6.5.0集群(带head插件和ik分词器)

    docker下,一行命令搭建elasticsearch6.5.0集群(带head插件和ik分词器) 2019年01月27日 21:06:12 博陵精骑 阅读数:794 标签: dockerelasti ...

  8. java集群_Kafka多节点分布式集群搭建实现过程详解_java

    上一篇分享了单节点伪分布式集群搭建方法,本篇来分享一下多节点分布式集群搭建方法.多节点分布式集群结构如下图所示: 为了方便查阅,本篇将和上一篇一样从零开始一步一步进行集群搭建. 一.安装Jdk 具体安 ...

  9. 使用Docker搭建Elasticsearch6.8.6集群及设置集群用户密码

    本文基于Docker镜像搭建Elasticsearch集群,集群搭建完成后设置集群用户密码,主要包含以下内容: 修改系统参数 安装docker和docker-compose 编写yml配置文件 获取集 ...

  10. ES安装的详细步骤、ES的集群搭建以及ElasticSearch安装时可能出现的问题

    目录 什么是es? 正排索引和倒排索引 安装 ElasticSearch的简单步骤 环境需求 安装ES 下载 设置虚拟机内存 创建用户 安装 ES的目录结构及其作用 配置文件以及作用 修改配置文件el ...

最新文章

  1. 能在不同的深度学习框架之间转换模型?微软的MMdnn做到了
  2. linux touch 学习
  3. 【LeetCode】3月30日打卡-Day15
  4. printstream_Java PrintStream close()方法与示例
  5. opencv调节图片饱和度_OpenCV调整彩色图像的饱和度和亮度
  6. 黑马程序员—多线程,单线程
  7. python调用qt动态库_QT开发——动态库(.so文件)的生成与调用
  8. Python某地区二手房房价数据分析
  9. SPIR-V 研究:编译器基本原理(三) - Chomsky文法分类
  10. excel单个对象用poi导出,并设置每个sheet得最大行数防止报错
  11. linux 编译过程中acx_pthread.m4类错误解决办法
  12. 石子合并问题(no circle)
  13. python配置cgi_Python+Apache+CGI完全配置
  14. 一 ROS基础教程
  15. 举个栗子!Tableau 技巧(175):通过 URL 传参实现不同工作簿的跳转
  16. 计算机网络参数配置,计算机网络实验:实验一 主机系统网络参数配置与测试.doc...
  17. ws心跳检测完整代码,for websocket
  18. unity导致android虚拟键,unity隐藏android机的虚拟按钮
  19. 神兔侠儿童安全预警平台正式发布,互联网将为保护儿童安全提供新思路
  20. java 发送会议邮件模板_使用javamail发送会议邀请

热门文章

  1. 反击ARP欺骗 我和网络执法官的战斗
  2. php 清除浮动,清除浮动的几种方法
  3. 高并发系统的限流算法
  4. VS2013中安装配置和使用Boost库
  5. Git for windows 配置
  6. C++(多态实现原理)函数重写,重载,重定义
  7. mybatis报错解决
  8. mac的rubywoo怎么读_macrubywoo是几号
  9. wpf 设置滑动条不能划到头_剪力墙结构设计中遇到的纠结问题8条归纳
  10. 最大熵图像复原方法原理(附完整代码)