Dear all,
我目前有个Flink job,执行完所有业务逻辑后生成了一些业务数据,然后将这些数据以ORC格式写到hdfs上,并调用hive api
将orc文件load到Hive表,至此flink job的工作结束。
后面,其他Java定时程序做Mapreduce,对上一步写进hive的数据进行后续操作。
现在升级了Flink版本,Flink可以直接操作hive,不再依赖于Mapreduce。
但这样一来,是不是需要两个flink job ,一个用来生成业务数据,一个用来操作hive 来处理这些业务数据
因为两个job的执行环境不一样,如果不操作hive,是这样的操作环境
StreamExecutionEnvironment env =
StreamExecutionEnvironment.getExecutionEnvironment();
....
env.execute("my job");
如果操作hive,就需要构造这样的操作的环境
EnvironmentSettings settings =
EnvironmentSettings.newInstance().inBatchMode().build();
TableEnvironment tableEnv = TableEnvironment.create(settings);
......
tableEnv.executeSql(hql);
有没有什么通用的方案,让这两个job合二为一呢?我想要的效果时,当生成完业务数据后,直接操作hive,取代mapreduce的工作。
-----
Thanks!
Jacob
--
Sent from:
http://apache-flink.147419.n8.nabble.com/
Thanks!
Jacob