Elasticsearch 8.2:多节点集群搭建与Python连接

本文介绍如何在两台服务器上搭建Elasticsearch集群,并采用用户名密码加证书方式进行认证。涉及配置文件修改、节点加入及Kibana配置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Elasticsearch搭建,用户名密码+证书的方式认证

当前有两个服务器,ip分别为192.168.171.81192.168.171.25,我们需要搭建一个es集群。

首先下载elasticsearch-8.2.0-linux-x86_64.tar.gz,分别拷贝到这两台服务器中,进行解压。

需要注意的是,我们要在启动Elasticsearch服务之前,就需要配置elasticsearch.yml

在第一台服务器修改config/elasticsearch.yml,内容如下:

network.host: 192.168.171.81
transport.host: 192.168.171.81
cluster.name: my_cluster # 可以不写,默认为elasticsearch
node.name: node1 # 可以不写,默认为当前服务器名
# node.roles: [ data, master ] # 可以不写, 默认为cdfhilmrstw

ingest.geoip.downloader.enabled: false # 关闭下载geoip数据库

角色列表如下:
在这里插入图片描述

然后修改文件config/jvm.options,内容如下:

-Xms4g
-Xmx4g

启动第一台服务器的es:./bin/elasticsearch
出现下面,说明启动成功:
在这里插入图片描述
默认密码有点难记,我们修改密码:
./bin/elasticsearch-reset-password -u elastic -i
在这里插入图片描述
验证是否成功:
curl --insecure -u elastic:123456 -XGET "https://192.168.171.81:9200/",其中123456是我刚才设置的密码,返回如下:
在这里插入图片描述
说明节点正常启动了。
然后检查一下集群节点:curl --insecure -u elastic:123456 -XGET "https://192.168.171.81:9200/_cat/nodes"
在这里插入图片描述
可以看到当前只有一个节点。

当前elasticsearch.yml文件自动进行了更新:
在这里插入图片描述

如果要一台新的服务器加入进来,需要生成一个token,有了这个token就可以让一台新节点自动加入到集群,./bin/elasticsearch-create-enrollment-token -s node

在这里插入图片描述

接下来配置第二台服务器。 更第一台配置一样,修改./config/elasticsearch.yml

network.host: 192.168.171.25
transport.host: 192.168.171.25
cluster.name: my_cluster 
node.name: node2 
node.roles: [ data, master ] # 可以不写, 默认为cdfhilmrstw

修改config/jvm.options:

-Xms4g
-Xmx4g

然后在讲这台节点加入es集群中:./bin/elasticsearch --enrollment-token eyJ2ZXIiOiI4LjIuMCIsImFkciI6WyIxOTIuMTY4LjE3MS44MTo5MjAwIl0sImZnciI6Ijk5MGI4NDllNGVkNDk0NmEwYzAzZDdkZDk4YzQwMTg0MzllNGQ5M2E0NDExNjM5MTAxY2QwOTdkZGEzNmI5NTkiLCJrZXkiOiI0dVVjQUlFQktyU0dWdy1YSXlfVTpLYjBWaW1zZ1FkZTdxQ3dHamZJYUNnIn0=

然后在第一台节点终端显示:
在这里插入图片描述
检查node2的状态:
curl --insecure -u elastic:123456 -XGET "https:/192.168.171.25:9200/"
在这里插入图片描述
可以看到node2也成功启动了。

查看node2的配置文件elasticsearch.yml:
在这里插入图片描述
说明使用enrollment-token可以自动进行配置。下次就不需要了。

检查集群节点:
在这里插入图片描述
可以看见集群里有两个节点。

kibana配置

kibana下载对应的8.2.0版本,然后直接运行./bin/kibana,在浏览器中输入对应的url,
在这里插入图片描述
然后在elasticsearch中通过命令生成token./elasticsearch-create-enrollment-token --scope kibana,然后将token配置到kibana中的页面。

使用上面的修改的用户名elastic密码123456进行登录。

Python连接

安装 pip install elasticsearch

检查版本:pip list | grep elasticsearch

elasticsearch 8.2.0

