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. 自测

  1. 6.2.2 的三条环境约束?
  2. 为什么 head 在 6.x 之后不能"装进节点"?
  3. 6→8 的四处断裂各是什么?
  4. 今天新装 ES 该选哪个版本、用什么替代 head?
答案
  1. JDK 8、纯 ASCII 路径、内存与 bootstrap 检查。
  2. 它是独立 Node 服务,通过 HTTP + CORS 访问集群。
  3. type 移除、head 停更、内置 JDK、安全默认开启。
  4. 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/
作者
clxstart
发布于
2024-12-31
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。