Flink2.0 配置 historyserver

Flink2.0 配置 historyserver 主要是去修改config.yaml配置文件 主要修改的点有两个 网上很多文档都是写的只配置一个 都是坑啊

historyserver :历史服务器
运行 Flink job 的集群一旦停止(例如yarn模式,程序一旦停止,集群也就关闭了),只能去 yarn 或本地磁盘上查看日志,不再可以查看作业挂掉之前的运行的 Web UI,很难清楚知道作业在挂的那一刻到底发生了什么。如果我们还没有 Metrics 监控的话,那么完全就只能通过日志去分析和定位问题了,所以如果能还原之前的 Web UI,我们可以通过 UI 发现和定位一些问题。

Flink提供了历史服务器,用来在相应的 Flink 集群关闭后查询已完成作业的统计信息。我们都知道只有当作业处于运行中的状态,才能够查看到相关的WebUI统计信息。通过 History Server 我们才能查询这些已完成作业的统计信息,无论是正常退出还是异常退出。

1:

jobmanager:
  # interface, such as 0.0.0.0.
  bind-host: 0.0.0.0
  rpc:
    # JobManager runs.
    address: cdh1
    # The RPC port where the JobManager is reachable.
    port: 6123
  memory:
    process:
      # The total process memory size for the JobManager.
      # Note this accounts for all memory usage within the JobManager process, including JVM metaspace and other overhead.
      size: 1600m
  execution:
    failover-strategy: region
  archive:
    fs:
      dir: hdfs://cdh1:8020/flink-2.0/completed-jobs // 这个必须配置

2:

historyserver:
  web:
    # The address under which the web-based HistoryServer listens.
    address: 0.0.0.0
    # The port under which the web-based HistoryServer listens.
    port: 8082
  archive:
    fs:
      # Comma separated list of directories to monitor for completed jobs.
      dir: hdfs://cdh1:8020/flink-2.0/completed-jobs
      # Interval in milliseconds for refreshing the monitored directories.
      fs.refresh-interval: 10000

总结:

1:jobmanager.archive.fs.dir: hdfs://cdh1:8020/flink-2.0/completed-jobs

2:historyserver.web.address: cdh1
2:historyserver.web.port: 8082
2:historyserver.archive.fs.dir: hdfs://cdh1:8020/flink-2.0/completed-jobs
2:historyserver.archive.fs.refresh-interval: 1000
./historyserver.sh start

1. jobmanager.archive.fs.dir: hdfs://cdh1:8020/flink-2.0/completed-jobs

含义: 这个参数指定了JobManager用于存储作业完成后的归档日志的HDFS目录。当Flink作业完成后,其日志和状态信息会被归档到这个指定的HDFS路径下,以便后续的分析和审计。

用途:

  • 日志归档:确保作业执行后的日志和状态信息不会立即被删除,而是被安全地存储在HDFS上。
  • 审计和调试:在需要时,可以从HDFS上检索这些归档的日志,用于审计作业的执行情况或调试问题。

2. historyserver.web.address: cdh1

含义: 这个参数指定了Flink HistoryServer绑定的主机名或IP地址。HistoryServer是一个Web服务,用于展示Flink作业的历史记录,包括作业的图、状态、持续时间等信息。

