在当今大数据处理领域,实时数据流的计算需求日益增长。Apache Flink 和 Apache Spark Streaming 是目前最主流的两个实时计算框架。它们都支持对大规模数据流进行高吞吐、低延迟的处理,并广泛应用于日志分析、监控系统、金融风控等场景中。本文将介绍如何在实际环境中部署和运行 Flink 与 Spark Streaming,帮助开发者快速搭建起一个高效的实时计算平台。
在开始部署之前,首先需要准备好基础的软硬件环境:
此外,建议至少准备两台服务器或虚拟机用于集群部署,以体现其分布式特性。
访问 Apache Flink 官网,选择合适的版本下载(例如 flink-1.16.0-bin-scala_2.12.tgz
),解压后即可使用:
tar -zxvf flink-1.16.0-bin-scala_2.12.tgz -C /usr/local/
mv /usr/local/flink-1.16.0 /usr/local/flink
进入 Flink 目录并启动单机模式:
cd /usr/local/flink
./bin/start-cluster.sh
此时,Flink 的 JobManager 和 TaskManager 将会在本地启动,默认监听端口为 8081
,可以通过浏览器访问 http://localhost:8081
查看 Web UI。
修改 conf/workers
文件,添加所有 TaskManager 节点的 IP 地址:
worker1
worker2
在主节点上执行启动命令:
./bin/start-cluster.sh
若需配置高可用,还需设置 Zookeeper 并修改 conf/flink-conf.yaml
中的相关参数。
使用以下命令提交作业:
./bin/flink run examples/streaming/WordCount.jar
前往 Spark 官网,选择适合的版本(如 spark-3.3.0-bin-hadoop3.tgz
),解压后配置环境变量。
tar -zxvf spark-3.3.0-bin-hadoop3.tgz -C /usr/local/
mv /usr/local/spark-3.3.0 /usr/local/spark
Spark 不像 Flink 自带独立的调度器,通常依赖于 Standalone、YARN 或 Mesos。我们先演示本地模式运行 Spark Streaming 示例:
cd /usr/local/spark
./bin/run-example streaming.NetworkWordCount localhost 9999
然后通过 nc
命令发送测试数据:
nc -lk 9999
输入任意文本,观察控制台输出结果。
使用 Spark Standalone 模式时,需编辑 conf/slaves
文件,添加所有 Worker 节点地址:
worker1
worker2
启动集群:
./sbin/start-master.sh
./sbin/start-workers.sh
访问 http://master:8080
查看集群状态。
使用 spark-submit
提交 Streaming 应用:
./bin/spark-submit \
--master spark://master:7077 \
--deploy-mode client \
examples/jars/spark-streaming-kafka-0-10_2.12-3.3.0.jar \
localhost:9092 topic
特性 | Flink | Spark Streaming |
---|---|---|
实时性 | 真正的流处理(事件驱动) | 微批处理(Mini-Batch) |
状态管理 | 支持高效的状态管理和检查点 | 使用 RDD/DStream 存储状态 |
窗口机制 | 更加灵活 | 灵活性稍差 |
API 易用性 | 较复杂 | API 更加简洁 |
生态集成 | 与 Kafka、HBase 等集成良好 | 与 Spark Ecosystem 天然集成 |
根据业务需求选择合适的技术栈非常重要。如果要求更低的延迟和更精确的状态一致性,建议优先考虑 Flink;而如果已有 Spark 生态体系,则 Spark Streaming 也是不错的选择。
通过本文的介绍,相信你已经掌握了 Flink 和 Spark Streaming 的基本部署流程及使用方法。无论你是初学者还是有经验的开发者,都可以根据自身项目需求选择合适的实时计算框架,构建出稳定高效的流式处理系统。
公司:赋能智赢信息资讯传媒(深圳)有限公司
地址:深圳市龙岗区龙岗街道平南社区龙岗路19号东森商业大厦(东嘉国际)5055A15
Q Q:3874092623
Copyright © 2022-2025