我在S3上有大量的日誌文件需要並行處理。我可能會丟棄我不需要的記錄,但除此之外,我只是將批次中的記錄插入到數據庫中。我不一定需要多個鍵/值對,所以我將單個鍵映射到所有記錄並將其傳遞給reducer。減速器只會對記錄進行批處理並進行數據庫調用。而不是在mapper中完成這一切是可行的?如果我只是需要將記錄插入到數據庫中,我需要還原器嗎?
0
A
回答
0
從你所描述的,是的,你可以在mapper中做到這一點。您可以收集一批記錄並確定何時有足夠的時間進行批量插入。方法cleanup()
可用於最終批次,您可能尚未收集完整批次並需要確保插入其餘記錄。
從映射程序執行此操作的一個問題是,您對同時運行的數量的控制較少,如果輸入拆分,它將基於數字。所以你們有很多人都試圖插入到數據庫中,但這可能是一個問題。使用減速器可以更好地控制運行的數量。
你不說你正在使用什麼數據庫。過去使用reducer的一個案例是使用分佈式數據庫(在這種情況下爲Accumulo),但這可能適用於HBase和Cassandra。
Accumulo平板電腦服務器分佈在hadoop羣集周圍。因此,一張桌子將被分成多個平板電腦。使用BatchWriter,您可以從映射器或縮減器中插入表格。但是,如果從映射程序執行此操作,插入本質上會隨機在羣集中寫入,這會導致更多的網絡流量和更多的壓縮。使用reducer,您可以獲取目標表的分割點並使用它們對數據進行分區。這會導致平板電腦的所有數據都以相同的縮減器結束。當您以這種方式分組數據時,從縮減器批量寫入會導致更快的插入。
相關問題
- 1. 爲可測試的控制器我需要UoW還是隻需要存儲庫?
- 2. 我還需要在芒果墓碑嗎?
- 3. 如果我需要數據庫視圖或不需要?
- 4. 我們需要導入React還是隻需{Component,PropTypes}會做?
- 5. Java - 我需要一個數據庫嗎?
- 6. 我需要使用vuex來記錄標記數據嗎?
- 7. 噸-的foreach =「文檔」只需要80條記錄,我需要的所有記錄
- 8. 我需要登錄表嗎?
- 9. 如果我使用fonts.com,還是需要woff或eot嗎?
- 10. 我需要用PHP解析XML插入到mysql數據庫
- 11. 我需要更新(如果存在)else將LINQ插入到SQL
- 12. 如果我使用node.js,我還需要隊列服務嗎?
- 13. 在將新記錄插入數據庫時,是否需要使用模型?
- 14. 如果我只需要1個物業(目前),我是否需要一個類?
- 15. 我可以只使用會話嗎?還是需要ACL?
- 16. Datacontext.SaveChanges()將不需要的記錄添加到數據庫中
- 17. 需要將我的結果記錄到單獨的文件
- 18. 我需要遷移到將我的數據庫鏈接到Django
- 19. 我需要在不同表格中插入2條記錄,
- 20. 我還需要將變量保存到光盤中嗎?
- 21. jBPM是我需要的嗎?
- 22. backbone.js是我需要的嗎?
- 23. 如果不需要數據庫,使用EJB3還是有好處
- 24. 我是否需要將值插入到SQL中的外鍵?
- 25. 如果我要在Perl中使用純OO,我需要Exporter嗎?
- 26. 應該將記錄器設置爲靜態還是不需要
- 27. 我需要將SQL Server 2000備份還原到SQL Server 2012
- 28. 使用Solr,我還需要SQL db嗎?
- 29. authlogic - 我還需要Rails會話嗎?
- 30. Cloudflare - 我還需要緩存嗎?