用途:

  • 访问HistoryServer:用户可以通过浏览器访问这个地址(通常是http://:),来查看Flink作业的历史记录。
  • 作业监控:方便用户监控和分析作业的执行情况,包括作业的成功、失败、重启等信息。

3. historyserver.web.port: 8082

含义: 这个参数指定了Flink HistoryServer监听的端口号。用户需要通过这个端口来访问HistoryServer提供的Web服务。

用途:

  • Web服务端口:确保HistoryServer能够在一个特定的端口上监听HTTP请求,从而提供Web界面供用户访问。
  • 配置防火墙和安全组:在配置网络防火墙或安全组时,需要确保这个端口是开放的,以便外部用户能够访问HistoryServer。

4. historyserver.archive.fs.dir: hdfs://cdh1:8020/flink-2.0/completed-jobs

含义: 这个参数与jobmanager.archive.fs.dir类似,但它专门用于HistoryServer。它指定了HistoryServer用于读取作业归档日志的HDFS目录。HistoryServer会从这个目录中读取作业的历史记录,并在Web界面上展示。

用途:

  • 历史记录读取:确保HistoryServer能够找到并读取作业的历史记录,以便在Web界面上展示给用户。
  • 数据一致性:确保JobManager和HistoryServer使用相同的HDFS目录来存储和读取作业的历史记录,以保持数据的一致性

5. historyserver.archive.fs.refresh-interval: 1000

含义:这个参数指定了HistoryServer刷新HDFS上作业归档日志的间隔时间(以毫秒为单位)。在这个时间间隔内,HistoryServer会定期检查HDFS上的归档日志目录,以获取最新的作业历史记录。

用途:

  • 实时性:确保HistoryServer能够及时地获取到最新的作业历史记录,并在Web界面上展示给用户。
  • 性能调优:通过调整这个参数,可以在实时性和系统性能之间找到一个平衡点。如果设置得太短,可能会增加HDFS的访问压力;如果设置得太长,则可能导致用户无法及时看到最新的作业历史记录。
    在这里插入图片描述
    在这里插入图片描述

具体日志可以去这两个文件查看 flink/log下

 flink-root-historyserver-0-cdh1.log
 flink-root-historyserver-0-cdh1.out
### 配置和使用 Flink CDC 3.0 与 RDS 数据源 #### 关于 Flink CDC 版本演进 Flink CDC 的发展经历了多个版本,在早期版本中,为了确保数据的一致性,默认情况下会采用全局锁机制来处理变更数据捕获过程中的事务隔离问题[^1]。然而这种做法可能会带来性能上的瓶颈以及潜在的应用hang住风险。随着技术的进步,Flink CDC 2.0引入了新的设计思路,特别是针对MySQL这类关系型数据库的支持进行了优化改进[^2]。 对于最新版即Flink CDC 3.0而言,其进一步增强了对多种主流云服务提供商所托管的关系型数据库(如AWS RDS)的支持能力,并且通过一系列技术创新实现了更高效稳定的数据同步体验。 #### 如何配置 Flink CDC 3.0 和 AWS RDS MySQL 实例连接 要实现这一目标,需遵循如下指南: - **环境准备** - 确认已安装并配置好 Apache Flink 环境。 - 下载适用于特定版本的 `flink-sql-connector` JAR 文件,可以从官方GitHub仓库获取对应版本资源文件[^3]。 - **创建 Debezium Connector JSON 配置** ```json { "name": "rds-mysql-source", "config": { "connector.class": "io.debezium.connector.mysql.MySqlConnector", "database.hostname": "<your-rds-endpoint>", "database.port": "3306", "database.user": "<db-user>", "database.password": "<db-password>", "database.server.id": "184054", "database.include.list": "<target-database-name>", "table.whitelist": "<schema>.<tablename>", "database.history.kafka.bootstrap.servers": "localhost:9092", "database.history.kafka.topic": "history-topic" } } ``` 请注意替换 `<...>` 占位符为实际参数值。 - **启动 Flink SQL Client 并加载必要的依赖库** ```bash ./bin/sql-client.sh embedded -j /path/to/flink-sql-connector-flink-cdc-x.x.x.jar ``` 这里 `/path/to/` 应指向下载好的JAR包路径;而 `-j` 参数用于指定外部插件的位置。 - **定义输入表结构并通过 DDL 创建逻辑视图** ```sql CREATE TABLE rds_mysql_table ( id BIGINT, name STRING, age INT, ts TIMESTAMP(3), WATERMARK FOR ts AS ts - INTERVAL '5' SECOND ) WITH ( 'connector' = 'mysql-cdc', 'hostname' = '<your-rds-endpoint>', 'port' = '3306', 'username' = '<db-user>', 'password' = '<db-password>', 'database-name' = '<target-database-name>', 'table-name' = '<schema>.<tablename>' ); ``` 以上SQL语句展示了如何基于之前设置好的Debezium connector配置信息构建一个名为 `rds_mysql_table` 的虚拟表格对象,它可以直接参与到后续ETL流程当中去。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值