遇到的问题
一.flinkjob在命令行提交时main方法传参应该怎么写?
二.代码的config.properties和sit.properties的路径应该怎么写?
代码
```java
import org.apache.flink.api.java.utils.ParameterTool;
public class FlinkJobWithMultipleConfigs {
public static void main(String[] args) throws Exception {
//需要在main方法的args传参 envConfig=sit
String envConfig = ParameterTool.fromArgs(args).get("envConfig");
//config.properties 和sit.properties都在项目的src/main/resources文件夹下
ParameterTool parameterTool = ParameterTool.fromPropertiesFile("config.properties");
String envPropertiesFile = parameterTool.get(envConfig);
ParameterTool parameterToolEnv = ParameterTool.fromPropertiesFile(envPropertiesFile);
String hdfsNamenodeHost = parameterToolEnv.get("hdfs_namenode_host");
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
String mysqlHostname = parameterToolEnv.get("mysql_hostname");
}
}
# config.properties的配置信息
```java
sit=sit.properties
uat=uat.properties
prod=prod.properties
sit.properties的配置信息
# hdfs NN
hdfs_namenode_host=10.206.65.215
# mysql
mysql_url_redmoonoa9_sync=jdbc:mysql://10.206.66.214:3306/redmoonoa9_sync?useSSL=false&useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=GMT%2B8&useServerPrepStmts=false&rewriteBatchedStatements=true
mysql_hostname=10.206.66.214
mysql_port=3306
mysql_database_redmoonoa9_sync= redmoonoa9_sync
mysql_username=root
mysql_password=szc@OS-CLOUD8
报错
会报错找不到config.properties文件,程序启动时不是会默认加载src/main/resources文件夹的文件吗,为什么会报找不到文件的错
Exception in thread "main" java.io.FileNotFoundException: Properties file D:\idea_project\form_sync\config.properties does not exist
希望解决的问题
ParameterTool parameterTool = ParameterTool.fromPropertiesFile("config.properties");
这里应该怎么写?
之后在linux客户端启动这个flinkjob时
/opt/cloudera/parcels/FLINK/lib/flink/bin/flink run \
-t yarn-per-job \
-d \
-p 1 \
-DenvConfig=sit \ --这里main方法传参应该怎么写?还是涉及到config.properties和sit.properties配置文件应该怎么设置
...
-c com.lhjsdt.flink.sync.FlinkJobWithMultipleConfigs \
/opt/cloudera/parcels/FLINK/lib/flink/jobs/form_sync-1.0-SNAPSHOT.jar