开发者社区> 问答> 正文

Flink 操作hive 一些疑问

我目前有个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的工作。*来自志愿者整理的flink邮件归档

展开
收起
CCCC 2021-12-02 14:48:24 595 0
1 条回答
写回答
取消 提交回答
  • 是说写数据的是一个流作业,读数据的是一个批作业么?*来自志愿者整理的FLINK邮件归档

    2021-12-02 16:04:07
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Hive Bucketing in Apache Spark 立即下载
spark替代HIVE实现ETL作业 立即下载
2019大数据技术公开课第五季—Hive迁移到MaxCompute最佳实践 立即下载