我已經寫了火花工作,這確實低於操作星火foreachpartition連接改進
- 從HDFS的文本文件中讀取數據。
- 執行distinct()調用來過濾重複項。
- 做一個mapToPair階段,併產生pairRDD
- 做一個reducebykey呼叫
- 做分組元組聚集邏輯。
現在請#5
這裏的foreach它
- 作出卡桑德拉分貝
- 呼叫創建一個AWS SNS和SQS客戶端連接
- 做一些JSON記錄格式。
- 發佈記錄SNS/SQS
當我運行這個工作它創建了三個階段的火花
第一階段 - 它需要近45秒。執行不同的 第二階段 - mapToPair和reducebykey =需要1.5分鐘
第三階段=需要19分鐘
我做了什麼
- 我關掉卡桑德拉調用,這樣看DB打的原因 - 這是以更短的時間 我發現
- 得罪一部分是創建SNS/SQS連接的foreach分區
其採取更多比整個工作時間的60%多
我在foreachPartition中創建了SNS/SQS連接,以減少連接。我們是否有更好的方法
我不能對駕駛員創建連接對象,因爲這些不是序列
我沒有使用5克執行人9號,executore核心15,司機2G內存,執行內存
我使用16芯64演出存儲器 簇大小1個主9從所有相同的結構 EMR部署火花1.6
你確定'創建一個AWS SNS和SQS客戶端連接 '正在60%的工作時間或'發佈記錄SNS/SQS'呢?這兩者之間略有不同。對於第一種情況,您需要最小化連接創建的數量,而對於第二種情況,您需要分配數據(並創建更多連接實例)。有趣!!!! – code
如果是第二種情況,我會用解決方案發布答案。 – code