开发者社区 问答 正文

flink sql 客户端连接hive 3.1.0出现connection refused异常

flink版本1.12.2 ,在交互式界面执行flink sql 连接hive操作时,出现连接拒绝异常,内容如下: Flink SQL> use catalog myhive;

Flink SQL> show tables; dim_kcl_customer_source_1h_all mytest

Flink SQL> select * from dim_kcl_customer_source_1h_all limit 10; 2021-04-14 10:22:24,451 WARN org.apache.hadoop.hive.conf.HiveConf [] - HiveConf of name hive.hook.proto.base-directory does not exist 2021-04-14 10:22:24,452 WARN org.apache.hadoop.hive.conf.HiveConf [] - HiveConf of name hive.strict.managed.tables does not exist 2021-04-14 10:22:24,452 WARN org.apache.hadoop.hive.conf.HiveConf [] - HiveConf of name hive.stats.fetch.partition.stats does not exist 2021-04-14 10:22:24,452 WARN org.apache.hadoop.hive.conf.HiveConf [] - HiveConf of name hive.heapsize does not exist 2021-04-14 10:22:24,466 INFO org.apache.hadoop.hive.metastore.HiveMetaStoreClient [] - Trying to connect to metastore with URI thrift://test-hadoop002:9083 2021-04-14 10:22:24,467 INFO org.apache.hadoop.hive.metastore.HiveMetaStoreClient [] - Opened a connection to metastore, current connections: 2 2021-04-14 10:22:24,468 INFO org.apache.hadoop.hive.metastore.HiveMetaStoreClient [] - Connected to metastore. 2021-04-14 10:22:24,468 INFO org.apache.hadoop.hive.metastore.RetryingMetaStoreClient [] - RetryingMetaStoreClient proxy=class org.apache.hadoop.hive.metastore.HiveMetaStoreClient ugi=hadoop (auth:SIMPLE) retries=24 delay=5 lifetime=0 2021-04-14 10:22:24,609 INFO org.apache.hadoop.hive.metastore.HiveMetaStoreClient [] - Closed a connection to metastore, current connections: 1 2021-04-14 10:22:25,057 WARN org.apache.hadoop.hdfs.shortcircuit.DomainSocketFactory [] - The short-circuit local reads feature cannot be used because libhadoop cannot be loaded. 2021-04-14 10:22:25,235 INFO org.apache.hadoop.mapred.FileInputFormat [] - Total input files to process : 1 [ERROR] Could not execute SQL statement. Reason:java.net.ConnectException: Connection refused

*表能查出来,执行sql语句时遇到拒绝连接,在hive里面执行同样的sql能查到数据,请问一下这块出现的问题是什么原因导致的呢。该如何排查**来自志愿者整理的flink

展开
收起
雪哥哥 2021-12-05 12:08:29 1290 分享 版权
阿里云 AI 助理回答

遇到这种连接拒绝异常,通常意味着Flink在尝试与Hive MetaStore或者HDFS建立连接时遇到了问题。根据您提供的日志信息,这里有几个可能的原因和排查步骤:

  1. Metastore连接问题:

    • 日志中显示了尝试连接到thrift://test-hadoop002:9083的记录,这表明Flink正在尝试通过Thrift协议访问Hive Metastore服务。出现连接拒绝可能是由于以下原因:
      • Metastore服务未运行:首先确认Hive Metastore服务是否在test-hadoop002节点上正常运行,并监听在9083端口。
      • 网络问题:检查从Flink作业运行的节点到test-hadoop002的网络连通性,包括防火墙设置、网络策略等是否允许该连接。
      • 配置不匹配:确认Flink SQL客户端或作业提交时使用的Hive Catalog配置(如URL、用户名、密码)是否正确无误。
  2. HDFS短路读取失败:

    • 日志中的警告“short-circuit local reads feature cannot be used”表明Flink在尝试使用HDFS短路读取功能时遇到问题,这通常是因为缺少必要的库文件或权限问题。
      • libhadoop加载问题:确保所有需要的Hadoop native库在Flink运行环境的路径中可用。这可能需要调整LD_LIBRARY_PATH或JAVA_LIBRARY_PATH环境变量。
      • 短路读取配置:检查Hadoop配置,确认短路读取相关的设置是否正确,比如dfs.client.read.shortcircuit是否开启且配置得当。
  3. 资源与权限:

    • 确保执行Flink任务的用户具有访问Hive Metastore和HDFS数据的权限。
    • 检查是否有资源限制,比如CPU、内存不足,导致连接初始化失败。
  4. 日志深入分析:

    • 查看更详细的Flink和Hive服务端日志,可能会有更多关于为何连接被拒绝的具体错误信息。
    • 如果是在集群环境中运行,查看YARN或Kubernetes的日志,了解容器启动过程中的任何潜在问题。
  5. 版本兼容性:

    • 虽然不是直接由日志提示,但不同版本的Hive、Hadoop与Flink之间可能存在兼容性问题。确认你使用的Flink 1.12.2与Hive及Hadoop的版本是经过测试的兼容组合。

综上所述,解决此问题需要从网络连接、服务状态、配置验证、权限检查以及系统日志分析等多个角度进行综合排查。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答