Ubuntu 上安装 Elasticsearch 7.6.0

要在 Ubuntu 24.04 上安装 Elasticsearch 7.6.0,可以按照以下步骤进行:


步骤 1: 更新系统依赖

确保系统是最新的,并安装必要的依赖包:

bash 复制代码
sudo apt update
sudo apt upgrade -y
sudo apt install -y apt-transport-https openjdk-11-jdk wget

步骤 2: 导入 Elasticsearch 的 GPG 密钥

Elasticsearch 的 APT 存储库需要 GPG 签名验证。运行以下命令导入密钥:

bash 复制代码
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

步骤 3: 添加 Elasticsearch 的 APT 存储库

创建一个文件 /etc/apt/sources.list.d/elastic-7.x.list,并添加以下内容:

bash 复制代码
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list

更新 APT 缓存:

bash 复制代码
sudo apt update

步骤 4: 下载并安装 Elasticsearch 7.6.0

直接安装 Elasticsearch:

bash 复制代码
sudo apt install elasticsearch=7.6.0

验证安装是否成功:

bash 复制代码
dpkg -l | grep elasticsearch

步骤 5: 配置 Elasticsearch

  1. 编辑主配置文件:

    bash 复制代码
    sudo nano /etc/elasticsearch/elasticsearch.yml
  2. 配置示例:

    • 设置网络绑定地址:

      yaml 复制代码
      network.host: 0.0.0.0
    • 配置集群名称(可选):

      yaml 复制代码
      cluster.name: my-cluster
    • 配置节点名称(可选):

      yaml 复制代码
      node.name: node-1

步骤 6: 启动和启用 Elasticsearch 服务

  1. 启动服务:

    bash 复制代码
    sudo systemctl start elasticsearch
  2. 设置开机自启:

    bash 复制代码
    sudo systemctl enable elasticsearch

验证服务状态:

bash 复制代码
sudo systemctl status elasticsearch

步骤 7: 验证 Elasticsearch 是否正常运行

使用 curl 命令验证:

bash 复制代码
curl -X GET "localhost:9200/"

输出示例:

json 复制代码
{
  "name" : "node-1",
  "cluster_name" : "my-cluster",
  "cluster_uuid" : "xxxxxxxxxx",
  "version" : {
    "number" : "7.6.0",
    ...
  }
}

注意事项

  • 内存配置: 如果需要调整 Elasticsearch 使用的内存,可以编辑 JVM 配置文件 /etc/elasticsearch/jvm.options

    bash 复制代码
    sudo nano /etc/elasticsearch/jvm.options

    修改以下选项,将 2g 替换为合适的内存值(例如 1g):

    text 复制代码
    -Xms2g
    -Xmx2g
  • 防火墙配置: 如果希望远程访问 Elasticsearch,需要确保防火墙允许端口 9200

    bash 复制代码
    sudo ufw allow 9200
  • 生产环境建议: 默认情况下,Elasticsearch 仅允许本地访问。生产环境中应通过安全配置(如 HTTPS 和身份认证)保护服务。


完成这些步骤后,您应该能够成功在 Ubuntu 24.04 上安装和配置 Elasticsearch 7.6.0。如有问题,请提供错误信息以便进一步帮助!

这个错误表明你正在尝试运行 Elasticsearch,而不是 ZooKeeper,且遇到了与生产模式相关的配置问题。Elasticsearch 在生产模式下需要设置集群发现和主节点的相关配置。

以下是解决方法:


1. 错误原因

在生产模式下,Elasticsearch 强制要求以下配置项之一:

  • discovery.seed_hosts:指定集群内其他节点的地址。
  • discovery.seed_providers:用于动态发现其他节点。
  • cluster.initial_master_nodes:指定集群初始化时的主节点列表。

如果未配置这些参数,Elasticsearch 将无法启动。


2. 解决方法

(1) 修改 Elasticsearch 配置文件

编辑 Elasticsearch 的配置文件 elasticsearch.yml

bash 复制代码
sudo nano /etc/elasticsearch/elasticsearch.yml

在文件中添加或修改以下内容:

  • 如果是单节点开发环境:

    yaml 复制代码
    cluster.name: my-cluster
    node.name: node-1
    network.host: 0.0.0.0
    discovery.type: single-node

    解释

    • discovery.type: single-node 告诉 Elasticsearch 以单节点模式运行,适用于开发环境或非分布式部署。
  • 如果是多节点集群环境:

    yaml 复制代码
    cluster.name: my-cluster
    node.name: node-1
    network.host: 0.0.0.0
    discovery.seed_hosts: ["node-1-ip", "node-2-ip"]
    cluster.initial_master_nodes: ["node-1", "node-2"]

    解释

    • discovery.seed_hosts 列出集群中其他节点的 IP 地址或主机名。
    • cluster.initial_master_nodes 列出初始化集群时的主节点。
(2) 保存并重启 Elasticsearch

保存文件后,重启 Elasticsearch:

bash 复制代码
sudo systemctl restart elasticsearch

3. 验证

检查 Elasticsearch 是否启动成功:

bash 复制代码
sudo systemctl status elasticsearch

或者使用 curl 测试:

bash 复制代码
curl -X GET "localhost:9200/"

正常情况下会返回类似以下信息:

json 复制代码
{
  "name" : "node-1",
  "cluster_name" : "my-cluster",
  "cluster_uuid" : "_na_",
  "version" : {
    "number" : "8.x.x",
    ...
  },
  "tagline" : "You Know, for Search"
}

4. 生产模式下的额外配置

如果这是生产环境,请确保:

  • JVM 内存配置 :调整 /etc/elasticsearch/jvm.options 中的 -Xms-Xmx 参数,例如:

    bash 复制代码
    -Xms2g
    -Xmx2g
  • 防火墙规则 :确保允许外部访问的端口(默认是 92009300)。

  • 安全性配置:在生产环境中启用 TLS 和认证。

通过这些配置,你应该能够成功启动 Elasticsearch。

相关推荐
rockyou6661 小时前
ffmpeg学习:ubuntu下编译Android版ffmpeg-kit
ubuntu·ffmpeg·ffmpeg-kit
risc1234565 小时前
【Elasticsearch】intervals查询
elasticsearch
java 凯5 小时前
Ubuntu 上安装和配置 Apache RocketMQ 4.7.1
ubuntu·apache·rocketmq
勿忘初心915 小时前
Android车机DIY开发之软件篇(十二) AOSP12下载编译
android·大数据·arm开发·嵌入式硬件·elasticsearch
risc1234567 小时前
【Elasticsearch】文本分析Text analysis概述
elasticsearch
tingting01197 小时前
anolis os 8.9安装jenkins
运维·jenkins
risc12345615 小时前
【Elasticsearch】Bucket Selector Aggregation
elasticsearch
risc12345615 小时前
【Elasticsearch】derivative聚合
elasticsearch
Elastic 中国社区官方博客15 小时前
如何在 Elasticsearch 中设置向量搜索 - 第二部分
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索