CentOS上安装Elasticsearch全攻略
<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>一、引言<ul class="second_class_ul"><li>1、Elasticsearch简介</li><li>2、Elasticsearch单机版与集群版的区别</li></ul></li><li>二、YUM安装 <ul class="second_class_ul"><li>1、环境准备</li><li>2、Elasticsearch安装</li><li>3、修改配置文件</li><li>4、启动Elasticsearch</li><li>5、访问测试 </li></ul></li><li>三、二进制启动<ul class="second_class_ul"><li>1、环境准备</li><li>2、修改配置文件</li><li>3、启动Elasticsearch</li><li>4、访问测试 </li></ul></li><li>四、Docker方式安装<ul class="second_class_ul"><li>1、环境准备</li><li>2、启动Elasticsearch</li><li>3、访问测试 </li></ul></li></ul></div><p class="maodian"></p><h2>一、引言</h2><p class="maodian"></p><h3>1、Elasticsearch简介</h3>
<p>Elasticsearch 是一个开源的分布式搜索和分析引擎,最初由 Elasticsearch N.V. 公司开发,并于 2010 年首次发布。它建立在 Apache Lucene 基础之上,提供了分布式的实时搜索和分析功能,被广泛应用于各种场景,包括日志分析、全文搜索、监控和可视化等。</p>
<p>以下是 Elasticsearch 的一些重要特点和功能:</p>
<p><strong>1. 分布式架构:</strong></p>
<ul><li>Elasticsearch 是一个分布式系统,数据可以水平扩展到多个节点上存储和处理。</li><li>数据被分割成多个分片(Shard),每个分片可以被复制到多个副本(Replica),以提高数据的可用性和容错性。</li></ul>
<p><strong>2. 实时搜索:</strong></p>
<ul><li>Elasticsearch 提供了快速的实时搜索功能,可以在大规模数据集上快速地进行搜索、过滤和排序。</li><li>支持复杂的搜索查询语法和全文搜索功能,可以满足各种搜索需求。</li></ul>
<p><strong>3. 多种数据类型:</strong></p>
<ul><li>Elasticsearch 支持多种数据类型的存储和索引,包括文本、数字、日期、地理位置等。</li><li>支持结构化数据和非结构化数据的索引和查询。</li></ul>
<p><strong>4. 强大的聚合和分析:</strong></p>
<ul><li>Elasticsearch 提供了丰富的聚合(Aggregation)功能,可以对数据进行统计、分组、计算等操作。</li><li>支持各种聚合函数和桶(Bucket)操作,可以生成复杂的数据分析报表和可视化。</li></ul>
<p><strong>5. RESTful API:</strong></p>
<ul><li>Elasticsearch 提供了基于 RESTful API 的接口,支持各种 HTTP 请求和 CRUD 操作。</li><li>开发者可以使用各种编程语言和工具与 Elasticsearch 进行交互,实现数据的索引、搜索和分析。</li></ul>
<p><strong>6. 可扩展性和灵活性:</strong></p>
<ul><li>Elasticsearch 提供了丰富的插件和扩展机制,可以根据需求定制和扩展功能。</li><li>支持与其他开源工具和系统集成,如 Logstash、Kibana、Beats 等,构建完整的日志分析和监控解决方案。</li></ul>
<p style="text-align:center"><img style="max-width:100%!important;height:auto!important;"alt="" height="609" src="https://zhuji.jb51.net/uploads/allimg/20250912/2-2509121213511B.png" width="1200" /></p>
<p class="maodian"></p><h3>2、Elasticsearch单机版与集群版的区别</h3>
<p><strong>1. 可扩展性:</strong></p>
<ul><li><strong>单机版:</strong>适用于小规模数据集和个人项目,只能在单个节点上运行,无法水平扩展。</li><li><strong>集群版:</strong>通过将数据分布在多个节点上,可以实现水平扩展,适用于处理大规模数据和高并发查询。</li></ul>
<p><strong>2. 性能:</strong></p>
<ul><li><strong>单机版:</strong>性能受限于单个节点的硬件资源,包括CPU、内存和磁盘。对于大型数据集或高并发查询,性能可能不足。</li><li><strong>集群版:</strong>通过利用多个节点的计算和存储资源,可以提供更高的性能和容量。</li></ul>
<p><strong>3. 可用性和容错性:</strong></p>
<ul><li><strong>单机版:</strong>单节点故障可能导致整个系统不可用,缺乏容错能力。</li><li><strong>集群版:</strong>具有容错机制,即使部分节点故障,集群仍然可以继续提供服务。具备高可用性和容错性。</li></ul>
<p><strong>4. 数据复制和分片:</strong></p>
<ul><li><strong>单机版:</strong>通常只有一个节点,数据没有复制和分片,存在单点故障风险。</li><li><strong>集群版:</strong>数据被分成多个分片,每个分片可以在集群中的多个节点上进行复制,提高了数据的可用性和容错性。</li></ul>
<p><strong>5. 资源利用:</strong></p>
<ul><li><strong>单机版:</strong>资源利用受限于单个节点,无法充分利用多台服务器的资源。</li><li><strong>集群版:</strong>可以跨多台服务器动态分配和利用资源,提高了资源利用率。</li></ul>
<p>单机版适用于小规模的开发和测试,而集群版则适用于大规模的生产环境,具有更高的性能、可用性和容错性。</p>
<p style="text-align:center"><img style="max-width:100%!important;height:auto!important;"alt="" height="1200" src="https://zhuji.jb51.net/uploads/allimg/20250912/2-25091212135B30.png" width="1200" /></p>
<p class="maodian"></p><h2>二、YUM安装 </h2>
<p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><h3>1、环境准备</h3>
<p><strong>1. 准备1台centos或RedHat服务器</strong></p>
<p>版本:7.x</p>
<p><strong>2. 关闭防火墙</strong></p>
<div class="dxycode"><pre class="brush:bash;"># systemctl stop firewalld</pre></div>
<p><strong>3. 关闭selinux</strong></p>
<div class="dxycode"><pre class="brush:bash;"># setenforce 0</pre></div>
<p class="maodian"></p><h3>2、Elasticsearch安装</h3>
<p><strong>1. 导入Elasticsearch的GPG密钥</strong></p>
<div class="dxycode"><pre class="brush:bash;"># rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch</pre></div>
<p>这个命令是用来导入Elasticsearch的GPG密钥到系统中,以便在安装Elasticsearch软件包时验证其真实性和完整性。这个密钥用于验证Elasticsearch软件包的数字签名,确保软件包在下载和安装过程中没有被篡改。</p>
<p><strong>2. 创建YUM配置文件</strong></p>
<div class="dxycode"><pre class="brush:bash;"># cd /etc/yum.repos.d/</pre></div>
<div class="dxycode"><pre class="brush:bash;"># cat elasticsearch.repo
# 输入以下内容
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md</pre></div>
<p style="text-align:center"><img style="max-width:100%!important;height:auto!important;"alt="" height="238" src="https://zhuji.jb51.net/uploads/allimg/20250912/2-25091212135C40.png" width="747" /></p>
<ul><li><strong>: </strong>这是存储库的标识符,可以通过这个标识符在系统中引用这个存储库。</li><li><strong>name=Elasticsearch repository for 7.x packages:</strong> 这是存储库的名称,它描述了这个存储库所提供的软件包的内容和版本。在系统中列出可用存储库时会显示这个名称。</li><li><strong>baseurl=https://artifacts.elastic.co/packages/7.x/yum: </strong>这是存储库的基本URL。当系统尝试从这个存储库获取软件包时,会使用这个URL。在这个例子中,它指向Elasticsearch 7.x软件包的YUM存储库。</li><li><strong>gpgcheck=1: </strong>这个参数指示YUM在下载软件包时要执行GPG密钥检查。如果为1,YUM会检查下载的软件包是否经过签名,以确保它们没有被篡改。</li><li><strong>gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch: </strong>这是存储库使用的GPG密钥的URL。YUM会使用这个密钥来验证从存储库下载的软件包。</li><li><strong>enabled=0: </strong>这个参数指示存储库是否启用。如果设置为0,存储库将被禁用,YUM不会从这个存储库获取软件包。</li><li><strong>autorefresh=1: </strong>这个参数指示YUM是否在每次运行时自动刷新存储库数据,以确保获取最新的软件包信息。</li><li><strong>type=rpm-md: </strong>这个参数指定存储库的元数据类型,这里是RPM Metadata格式。</li></ul>
<p>执行安装</p>
<div class="dxycode"><pre class="brush:bash;"># yum install --enablerepo=elasticsearch elasticsearch -y</pre></div>
<p style="text-align:center"><img style="max-width:100%!important;height:auto!important;"alt="" height="609" src="https://zhuji.jb51.net/uploads/allimg/20250912/2-25091212135N18.png" width="1200" /></p>
<p>查看版本</p>
<div class="dxycode"><pre class="brush:bash;"># rpm -qa elasticsearch
elasticsearch-7.17.21-1.x86_64</pre></div>
<p class="maodian"></p><h3>3、修改配置文件</h3>
<p>编辑elasticsearch的配置文件</p>
<div class="dxycode"><pre class="brush:bash;"># vim /etc/elasticsearch/elasticsearch.yml</pre></div>
<p>添加如下内容</p>
<div class="dxycode"><pre class="brush:bash;"># 集群名称
cluster.name: my_cluster
#
# 节点名称
node.name: my_node
#
# 路径设置
path.data: /es/data
path.logs: /es/logs
#
# 网络设置
network.host: 0.0.0.0
http.port: 9200
#
# 集群设置
discovery.type: single-node</pre></div>
<p style="text-align:center"><img style="max-width:100%!important;height:auto!important;"alt="" height="465" src="https://zhuji.jb51.net/uploads/allimg/20250912/2-25091212135H44.png" width="1003" /></p>
<p>创建数据目录</p>
<div class="dxycode"><pre class="brush:bash;"># mkdir /es/data -p && mkdir /es/logs
# chmod 777 /es/ -R</pre></div>
<p class="maodian"></p><h3>4、启动Elasticsearch</h3>
<div class="dxycode"><pre class="brush:bash;"># systemctl restart elasticsearch</pre></div>
<p>查看状态</p>
<div class="dxycode"><pre class="brush:bash;"># systemctl status elasticsearch</pre></div>
<p style="text-align:center"><img style="max-width:100%!important;height:auto!important;"alt="" height="418" src="https://zhuji.jb51.net/uploads/allimg/20250912/2-25091212135H22.png" width="1200" /></p>
<p class="maodian"></p><h3>5、访问测试 </h3>
<p>在浏览器输入节点的IP加9200端口,如果能看到下面的页面,则安装成功</p>
<p style="text-align:center"><img style="max-width:100%!important;height:auto!important;"alt="" height="885" src="https://zhuji.jb51.net/uploads/allimg/20250912/2-25091212135G52.png" width="1200" /></p>
<p class="maodian"></p><h2>三、二进制启动</h2>
<p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><h3>1、环境准备</h3>
<p><strong>1. 准备1台centos或RedHat服务器</strong></p>
<p>版本:7.x</p>
<p><strong>2. 关闭防火墙</strong></p>
<div class="dxycode"><pre class="brush:bash;"># systemctl stop firewalld</pre></div>
<p><strong>3. 关闭selinux</strong></p>
<div class="dxycode"><pre class="brush:bash;"># setenforce 0</pre></div>
<p><strong>4. 安装wget工具</strong></p>
<div class="dxycode"><pre class="brush:bash;"># yum install -y wget</pre></div>
<p><strong>5. 下载Elasticsearch二进制包</strong></p>
<div class="dxycode"><pre class="brush:bash;"># wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.21-linux-x86_64.tar.gz</pre></div>
<p style="text-align:center"><img style="max-width:100%!important;height:auto!important;"alt="" height="460" src="https://zhuji.jb51.net/uploads/allimg/20250912/2-25091212135HB.png" width="1200" /></p>
<p><strong>6. 解压包 </strong></p>
<div class="dxycode"><pre class="brush:bash;"># tar zxvf
elasticsearch-7.17.21-linux-x86_64.tar.gz -C /opt/</pre></div>
<p><strong>7. 创建一个普通账户,用于启动服务</strong></p>
<div class="dxycode"><pre class="brush:bash;"># useradd es</pre></div>
<p class="maodian"></p><h3>2、修改配置文件</h3>
<p>编辑配置文件</p>
<div class="dxycode"><pre class="brush:bash;"># vim /opt/elasticsearch-7.17.21/config/elasticsearch.yml</pre></div>
<p>添加如下内容</p>
<div class="dxycode"><pre class="brush:bash;"># 集群名称
cluster.name: my_cluster
#
# 节点名称
node.name: my_node
#
# 路径设置
path.data: /es/data
path.logs: /es/logs
#
# 网络设置
network.host: 0.0.0.0
http.port: 9200
#
# 集群设置
discovery.type: single-node</pre></div>
<p>创建数据目录</p>
<div class="dxycode"><pre class="brush:bash;"># mkdir /es/data -p && mkdir /es/logs
# chmod 777 -R /es/</pre></div>
<p>添加执行权限</p>
<div class="dxycode"><pre class="brush:bash;"># chmod -R 777 /opt/elasticsearch-7.17.21/logs
# chmod -R 777 /opt/elasticsearch-7.17.21/config</pre></div>
<p class="maodian"></p><h3>3、启动Elasticsearch</h3>
<p>进入Bin目录</p>
<div class="dxycode"><pre class="brush:bash;"># cd /opt/elasticsearch-7.17.21/bin/</pre></div>
<p>切换用户</p>
<div class="dxycode"><pre class="brush:bash;"># su es -</pre></div>
<p>启动服务</p>
<div class="dxycode"><pre class="brush:bash;">$ ./elasticsearch</pre></div>
<p style="text-align:center"><img style="max-width:100%!important;height:auto!important;"alt="" height="838" src="https://zhuji.jb51.net/uploads/allimg/20250912/2-25091212135K25.png" width="1200" /></p>
<p class="maodian"></p><h3>4、访问测试 </h3>
<p>在浏览器输入节点的IP加9200端口,如果能看到下面的页面,则安装成功</p>
<p style="text-align:center"><img style="max-width:100%!important;height:auto!important;"alt="" height="885" src="https://zhuji.jb51.net/uploads/allimg/20250912/2-25091212135G52.png" width="1200" /></p>
<p class="maodian"></p><h2>四、Docker方式安装</h2>
<p class="maodian"></p><p class="maodian"></p><p class="maodian"></p><h3>1、环境准备</h3>
<p><strong>1. 准备1台centos或RedHat服务器</strong></p>
<p>版本:7.x</p>
<p><strong>2. 关闭防火墙</strong></p>
<div class="dxycode"><pre class="brush:bash;"># systemctl stop firewalld</pre></div>
<p><strong>3. 关闭selinux</strong></p>
<div class="dxycode"><pre class="brush:bash;"># setenforce 0</pre></div>
<p><strong>4. 安装Docker</strong></p>
<p><strong>5. 拉取镜像</strong></p>
<div class="dxycode"><pre class="brush:bash;"># docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.21</pre></div>
<p class="maodian"></p><h3>2、启动Elasticsearch</h3>
<div class="dxycode"><pre class="brush:bash;"># docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "network.host=0.0.0.0" -e "http.cors.allow-origin=*" -e "discovery.type=single-node"
docker.elastic.co/elasticsearch/elasticsearch:7.17.21</pre></div>
<ul><li><strong>-d:</strong>表示以“分离模式”(detached mode)运行容器,即在后台运行容器,并且不会占用当前终端。</li><li><strong>--name elasticsearch:</strong>指定容器的名称为elasticsearch,这样你就可以通过名称来引用容器。</li><li><strong>-p 9200:9200 -p 9300:9300:</strong>将容器的9200和9300端口映射到主机的9200和9300端口。Elasticsearch使用9200端口作为HTTP REST API的端口,而9300端口作为集群通信端口。</li><li><strong>-e "network.host=0.0.0.0":</strong>设置Elasticsearch的网络主机为0.0.0.0,表示允许从任何IP地址访问Elasticsearch服务。通常情况下,这用于使Elasticsearch在Docker容器内部的所有网络接口上都可用。</li><li><strong>-e "http.cors.allow-origin=*":</strong>设置Elasticsearch的CORS(跨源资源共享)策略,允许从任何来源访问Elasticsearch的HTTP端点。这样设置可以让你在浏览器中通过JavaScript从任何域名发出请求到Elasticsearch服务。</li><li><strong>-e "discovery.type=single-node":</strong>设置Elasticsearch的发现类型为single-node,这告诉Elasticsearch以单节点模式运行,它会自动配置所需的发现设置,如cluster.initial_master_nodes等。</li></ul>
<p class="maodian"></p><h3>3、访问测试 </h3>
<p>在浏览器输入节点的IP加9200端口,如果能看到下面的页面,则安装成功</p>
<p style="text-align:center"><img style="max-width:100%!important;height:auto!important;"alt="" height="885" src="https://zhuji.jb51.net/uploads/allimg/20250912/2-25091212135G52.png" width="1200" /></p>
<p>以上就是CentOS上Elasticsearch安装全攻略:YUM、二进制与Docker任选的详细内容,更多相关资料请阅读琼殿技术社区其它文章!</p>
頁:
[1]