您的位置:首页 > 其它

spark stream上创建对象实例

2017-06-06 15:00 288 查看
kafkaStream.foreachRDD { rdd =>

rdd.foreachPartition { partition =>
//每次在这里创建一个kafka producer实例是不可取的
}
}


上边的方式会造通过kafka producer发送的数据部分丢失.

应该用如下的方式, 下边的这种方式就不会造成数据的丢失:

kafkaStream.foreachRDD { rdd =>

rdd.foreachPartition { partition =>

var database = new File(geodataPath)

val producer = getKafka(kafkaMetaDataBrokerList)
}
}

var kafkaProducer:Producer = null

def getKafka(kafkaMetaDataBrokerList:String) = {

if(kafkaProducer == null){
kafkaProducer = new Producer(kafkaMetaDataBrokerList);
}
kafkaProducer
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: