1:现象描述

flink standalone集群通过8081web页面提交任务,可以正常运行,
用flink run 命令提交提示:
Caused by: org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannel$AnnotatedConnectException: 拒绝连接: /101.120.102.147:27210
Caused by: java.net.ConnectException: 拒绝连接

2: 解决方式

1:查询 ipv4/ipv6
[root@localhost-03 ~]# netstat -nlutp | grep 8081
tcp6       0      0 :::8081                 :::*                    LISTEN      3075396/java        
[root@hatc-03 ~]# netstat -nlutp | grep 6123
tcp6       0      0 :::6123                 :::*                    LISTEN      3075396/java
此时端口正常都指向tcp6

2:可能的原因
Flink 命令行工具使用 Netty 异步 HTTP 客户端​ 连接 REST API。当它尝试连接时:
发起一个非阻塞连接请求
连接状态变为 EINPROGRESS(进行中),但连接从未完成建立.
IPv6 地址解析问题
系统返回 ::ffff:10.120.92.47(IPv4映射的IPv6地址)
Netty 客户端在处理这种"混合地址"时可能有 bug

// flink 使用异步的 Netty 客户端
Bootstrap b = new Bootstrap();
b.group(eventLoopGroup)
 .channel(NioSocketChannel.class)
 .handler(new ChannelInitializer<SocketChannel>() {
     @Override
     public void initChannel(SocketChannel ch) {
         // 异步处理器
     }
 });
 
// 发起异步连接
ChannelFuture f = b.connect(host, port);  // 这里可能卡住
f.sync();  // 等待连接完成 ← 可能在这里超时/卡住

curl 使用简单直接的 IPv4 连接,避开了这个问题

执行:

strace -f -e trace=connect ./bin/flink list 2>&1 | grep -A2 -B2 "connect"

显示:[pid 3246233] connect(28, {sa_family=AF_INET6, sin6_port=htons(8081), … inet_pton(AF_INET6, “::ffff:101.120.102.147”, &sin6_addr) …}

连接的是 IPv6 地址 ::ffff:10.120.92.47(IPv4映射的IPv6地址)

解决方案1:

备份原文件

cp /etc/hosts /etc/hosts.backup

创建新的 hosts 文件,确保 IPv4 在前

cat > /etc/hosts << 'EOF'
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
101.120.102.147 hatc-03
EOF

刷新 DNS 缓存

systemctl restart systemd-resolved 2>/dev/null || true

解决方案2:

# 1. 上传 JAR
curl -4 -s -X POST -H "Expect:" \
  -F "jarfile=@/data/module/flink/jars/cngd_12_19.jar" \
  http://127.0.0.1:8081/jars/upload

# 会返回类似 {"filename":"cngd_12_19.jar","status":"success"}
# 复制 filename 的值
{"filename":"/data/soft/instance/flink-1.18.1/flink-web-upload/flink-web-upload/2207ff46-ed74-41c4-9f4b-80196496854b_cngd_12_19.jar","status":"success"}[root@hatc-03 sh]# 

# 2. 提交作业(替换 YOUR_FILENAME)
curl -4 -X POST "http://127.0.0.1:8081/jars/2207ff46-ed74-41c4-9f4b-80196496854b_cngd_12_19.jar/run" \
  -H "Content-Type: application/json" \
  -d '{
    "entryClass": "com.hatc.app.dwd.apply.grid.AirspaceActivityGridApp",
    "parallelism": 1
  }'

更多推荐