将es节点中的config/cert/http_ca.crt拷贝到本地。

from elasticsearch import Elasticsearch

es = Elasticsearch('https://elastic:123456@192.168.171.81:9200',
                   ca_certs = './http_ca.crt',
                   verify_certs=True)
data = {
    "name": "灭绝师太",
    "age": "49",
    "sex": "f",
    "address": "峨眉山",
    "sect": "峨眉派",
    "skill": "倚天剑",
    "power": "70",
    "create_time": "2022-05-08 23:16:53",
    "modify_time": "2022-05-08 23:16:59"
}
resp = es.index(index="example_index", id=1, body=data)
print(resp)

返回添加数据成功即可。

CURL 方式访问

ES使用了用户名、密码,同时使用了证书的方式进行认证。

使用CURL不安全的方式进行访问:curl --insecure -u elastic:123456 -XGET "https://ip:9200/db/_search",这种方式不需要指定证书,只需要用户名和密码就可以访问。

使用CURL安全的方式进行访问:curl --cacert /home/usr/app/elasticsearch-8.2.0/config/certs/http_ca.crt -u elastic:123456 -XGET 'https://ip:9200/db/_search',这种方式将用户名密码,同时结合证书进行访问。

<think>好的,我现在需要处理用户关于数据评价服务的介绍请求。首先,我得仔细阅读用户提供的查询内容,确保完全理解他们的需求。用户希望了解数据评价服务,包括允许用户以文字、图片、标签等形式进行评价,以及这些功能的具体实现和好处。 接下来,我要回顾之前的历史对话,看看有没有相关的信息可以借鉴。之前的对话涉及安全审计服务,用户给出了详细的架构和技术实现,这可能对当前的数据评价服务结构有参考价值。比如,用户可能希望同样清晰的分步解析,包含核心功能模块、技术实现、扩展能力等部分。 用户提到的数据评价服务包括评论、图片上传、打分和评级,这些功能需要逐一解析。我需要考虑如何结构化回答,可能分为核心功能、技术实现、数据应用场景、扩展能力等部分,类似于之前安全审计服务的分步解析方式。此外,用户可能希望看到具体示例和技术选型,比如使用什么数据库存储评论,如何实现图片审核等。 需要注意用户强调使用中文回答,并且结构清晰,逐步解决问题。同时,要确保LaTeX格式的正确使用,比如行内公式用$...$,独立公式用$$...$$。虽然当前查询中没有明显的数学公式,但如果有评分算法或统计模型,可能需要用到。 需要验证用户是否有未明确的需求,比如是否希望了解如何防止虚假评价,或者如何分析评价数据。用户提到“增强评价的具体性和可信度”,这可能涉及到图片审核机制和评分算法的防作弊措施,这些应该在回答中提及。 另外,用户可能关心数据评价服务如何其他系统集成,比如是否支持API对接或自动化报告生成。在扩展能力部分,可以提到这些内容,类似于之前安全审计服务的合规性支持和自动化响应。 还要考虑用户的实际应用场景,比如企业数据中台或公共数据平台,不同的场景下数据评价服务的侧重点可能不同。例如,公共平台可能需要更强的用户互动功能,而企业可能更关注评价数据的分析和反馈闭环。 最后,要确保回答真实可靠,可能需要引用一些常见的技术方案,如使用Elasticsearch进行文本分析,AWS Rekognition进行图片审核,或者机器学习模型进行情感分析。同时,示例代码或伪代码可以增强回答的可信度,比如展示如何计算加权评分。 总结一下,回答的结构应该包括核心功能模块、技术实现细节、数据应用场景、扩展能力,以及可能的示例和最佳实践。需要保持语言简洁明了,结构清晰,符合用户之前接受的格式,同时覆盖用户提到的所有要点,并预见到潜在的需求点。</think>### 数据评价服务分步解析 --- #### 一、核心功能模块 1. **多维评价形式** - **文字评论** - 支持用户详细描述数据服务的使用体验(如:`"该气象数据集更新延迟较高,但覆盖区域完整"`) - 提供富文本编辑功能(如高亮关键问题、@关联数据表) - **图片/截图上传** - 允许上传数据可视化结果(如:`折线图展示数据更新频率`) - 支持格式校验(仅允许PNG/JPG,大小限制$<5$MB) - **标签化反馈** - 预定义标签(如:"数据新鲜度"、"接口稳定性") - 自定义标签(用户可添加新标签,需审核后生效) 2. **量化评分体系** - **星级评分** - 5星制($1★$~$5★$),支持半星级(如$4.5★$) - 计算公式:$$ \text{综合评分} = \frac{\sum_{i=1}^n (用户评分_i \times 可信度权重_i)}{有效评价总数} $$ - **多维度打分** - 分项评分(如数据质量$8.2$分、接口响应$7.5$分) - 雷达图可视化(通过`ECharts`生成对比图表) --- #### 二、技术实现方案 1. **评价数据存储** - **结构化存储** | 字段 | 示例值 | 存储类型 | |---------------|---------------------------------|--------------| | review_id | rev_20231001_001 | UUID | | user_id | user_007 | 外键关联 | | rating | {"overall":4.5, "accuracy":4.0} | JSONB | | images | ["screenshot1.jpg", "chart.png"]| 数组+OSS存储 | - **技术选型** - 主数据库:PostgreSQL(JSONB支持灵活的结构化存储) - 图片存储:阿里云OSS(自动生成缩略图,CDN加速访问) 2. **反作弊机制** - **图片审核** - 使用AWS Rekognition检测违规内容(如涉黄/涉政图片) - OCR识别截图中的敏感信息(如`SELECT * FROM salary`查询结果) - **评分防刷** - 限制同一IP每日最多$3$次评价 - 检测异常评分模式(如新注册账号集中打$1★$) --- #### 三、数据应用场景 1. **用户决策支持** - **评价排序策略** - 默认排序:$$ \text{排序权重} = 0.6 \times 评分 + 0.3 \times 点赞数 + 0.1 \times 时效性 $$ - 专业用户评价加权(如数据工程师评价权重$\times 1.5$) - **智能摘要生成** - 使用NLP提取高频关键词(如"数据缺失"出现$58$次) - 自动生成总结报告(`GPT-4`提炼核心优缺点) 2. **服务优化闭环** - **问题追踪看板** ```python # 热点问题识别伪代码 def detect_issues(): issues = TextBlob(reviews).noun_phrases return Counter(issues).most_common(5) # 输出示例:[('数据延迟', 142次), ('接口超时', 89次)] ``` - **数据提供方响应** - 允许服务方在评价下回复(如:`"延迟问题已通过增加计算节点解决"`) - 状态标记系统(将问题标记为"已解决"/"处理中") --- #### 四、扩展能力 1. **进阶分析功能** - **情感分析** - 使用BERT模型判断评价情绪(正面/中性/负面) - 生成情绪趋势图(如近30天满意度从$72\%$升至$85\%$) - **关联分析** - 发现隐藏关联(如"下载速度慢"常伴随"压缩格式差"的评价) 2. **开放接口** - **API服务** ```restful GET /api/reviews?dataset_id=DS_001&sort_by=recent Response: { "avg_rating": 4.2, "top_tags": ["数据完整性强", "元数据缺失"], "reviews": [...] } ``` - **自动化报告** - 定期生成PDF报告(含评分趋势、词云图、改进建议) - 对接BI工具(如Tableau展示评价分析看板) --- ### 最佳实践建议 1. **激励机制设计** - 给予优质评价者积分奖励(如$10$积分/千字深度评测) - 设立"金标评价"认证(需通过内容审核+专业背景验证) 2. **隐私保护措施** - 自动模糊处理截图中的敏感字段(如手机号`138****1234`) - 提供匿名评价选项(隐藏用户名但保留用户类型标签) --- 通过这种多维评价体系,数据服务平台可实现: 1. **用户侧**:建立透明的选型决策依据 2. **提供侧**:获得持续改进的精准反馈 3. **平台侧**:构建活跃的数据服务生态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值