ElasticSearch集群环境搭建(通过docker搭建)

在/usr/local/elasticsearch目录下创建3个文件夹node01、node02、node03

将elasticsearch-6.5.4(这是之前普通搭建的elasticsearch)目录下的config目录下的elasticsearch.yml、jvm.options复制到node01目录中,进行修改配置

node01的elasticsearch.yml修改如下

# 设置客户端名字,集群通过这里的名字进行区分,必须相同
cluster.name: es-itcast-cluster
# 设置节点的名字 
node.name: node01
# 是否有资格为master节点 
node.master: true 
# 是否有资格为data节点
node.data: true 
# 如果不需要限制,设置为0.0.0.0
network.host: 192.168.142.128 
# 设置端口,这里是在一台机器用虚拟机搭建集群,必须是不同的端口,
http.port: 9200 
# 设置广播
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["192.168.142.128:9300","192.168.142.128:9301","192.168.142.128:9302"]
# 设置最小的master的数量
discovery.zen.minimum_master_nodes: 1 
# 下面两个为设置允许跨域
http.cors.enabled: true 
http.cors.allow-origin: "*"

node01的jvm.options修改如下 

#测试环境,不能太大否则不够用
-Xms128m
-Xmx128m

将这两个文件分别复制到node02、node03中

node02在node01的elasticsearch.yml的基础上修改如下,

node.name: node02 
node.master: false 
http.port: 9201 
transport.tcp.port: 9301

node03在node01的elasticsearch.yml的基础上修改如下

node.name: node03
node.master: false 
http.port: 9202
transport.tcp.port: 9302

数据的挂载目录:在node01、 node02、 node03的目录在分别创建data目录,并用下面代码修改目录的权限

# 原因,elasticSearch启动不能是root用户,这里修改权限让所有的都可以进行读写

chmod 777 data -R

创建容器,注意与刚刚的文件对应

docker create --name es-node01 --net host -v /usr/local/elasticsearch/node01/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /usr/local/elasticsearch/node01/jvm.options:/usr/share/elasticsearch/config/jvm.options -v /usr/local/elasticsearch/node01/data:/usr/share/elasticsearch/data elasticsearch:6.5.4 
docker create --name es-node02 --net host -v /usr/local/elasticsearch/node02/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /usr/local/elasticsearch/node02/jvm.options:/usr/share/elasticsearch/config/jvm.options -v /usr/local/elasticsearch/node02/data:/usr/share/elasticsearch/data elasticsearch:6.5.4 
docker create --name es-node03 --net host -v /usr/local/elasticsearch/node03/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /usr/local/elasticsearch/node03/jvm.options:/usr/share/elasticsearch/config/jvm.options -v /usr/local/elasticsearch/node03/data:/usr/share/elasticsearch/data elasticsearch:6.5.4 

启动

docker start es-node01 es-node02 es-node03

查看,这里三个节点都启动了

通过管理工具查看,这里的node01,按照预期的为master

创建分片为6,副本为2的索引,

集群状态的三种颜色:
green:所有主要分片和复制分片都可用
yellow:所有主要分片可用,但不是所有复制分片都可用
red:不是所有的主要分片都可用
 
查询集群状态API:GET http://192.168.142.128:9200/_cluster/health 

分片和副本

为了将数据添加到Elasticsearch,我们需要索引(index)——一个存储关联数据的地方。实际上,索引只是一个用
来指向一个或多个分片(shards)的“逻辑命名空间(logical namespace)”.

  • 一个分片(shard)是一个最小级别“工作单元(worker unit)”,它只是保存了索引中所有数据的一部分。
  • 我们需要知道是分片就是一个Lucene实例,并且它本身就是一个完整的搜索引擎。应用程序不会和它直接通信。
  • 分片可以是主分片(primary shard)或者是复制分片(replica shard)。
  • 索引中的每个文档属于一个单独的主分片,所以主分片的数量决定了索引最多能存储多少数据。
  • 复制分片只是主分片的一个副本,它可以防止硬件故障导致的数据丢失,同时可以提供读请求,比如搜索或者从别的shard取回文档。
  • 当索引创建完成的时候,主分片的数量就固定了,但是复制分片的数量可以随时调整。

 

 

搭建Docker ES8集群,可以按照以下步骤进行操作: 1. 首先,确保你已经安装了DockerDocker Compose。 2. 创建一个Docker Compose文件,例如docker-compose.yml,在该文件中定义你的ES集群配置。可以使用以下示例配置: ```yaml version: '3' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.0.1 environment: - discovery.type=single-node ports: - 9200:9200 volumes: - esdata:/usr/share/elasticsearch/data volumes: esdata: ``` 3. 在终端中,导航到包含docker-compose.yml文件的目录。 4. 运行以下命令以启动集群: ``` docker-compose up -d ``` 这将启动一个单节点的Elasticsearch集群,并将其绑定到本地的9200端口。 5. 要停止集群,可以运行以下命令: ``` docker-compose down ``` 这将停止容器,但保留Docker卷中的数据。 希望以上步骤可以帮助你成功搭建Docker ES8集群。如果有任何问题,请随时提问。123 #### 引用[.reference_title] - *1* *3* [Elasticsearch(4) 利用docker-compose搭建es8集群环境](https://blog.csdn.net/m0_66557301/article/details/123892665)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *2* [搭建Elasticsearch8.0集群](https://blog.csdn.net/qq_39677803/article/details/123279194)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值