ElasticSearch6.8.1集群搭建及Java客户端编写
一、环境准备
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客户端编写相关推荐
- Redis集群搭建及java连接redis
Redis集群搭建及java连接redis Redis集群分为三种: 1.主从关系模式2.Sentinel哨兵关系模式3.Cluster去中心化模式 1.主从关系模式 1.1.什么是主从模式? (1) ...
- ElasticSearch集群安装及Java客户端使用
ElasticSearch集群安装及Java客户端使用 1.传统模式安装 1.1 ElasticSearch安装 下载Es安装包 ElasticSearch的官方地址:https://www.elas ...
- *福音*阿里云redis5.0.*集群搭建及java代码测试详细(终于不用ruby了)
redis 5.0版本 集群搭建不需要我们安装ruby就可以搭建成功,并且redis给我们提供了快速搭建脚本,执行utils/create-cluster/ 目录下的create-cluster脚本 ...
- Redis 多服务器集群搭建
Redis 多服务器集群搭建 近期,想到之前使用的Redis集群测试使用的是单服务器上的伪集群,重温<Redis深度历险-核心原理与应用实践>的案例,觉得还是搭建一下多服务器集群来玩一玩会 ...
- Linux环境快速搭建elasticsearch6.5.4集群和Head插件
今天来一起实战Linux环境下搭建elasticsearch6.5.4集群和Head插件: 环境信息 操作系统:Ubuntu 16.04.5 LTS JDK:1.8.0_191 elasticsear ...
- java kafka 集群消费_kafka集群搭建和使用Java写kafka生产者消费者
转自:http://chengjianxiaoxue.iteye.com/blog/2190488 1 kafka集群搭建 1.zookeeper集群 搭建在110, 111,112 2.kafka使 ...
- docker下,一行命令搭建elasticsearch6.5.0集群(带head插件和ik分词器)
docker下,一行命令搭建elasticsearch6.5.0集群(带head插件和ik分词器) 2019年01月27日 21:06:12 博陵精骑 阅读数:794 标签: dockerelasti ...
- java集群_Kafka多节点分布式集群搭建实现过程详解_java
上一篇分享了单节点伪分布式集群搭建方法,本篇来分享一下多节点分布式集群搭建方法.多节点分布式集群结构如下图所示: 为了方便查阅,本篇将和上一篇一样从零开始一步一步进行集群搭建. 一.安装Jdk 具体安 ...
- 使用Docker搭建Elasticsearch6.8.6集群及设置集群用户密码
本文基于Docker镜像搭建Elasticsearch集群,集群搭建完成后设置集群用户密码,主要包含以下内容: 修改系统参数 安装docker和docker-compose 编写yml配置文件 获取集 ...
- ES安装的详细步骤、ES的集群搭建以及ElasticSearch安装时可能出现的问题
目录 什么是es? 正排索引和倒排索引 安装 ElasticSearch的简单步骤 环境需求 安装ES 下载 设置虚拟机内存 创建用户 安装 ES的目录结构及其作用 配置文件以及作用 修改配置文件el ...
最新文章
- 能在不同的深度学习框架之间转换模型?微软的MMdnn做到了
- linux touch 学习
- 【LeetCode】3月30日打卡-Day15
- printstream_Java PrintStream close()方法与示例
- opencv调节图片饱和度_OpenCV调整彩色图像的饱和度和亮度
- 黑马程序员—多线程,单线程
- python调用qt动态库_QT开发——动态库(.so文件)的生成与调用
- Python某地区二手房房价数据分析
- SPIR-V 研究:编译器基本原理(三) - Chomsky文法分类
- excel单个对象用poi导出,并设置每个sheet得最大行数防止报错
- linux 编译过程中acx_pthread.m4类错误解决办法
- 石子合并问题(no circle)
- python配置cgi_Python+Apache+CGI完全配置
- 一 ROS基础教程
- 举个栗子!Tableau 技巧(175):通过 URL 传参实现不同工作簿的跳转
- 计算机网络参数配置,计算机网络实验:实验一 主机系统网络参数配置与测试.doc...
- ws心跳检测完整代码,for websocket
- unity导致android虚拟键,unity隐藏android机的虚拟按钮
- 神兔侠儿童安全预警平台正式发布,互联网将为保护儿童安全提供新思路
- java 发送会议邮件模板_使用javamail发送会议邀请