1036 字
约 3 分钟
7
S13-X02 · ES 6.2.2(Windows)安装与 head 插件(附录·版本留档)
适用读者:在 Windows 上复现老版本 ES 环境、或需要理解"为什么新版装不上老插件"的人。
前置:S13-B01(倒排索引)、S13-B02(映射与分词)。
覆盖旧文:3216(windows 环境下安装 elasticsearch 6.2.2,1,502 字符)、3217(elasticsearch-head 插件安装,978 字符)。
扩展点:E-S13-041(ES 6.x 与 7/8.x 的四处断裂:type、head 插件、JDK 绑定、安全默认)。
下一篇:S13 系列验收(v3)。
1. 一句话结论
这两篇是"版本留档":ES 6.2.2 的安装步骤在今天(7.x/8.x)已不适用,但它是理解"为什么 ES 一直在做破坏性变更"的最好样本——多重类型(type)被移除、head 插件停更、内置 JDK 与安全默认开启,每一步都在修 6.x 的历史债。
出处:
A-3216、A-3217。
2. 6.2.2 的安装步骤(原样保留,仅作复现)
环境:Windows 10 / JDK 8(ES 6.2.2 要求 JDK 8,不能更高)
① 下载 elasticsearch-6.2.2.zip 解压到无空格路径(如 D:\es622)
② 修改 config/elasticsearch.yml:
cluster.name: my-es
node.name: node-1
network.host: 127.0.0.1
http.port: 9200
③ bin\elasticsearch.bat 启动
④ 浏览器访问 http://127.0.0.1:9200
预期:JSON 显示 "version":{"number":"6.2.2", ...} 且 "tagline":"You Know, for Search"
常见启动失败(原文覆盖):
| 现象 | 原因 | 处置 |
|---|---|---|
java.lang.UnsupportedClassVersionError |
JDK 版本过高(9+) | 装 JDK 8 并指定 JAVA_HOME |
| 启动后自动退出 | 内存不足 / bootstrap checks 失败 |
调 -Xms512m -Xmx512m;生产绑非 localhost 需过 bootstrap 检查 |
| 端口占用 | 9200/9300 被占 | 改 http.port / transport.tcp.port |
| 路径含中文或空格 | 插件与配置加载失败 | 换纯 ASCII 路径 |
head 插件(3217):
ES 5.x 之前:plugin install mobz/elasticsearch-head
ES 5.x/6.x:插件改为独立 Node 服务:
① 安装 Node.js(6.x 时代用 node 8)
② git clone git://github.com/mobz/elasticsearch-head && cd elasticsearch-head
③ npm install && npm run start → http://localhost:9100
④ 在 elasticsearch.yml 加:http.cors.enabled: true / http.cors.allow-origin: "*"
判据:"head 是外部页面,不是集群插件"——它通过 HTTP 调 ES,所以必须开 CORS;这也解释了为什么 6.x 之后它无法"装进"节点。
3. 6.x → 7/8.x 的四处断裂(E-S13-041)
| 断裂点 | 6.x | 7/8.x | 迁移影响 |
|---|---|---|---|
| type | 一个索引可有多个 type | 只能 _doc(8.x 彻底移除) |
索引重建,模型从"库.表"变"库" |
| head 插件 | 独立 Node 服务 | 社区替代:Kibana / Cerebro | 运维工具更换 |
| JDK | 需自带 JDK 8 | 内置 JDK(可 ES_JAVA_HOME 覆盖) |
部署简化,但"JDK 冲突"变成"版本锁定" |
| 安全默认 | 默认无鉴权 | 8.x 默认开启 TLS + 密码 | 必须处理证书与账号(S26-A02) |
判据:"ES 的破坏性变更都指向同一个目标:去掉'一个索引多类型'的历史包袱"——理解这一条,就能解释 6→7→8 的绝大多数不兼容。
今天要装 ES 的建议:直接用 8.x(内置 JDK + 默认安全),用 Kibana Dev Tools 替代 head;只有在维护老系统时才需要本节 6.2.2 的路径。
4. 反例:五种"老版本装不上"
| 做法 | 后果 |
|---|---|
| 用 JDK 17 跑 6.2.2 | UnsupportedClassVersionError |
试图用 plugin install 装 head |
6.x 已改为独立服务 |
| 不开 CORS 就连 head | 跨域拒绝,页面空白 |
| 8.x 关掉安全跑公网 | 裸奔(默认不允许绑定公网) |
| 直接在 6.x 上加 type 升级 | 7.x 拒绝多 type 索引 |
5. 自测
- 6.2.2 的三条环境约束?
- 为什么 head 在 6.x 之后不能"装进节点"?
- 6→8 的四处断裂各是什么?
- 今天新装 ES 该选哪个版本、用什么替代 head?
答案
- JDK 8、纯 ASCII 路径、内存与 bootstrap 检查。
- 它是独立 Node 服务,通过 HTTP + CORS 访问集群。
- type 移除、head 停更、内置 JDK、安全默认开启。
- 8.x + Kibana Dev Tools(或 Cerebro)。
6. 下一篇
S13 系列验收(v3)。
本篇属于系列《S13 · 搜索与 Elasticsearch》。旧文来源:A-3216/3217(ES 6.2.2 版本留档);扩展点 E-S13-041。
S13-X02 · ES 6.2.2(Windows)安装与 head 插件(附录·版本留档)
https://www.clxhxhhr.top/posts/5371/ 评论
0 条
还没有评论,先写一条吧。