Flink 1.12.0 sql 客户端查询配置单元 table

Flink 1.12.0 sql client queries hive table

我正在尝试使用 flink sql 客户端进行配置单元查询并修改 sql-client-defaults.yaml

  1. 选择执行类型为batch模式为:

    执行:

    planner: blink
    
    type: batch
    
  2. 定义配置单元目录并将当前目录设置为hive

    目录:

    - name: myhive
    
      type: hive
    
      hive-conf-dir: /software/apache-hive-2.3.7-bin/conf/
    
      default-database: default
    

然后我启动 sql 客户端:

sql-client.sh embedded

我可以看到配置单元数据库和表。

然后我做下表;

  1. use testdb; ---success
  2. select * from t1 limit 10; ---fail

第二步失败,出现以下异常:

Flink SQL> select * from t1;
2020-12-21 11:33:27,755 WARN  org.apache.hadoop.hive.conf.HiveConf                         [] - HiveConf of name hive.metastore.local does not exist
2020-12-21 11:33:28,599 INFO  org.apache.hadoop.mapred.FileInputFormat                     [] - Total input paths to process : 1
[ERROR] Could not execute SQL statement. Reason:
java.net.ConnectException: Connection refused

我会问如何修复 connection refused 异常

谢谢。

更新:

我启动flink单机集群后,查询成功。我会问

  1. 为什么要启动flink独立集群,我以为是本地模式的运行(我有sql客户端sql-client.sh embedded)

  2. 我可以在 yarn 集群上访问 sql 客户端吗?

sql 客户端依赖于能够向集群提交查询。 “嵌入式”是指这种架构,

其中 SQL 执行器嵌入在 SQL 客户端中。但是 Flink 集群仍然在 SQL 客户端外部。有关详细信息,请参阅 FLIP-24

为了将 SQL 客户端连接到非本地集群,SQL 客户端 YAML 有一个部署部分。您可以在那里使用常规的 flink 运行 选项并配置例如你的 YARN 会话集群。另见