Administrator
发布于 2021-06-22 / 1,261 阅读

elasticsearch的基本概念及安装

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。

基本概念:

节点 Node、集群 Cluster 和分片 Shards:

ElasticSearch 是分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个实例。单个实例称为一个节点(node),一组节点构成一个集群(cluster)。分片是底层的工作单元,文档保存在分片内,分片又被分配到集群内的各个节点里,每个分片仅保存全部数据的一部分。

索引 Index、类型 Type 和文档 Document:

image.png

  • index索引

动词:相当于mysql的insert

名词:相当于mysql的db

  • Type类型
    Elasticsearch 7.x,不建议在请求中指定类型
    Elasticsearch 8.x,不再支持在请求中指定类型

在index中,可以定义一个或多个类型

类似于mysql的table,每一种类型的数据放在一起

  • Document文档

保存在某个index下,某种type的一个数据document,文档是json格式的,document就像是mysql中的某个table里面的内容。每一行对应的列叫属性

安装elastic search(docker)

docker pull elasticsearch:7.4.2

2,配置

# 将docker里的目录挂载到linux的/mydata目录中
# 修改/mydata就可以改掉docker里的
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data

# es可以被远程任何机器访问
echo "http.host: 0.0.0.0" >/mydata/elasticsearch/config/elasticsearch.yml

# 递归更改权限,es需要访问
chmod -R 777 /mydata/elasticsearch/

不能用root用户去启动elasticsearch

# 9200是用户交互端口 9300是集群心跳端口
# -e指定是以单节点运行
# -e指定占用的内存大小,生产时可以设置32G
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e  "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v  /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2 


# 设置开机启动elasticsearch
docker update elasticsearch --restart=always

4,测试

访问http://你的ip地址:9200,出现下图内容则为启动成功
image.png

安装Kibana(docker)

1,下载kibana(可视化检索)

elasticsearch和kibana的版本要一样

docker pull kibana:7.4.2

2,启动kibana

# kibana指定了了ES交互端口9200  # 5600为kibana主页端口
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.56.10:9200 -p 5601:5601 -d kibana:7.4.2


# 设置开机启动kibana
docker update kibana  --restart=always

3,测试

访问http://你的ip:5600,出现下图即为成功
image.png


评论