Flink FlinkEnvBuilder
object FlinkEnvBuilder {
def initEnv(args: Array[String], parameterSize: Int) = {
val parameterTool: ParameterTool = ParameterTool.fromArgs(args)
if (parameterTool.toMap.size() != parameterSize) {
throw new RuntimeException("参数非法,参数列表为:jobName、bootstrap-server、topic、groupId、isSecurity、consumerStrategy、redis.hostname、redis.port")
}
// 创建运行环境
val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment
// 创建消费者
val s1: FlinkKafkaConsumer011[String] = KafkaClientBuilder.getKafkaConsumer(
parameterTool.get("bootstrap-server")
, parameterTool.get("topic")
, parameterTool.get("groupId")
, parameterTool.get("isSecurity")
, parameterTool.get("consumerStrategy"))
env.getConfig.setGlobalJobParameters(parameterTool)
(parameterTool, env, s1)
}
}
个人网站:shuoyizui.com
公众号:写个框架玩
近期在公众号会发布一系列文章,主要是想完成一个简化的MapReduce框架的编写。实现Mapreduce编程模型、任务远程提交、任务分配、任务执行等功能。设计到了动态代理、反射、网络通信、序列化、消息队列、netty、自定义类加载器、多线程、shell等技术点。