Flink运行自带SocketWindowWordCount.jar报错Job failed 和 Connection refused (Connection refused)

本文分析了Flink运行SocketWindowWordCount.jar时出现'Job failed'和'Connection refused'错误的三个原因:未正确配置环境、端口号冲突以及HDFS配置问题。通过修改配置、选择不同端口、调整HDFS地址以及保存数据到本地,解决了这些问题。官方文档的示例在某些情况下可能需要在不同节点上解压并运行Flink来避免此类错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一个原因:没有

nc -l 9000

的情况下直接执行了这句话 

./bin/flink run examples/streaming/SocketWindowWordCount.jar --port 9000

第二个原因:端口号最好换一个,如果配置了连接hdfs的话

第三个原因:其实因为你配置了hdfs环境的原因,仔细想想,你是不是修改了

vim conf/flink-conf.yaml

改成了这个样子:

说到这里想必大家都明白怎么回事了吧,接下来是官方的文档给出的demo:

object SocketWindowWordCount {

    def main(args: Array[String]) : Unit = {

        // the port to connect to
        val port: Int = try {
            ParameterTool.fromArgs(args).getInt("port")
        } catch {
            case e: Exception => {
                System.err.pri
### Flink 中 `Java.net.ConnectException` 的解决方案 当在 Flink 集群运行过程中遇到 `java.net.ConnectException: Connection refused` 错误时,通常表明客户端尝试连接到某个服务器或服务端口失败。以下是可能导致此问题的原因及其对应的解决方法: #### 1. **检查 Hadoop YARN 配置** 如果错误涉及 HDFS 或者 YARN 资源管理器,则可能是由于配置文件中的主机名或 IP 地址不匹配引起的。确认以下几点: - 确保 `core-site.xml` 文件中指定的 NameNode 地址正确无误。 - 如果集群中有多个节点,请验证 `/etc/hosts` 文件是否正确映射了所有节点名称与其对应 IP 地址。 对于具体案例提到的 Call From 主机 A 到主机 B 失败的情况,可以参考如下命令测试连通性并排查防火墙设置[^2]: ```bash telnet <目标IP> <端口号> ping <目标IP> ``` #### 2. **JDBC 数据库连接参数校验** 针对 JDBC 表定义引发的异常(如引用描述),需重点核查以下几个方面[^3]: - 数据库 URL 是否指向实际存在的实例; - 使用正确的 MySQL Connector/J 版本号来适配所部署的目标数据库版本; - 用户账户权限授予范围覆盖所需操作对象表单; 示例修正后的 SQL 创建语句如下所示: ```sql CREATE TABLE sink_demo ( id INT PRIMARY KEY, name STRING, description STRING ) WITH ( 'connector' = 'jdbc', 'driver' = 'com.mysql.cj.jdbc.Driver', 'url' = 'jdbc:mysql://<真实DB_IP>:3306/<有效Schema>', 'username'='合法用户名', 'password'='安全密码', 'table-name' = '<存在表格>' ); ``` #### 3. **SSH 服务状态检测** 如果是通过 FinalShell 类似工具执行远程提交作业流程遭遇拒绝访问情形的话,那么很可能是 SSH daemon 尚未开启所致[^4]. 可按照下面步骤激活它: ```bash sudo systemctl start sshd.service sudo systemctl enable sshd.service ``` 另外还需留意 SELinux 政策模式设定以及 iptables 规则是否存在阻碍外部请求的因素. #### 4. **环境变量调整** 有时即使上述条件均满足仍会碰到此类状况, 此刻不妨试着修改某些系统级属性试试看效果如何? 比方说把 JAVA_LIBRARY_PATH 加入 PATH 当中去或许有所帮助[^5]. ```bash export LD_LIBRARY_PATH=/path/to/native/libs:$LD_LIBRARY_PATH export JAVA_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_LIBRARY_PATH ``` 综上所述,处理这类网络层面的问题往往需要综合考虑多方面的因素才能彻底根除隐患所在。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值