环境准备:Docker、JDK、Maven、IDE 的安装与配置

说实话,很多初学者一上来就急着写代码,结果环境配了三天还没跑起来。我见过太多人卡在这一步了。咱们这节课就把这些基础工具一次性搞定,后面写代码的时候你只管专注业务逻辑,不用再被环境问题折腾。

实时特征平台依赖的东西其实不多,但每一样都得配对。我按自己的习惯,把安装顺序排了一下:先装 JDK,再装 Maven,然后是 Docker,最后是 IDE。这个顺序是有讲究的——后面的工具往往依赖前面的。

核心要点:本章所有工具都建议使用 LTS(长期支持)版本。别追新,稳定第一。生产环境踩过的坑告诉我,追新版本往往得不偿失。

1. JDK 安装与配置

实时特征平台的核心计算引擎是 Flink,而 Flink 依赖 JDK 8 或 11。我个人推荐 JDK 11,原因很简单:JDK 8 太老了,很多新特性不支持;JDK 17 虽然好,但 Flink 的生态还没完全跟上。

安装步骤其实就三步:

  1. 下载 JDK 11 — 去 Adoptium(原 AdoptOpenJDK)官网下载,别去 Oracle 官网,那个要登录。
  2. 解压安装 — Linux/Mac 解压到 /usr/local/java,Windows 解压到 C:\Java。
  3. 配置环境变量 — 设置 JAVA_HOME 和 PATH。

嗯,这里要注意一个坑:JAVA_HOME 的路径不要带空格,尤其是 Windows 用户,别装在 Program Files 目录下。我曾经帮一个同事排查了半天,最后发现是路径里有空格导致 Maven 编译失败。

配置完成后,打开终端验证一下:

java -version
# 输出示例:
# openjdk version "11.0.18" 2023-01-17
# OpenJDK Runtime Environment (build 11.0.18+10)
# OpenJDK 64-Bit Server VM (build 11.0.18+10, mixed mode)

看到这个输出,说明 JDK 装好了。如果提示 command not found,别慌,检查一下 PATH 里有没有加上 $JAVA_HOME/bin。

2. Maven 安装与配置

Maven 是 Java 项目的构建工具,说白了就是帮你管理依赖、打包编译的。实时特征平台项目依赖很多第三方库,用手动下载 jar 包的方式会累死你。

安装 Maven 也很简单:

  1. 去 Apache Maven 官网下载二进制包(apache-maven-3.9.x-bin.tar.gz 或 .zip)。
  2. 解压到 /usr/local/maven 或 C:\Maven。
  3. 配置 MAVEN_HOME 和 PATH。

验证方式:

mvn -version
# 输出示例:
# Apache Maven 3.9.2 (c9616018c7a021c1c39be70fb2843d6f5f9b8a1c)
# Maven home: /usr/local/maven
# Java version: 11.0.18, vendor: Eclipse Adoptium, runtime: /usr/local/java/jdk-11.0.18

这里有个小技巧:Maven 默认的镜像仓库在国外,下载依赖很慢。我建议你修改 ~/.m2/settings.xml,加上阿里云镜像:

<mirrors>
    <mirror>
        <id>aliyunmaven</id>
        <mirrorOf>central</mirrorOf>
        <name>阿里云公共仓库</name>
        <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
</mirrors>

改完之后,你会发现下载速度从几分钟变成了几秒钟。这个配置我几乎每个项目都会用,省了不少时间。

3. Docker 安装与配置

Docker 是实时特征平台的关键基础设施。我们会用它来部署 Kafka、Redis、MySQL 这些中间件。你想想看,如果没有 Docker,你得手动安装配置每一个组件,光 Kafka 的配置就能折腾一上午。

安装方式根据操作系统不同略有区别:

