elasticsearch安装,单机部署,远程访问以及使用Java连接踩过的坑

elasticsearch安装,单机部署,远程访问以及使用Java连接踩过的坑

elasticsearch安装很简单,但是选择版本一定要确定该版本必须又对应的spring-boot-starter-data-elasticsearch支持,查看是否对应的办法可以上网查对应表,也可以在maven中查看依赖dependencies中

在这里插入图片描述

一定要和选用的elasticsearch版本相同,否则会出现NoNodeAvailableException[None of the configured nodes are available的错误,导致无法往节点中写入数据。

安装直接下载安装包解压即可:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-x.x.x.zip
unzip elasticsearch-x.x.x.zip
cd elasticsearch-x.x.x/

然后就要进行配置了,因为我没有做集群所以直接单节点配置。

vim /config/elasticsearch.yml

我的yml配置添加了以下语句:

cluster.name: my-application //集群的名称 
node.name: "node1" //节点名称
node.data: true //允许该节点存储数据(默认开启)
network.host: 0.0.0.0 //绑定的ip地址,表示所有ip都可以访问es服务
transport.tcp.port: 9300 //如果使用的是阿里云记得打开端口权限,设置节点间交互的tcp端口,默认是9300 
transport.tcp.compress: true //传输过程中数据是否压缩
http.port: 9200 //设置对外服务的http端口,默认为9200  
http.cors.enabled:  true // 是否允许跨域请求。默认为false
http.cors.allow-origin:  "*" //定义允许哪些源请求。
discovery.type: single-node //使用单节点部署

每一条语句的意思,我用注释写在上面了。

然后需要创建一个非root权限的账号,需要在root用户下创建

# 以root用户来创建新的用户 , groupadd 添加一个用户组
[root@localhost home]# groupadd elk
# 添加一个用户,-g是在用户组下 -p是密码
[root@localhost home]# useradd elk -g elk -p elk
#赋予用户对文件夹的权限
chown -R elk:elk elasticsearch-x.x.x/
#切换到新用户
su elk

因为elasticsearch的服务不能用root用户启动,所以要切换到非root用户进行启动。

#切换到elk用户后,进入bin文件夹
cd /elasticsearch-x.x.x/bin
#后台启动elasticsearch服务
./elasticsearch -d

然后进行测试服务是否启动成功。可以使用浏览器去访问服务器的9200端口,也可以在服务器终端上进行

curl localhost:9200

得到响应为:

{
  "name" : "eblog",
  "cluster_name" : "eblog",
  "cluster_uuid" : "38abG1lfSoWKulj45277dA",
  "version" : {
    "number" : "6.4.3",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "fe40335",
    "build_date" : "2018-10-30T23:17:19.084789Z",
    "build_snapshot" : false,
    "lucene_version" : "7.4.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

则说明服务启动成功。再对java项目中application.yml文件进行连接配置。

spring:
  data:
    elasticsearch:
      cluster-name: my-application
      cluster-nodes: xxx.xxx.xxx.xxx:9300
      repositories:
        enabled: true

这里是用tcp连接去对服务器的ES服务插入数据,因此走9300端口,注意cluster-name的名字必须和ES服务中yml里cluster.name定义的名字相同,否则会报错说找不到节点。

至此连接上远程的ES服务,可以用POSTMAN进行测试,也可以直接使用java项目写入数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值