CentOS7.3安装Elasticsearch(es)安装记录

开场白:  es 可以 搭建 单点, 也可以搭建集群,  因为没看到谁 说明, 给人的感觉单点 不可以. 实际上是可以的, 单点安装head同样可以

注:新版es 需要jdk1.8环境,我的jdk使用的 sun的jdk,卸载了centos7上自带的 open jdk

项目搜索服务为了提升搜索服务体验,考虑引入搜索引擎,考虑范围在sorl和es,经过对比,es的性能和稳定性都已经得到了证实,相对sorl来说,简单些。

下面就是本次预研搭建测试平台上的es步骤:

1. 首先要有个linux环境

2. 安装es,当前最新版本为     Version: 6.4.1

3. es下载地址:https://www.elastic.co/cn/downloads/elasticsearch

4. es下载完成后,使用 xshell 工具的 rz命令上传到服务器

5. 安装前提:es支持用户输入的脚本执行,所以 es限制了在linux上的root用户执行,不能再root下启动es(需配置)

所以,使用普通用户启动

(注:因为安全考虑,避免出现不必要的问题,所以,建议使用普通用户)

root用户启动时报错:

[WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]

org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

6. 解压文件: tar  -xvzf filename.tr.gz

7. 启动es:  切换到 es  /bin/目录下

   后台启动:    ./elasticsearch -d 

   直接启动es: ./elasticsearch

8. 启动后遇到错误提示:Exception in thread "main" java.nio.file.AccessDeniedException: 意思是 非Root账户,当前账户没有权限,也就是说,想要用普通用户操作es,那么普通用户还要有操作权限。需要切换到root权限下,输入:chown -R use:use /etc/es/   ,然后在切换回到普通用户,再次启动

9. 还没完,测试es是否启动成功。输入: curl http://localhost:9200  有报错了,提示:curl couldn't connect to host 拒绝连接

问题原因一般有2个,1线ping以下网络通不通,2防火墙,我用的centos7.3 默认带的防火墙是firewall

先查看以下防火墙的状态:  systemctl status firewalld

 开放端口后,不立即生效,需要重启防火墙

# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop

 开放端口时 没有--permanent 参数,重启后失效

# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --list-all 
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;

我们可以将防火墙开放9200端口,也可以暂时关闭防火墙

请求成功时:

curl http://localhost:9200
{
  "name" : "WktvJa5",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "l0T4RI8ARtOm7N5wF3g_Pg",
  "version" : {
    "number" : "6.4.1",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "e36acdb",
    "build_date" : "2018-09-13T22:18:07.696808Z",
    "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"
}
 

es名词:

1.几个基本名词

index: es里的index相当于一个数据库。
type: 相当于数据库里的一个表。
id: 唯一,相当于主键。
node:节点是es实例,一台机器可以运行多个实例,但是同一台机器上的实例在配置文件中要确保http和tcp端口不同(下面有讲)。
cluster:代表一个集群,集群中有多个节点,其中有一个会被选为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。
shards:代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上,构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。
replicas:代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当个某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。

--------------------- 本文来自 弓弓 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/sinat_28224453/article/details/51134978?utm_source=copy

猜你喜欢

转载自blog.csdn.net/xiaoguaihu12/article/details/82897367