操作系统 安装方式 注意事项
macOS 下载 Docker Desktop for Mac 建议分配 4GB 以上内存
Windows 下载 Docker Desktop for Windows 必须开启 WSL2 或 Hyper-V
Linux (Ubuntu) apt install docker.io 安装后执行 sudo usermod -aG docker $USER
Linux (CentOS) yum install docker-ce 需要先添加 Docker 官方仓库

安装完成后,验证一下:

docker --version
# Docker version 24.0.5, build ced0996

docker run hello-world
# 看到 "Hello from Docker!" 说明安装成功

避坑指南:我曾经在 Windows 上装 Docker Desktop 时,忘了开启 WSL2,结果 Docker 启动后一直报错。如果你用的是 Windows,记得先去「控制面板 → 启用或关闭 Windows 功能」里勾选「适用于 Linux 的 Windows 子系统」,然后安装 WSL2 内核更新包。

Docker 装好后,建议再装一个 docker-compose。我们会用它来一键启动多个容器。安装方式很简单:

# Linux/Mac
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# 验证
docker-compose --version
# Docker Compose version v2.20.2

4. IDE 选择与配置

IDE 这块,我推荐 IntelliJ IDEA。Eclipse 虽然也能用,但说实话,IDEA 的智能提示和调试体验好太多了。实时特征平台的代码量不小,一个好用的 IDE 能帮你省下大量时间。

安装步骤:

  1. 去 JetBrains 官网下载 IntelliJ IDEA Community Edition(免费版就够用)。
  2. 安装完成后,打开 IDEA,安装几个必备插件:
    • Lombok — 减少样板代码
    • Rainbow Brackets — 括号颜色区分,调试时很有用
    • GitToolBox — Git 状态一目了然
  3. 配置 JDK:File → Project Structure → SDK → Add JDK,选择你刚才安装的 JDK 11 路径。

这里有个小建议:IDEA 默认的 JVM 内存只有 512MB,对于 Flink 项目来说不太够。你可以修改 Help → Edit Custom VM Options,把 -Xmx 改成 2048m:

-Xms512m
-Xmx2048m
-XX:ReservedCodeCacheSize=512m

改完之后重启 IDEA,你会发现编译和索引速度快了不少。

5. 整体环境验证

所有工具装好后,我们来做一个快速验证。写一个简单的 Java 项目,确保整个链路是通的:

// 创建一个 Maven 项目,在 pom.xml 中添加:
<dependencies>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-java</artifactId>
        <version>1.17.0</version>
    </dependency>
</dependencies>

// 写一个简单的 Flink 程序
public class EnvironmentCheck {
    public static void main(String[] args) {
        System.out.println("JDK: " + System.getProperty("java.version"));
        System.out.println("Maven: 已配置");
        System.out.println("Docker: 已安装");
        System.out.println("环境准备完成!");
    }
}

用 Maven 编译:mvn clean package,然后用 IDEA 运行。如果一切顺利,你会看到控制台输出环境信息。

小提示:如果编译时出现 Unsupported class file major version 错误,说明 JDK 版本和 Maven 编译器插件版本不匹配。在 pom.xml 里显式指定 maven-compiler-plugin 的 source 和 target 为 11 即可解决。

6. 知识体系总览

下面这张图把本章涉及的工具和它们之间的关系梳理了一下。你可以把它当作一个检查清单,每装完一个就对照着看看:

环境准备知识体系 实时特征平台 JDK 11 Maven 3.9 Docker 24 IntelliJ IDEA Java 运行环境 Flink 依赖 JDK 11 配置 JAVA_HOME 依赖管理工具 自动下载 jar 包 配置阿里云镜像 容器化平台 部署 Kafka/Redis docker-compose 编排 开发环境 代码编写/调试 安装 Lombok 插件 整体验证:mvn clean package

这张图里,JDK 是基础,Maven 管依赖,Docker 管中间件,IDEA 管开发。四者缺一不可。你装完一个就打个勾,全部完成后用 mvn clean package 做一次整体验证,确保链路通畅。