elaticsearch在阿里云服务器上的安装及常见错误!

一、ElasticSearch

1.1准备工作
安装Centos7、建议内存2G以上、安装java1.8环境

1.2ElasticSerach单机安装
后续会涉及到集群的部署,但这里先不考虑,所以修改ip地址我就省略先了。
1>先上传到服务器上面,最好不要直接放在根目录下面,创建一个文件夹最好,我是创建了一个opt的目录,然后直接上传;
2>上传以后,先看看文件是否有权限,如果没有,则用root用户授权
Chmod 777 -R elasticsearch-6.3.1
3>赋权后解压 tar – zxvf elasticsearch-6.3.1.tar.gz
4>然后配置elasticSearch.yml、jvm.Opitons
jvm.Opitons中配置es能够使用jvm内存大小
(这上面默认的是4G,下面默认的是2G,但是在测试的时候或者说公司的需求量没那么大的时候可以不用设置那么大,我设置的是512m)
这上面默认的是4G,下面默认的是2G,但是在测试的时候或者说公司的需求量没那么大的时候可以不用设置那么大,我设置的是512melasticSearch.yml中配置es的host地址(配成本机地址,允许访问)
在这里插入图片描述

这里是重点了,我昨天配的时候像这样正常配置一直会报出一个

org.elasticsearch.bootstrap.StartupException:BindTransportException[Failed to bind to [9300]]; nested: BindException[无法指定被请求的地址];

     atorg.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:127)~[elasticsearch-5.4.1.jar:5.4.1]

     atorg.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:114)~[elasticsearch-5.4.1.jar:5.4.1]

     atorg.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:67)~[elasticsearch-5.4.1.jar:5.4.1]

     atorg.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122)~[elasticsearch-5.4.1.jar:5.4.1]

     atorg.elasticsearch.cli.Command.main(Command.java:88)~[elasticsearch-5.4.1.jar:5.4.1]

     atorg.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)~[elasticsearch-5.4.1.jar:5.4.1]

     atorg.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)~[elasticsearch-5.4.1.jar:5.4.1]

Caused by:org.elasticsearch.transport.BindTransportException: Failed to bind to [9300]

     atorg.elasticsearch.transport.TcpTransport.bindToPort(TcpTransport.java:769)~[elasticsearch-5.4.1.jar:5.4.1]

     atorg.elasticsearch.transport.TcpTransport.bindServer(TcpTransport.java:734)~[elasticsearch-5.4.1.jar:5.4.1]

     atorg.elasticsearch.transport.netty4.Netty4Transport.doStart(Netty4Transport.java:173)~[?:?]

     atorg.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:69)~[elasticsearch-5.4.1.jar:5.4.1]

     atorg.elasticsearch.transport.TransportService.doStart(TransportService.java:196)~[elasticsearch-5.4.1.jar:5.4.1]

     atorg.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:69)~[elasticsearch-5.4.1.jar:5.4.1]

     atorg.elasticsearch.node.Node.start(Node.java:686) ~[elasticsearch-5.4.1.jar:5.4.1]

     atorg.elasticsearch.bootstrap.Bootstrap.start(Bootstrap.java:277)~[elasticsearch-5.4.1.jar:5.4.1]

     atorg.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:359)~[elasticsearch-5.4.1.jar:5.4.1]

     atorg.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:123)~[elasticsearch-5.4.1.jar:5.4.1]

     ...6 more

Caused by: java.net.BindException: 无法指定被请求的地址

     atsun.nio.ch.Net.bind0(Native Method) ~[?:?]

     atsun.nio.ch.Net.bind(Net.java:433) ~[?:?]

     atsun.nio.ch.Net.bind(Net.java:425) ~[?:?]

     atsun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)~[?:?]

     atio.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:128)~[?:?]

     atio.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:554)~[?:?]

     atio.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1258)~[?:?]

     atio.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:501)~[?:?]

     atio.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:486)~[?:?]

     atio.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:980)~[?:?]

     atio.netty.channel.AbstractChannel.bind(AbstractChannel.java:250) ~[?:?]

     atio.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:365) ~[?:?]

     atio.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)~[?:?]

     atio.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:403)~[?:?]

     atio.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:462) ~[?:?]

     atio.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)~[?:?]

     atjava.lang.Thread.run(Thread.java:748) [?:1.8.0_161]

的错误,百度了下只是说需要我把把文件中的这两个地方的IP地址改成ES所在服务器的IP地址即可。在这里插入图片描述但是其实这还是不行,昨天问了一下朋友怎么搭建,终于把它给解决了,如果出现像我这样的问题可以这样修改

在这里插入图片描述network.host: 0.0.0.0(这里这样填)
network.publish_host: xxxxxxx(这里填你对外开放的ip地址)

http.port: 9200(这里前面的#去掉,这是外面访问的ip端口)
transport.tcp.port: 9300(这里我不太确定需要不,但是配上总没错)

discovery.zen.ping.unicast.hosts: [“xxxx(这里填写你上面的对外开放ip):9300”](也可以不用写,按照原来的就好。当时可能配错了,但是能启动我就没在管它了,如果有知道的可以告知一下!)

5>[root@localhost elasticserach]# cd elasticsearch-6.3.1/bin
[root@localhost bin]# ./elasticsearch
如果直接启动,会报错
在这里插入图片描述说启动不能用root用户启动,我们需要改一个非root的用户;
6>adduser xx(自己取一个名字,我的叫es 简单省事),你可以设置密码,也可以授权给某个用户只能干什么,这一般的正规公司都会做的,我由于是小公司,所以我直接全部赋权了,这步应该可以省略了。。。。。
7>再次用es用户来启动,还是出错了:会报错(linux的默认线程数、最大文件数、最大内存数都不够)
在这里插入图片描述8>修改linux的配置(配合es的启动需求)
两处修改
A修改linux的limits配置文件,设置内存线程和文件
在这里插入图片描述nofile - 打开文件的最大数目
noproc - 进程的最大数目
soft 指的是当前系统生效的设置值
hard 表明系统中所能设定的最大值

配置一定要在root用户的权限下配置,要不然是没有权限的

B修改linux的sysctl配置文件,配置系统使用内存
在这里插入图片描述vm.max_map_count=655360,因此缺省配置下,单个jvm能开启的最大线程数为其一半
file-max是设置 系统所有进程一共可以打开的文件数量

9>设置完这些,我们就可以用es用户来启动下了,
在这里插入图片描述

在这里插入图片描述然后查看是否成功, curlXXX(配置的对外开放ip)
在这里插入图片描述
这个样子就说明成功了,在浏览器上面输入后面的ip地址加端口
在这里插入图片描述也是如此,那么恭喜你,第一步的单机安装已经解决了!

第一次写这个很多头绪没有搞清楚,大家多多包涵,这为了给大家当个错误的表率也希望遇到这些问题的同学能够有所帮助!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值