0
我有我的火花應用以下方法:在星火任務創建新S3客戶端實例
private def downloadChunk(sitemChunk : DataChunk) : String = {
val s3Client = new AmazonS3Client()
val fileName = s3Client.getObject(....)
fileName
}
這基本上是當它在星火任務被執行下載從S3文件,
val mydata = sc.parallelize(listOfChunks)
mydata.map(x => downloadChunk(x)).collect
我擔心我爲每個任務創建s3Client的新實例,有沒有更好的方法?
正在使新的客戶端實例成爲最耗費資源的操作嗎?如果downloadChunk可以在不同的執行程序(即集羣節點)上運行,您還有什麼其他選擇? – Bunyk
s3Client已經有一些連接池本身來重新使用http連接,重新使用相同的實例就足夠了,但不知道這是否可以在執行器中工作。 – egovconcepts