我正在一個項目中接收大約10個文件,每個文件包含大小爲200GB的文件。我的項目要求是從每個文件中提取數據,並與其他文件進行連接並提取數據。Java中的大數據處理
E.G像我有文件1.txt我有帳戶ID和我有文件2.txt,我有帳戶ID和帳戶名稱。根據第一個文件的帳戶ID我需要從第二個文件提取數據。
這樣我需要對10個文件中的每一個執行操作並創建最終的輸出文件。
我目前正在Java中這是真正花時間的過程。大約需要4到5個小時。
我可以通過改變來提高我的表現嗎?是否有任何技術或任何工具或框架,我可以與Java集成並提高我的表現?
我已經使用了以下方法。
1)Apache Drill-我正在執行連接查詢 結果:由於文件大小過大,Drill會拋出Drillbit異常。
2)Apache Beam-我正在使用並行處理來加入文件。 結果:它在組合功能下給我Out Out Memory異常。
我正在從hadoop讀取這些數據。
爲什麼你需要使用Java下載本地處理的數據?你能用Hive這樣的工具直接處理數據嗎? –
您是否增加了梁執行器或鑽頭堆大小? Hive,Spark或Pig都是大多數hadoop發行版中的典型工具 –
請包含您的Beam代碼並說明您使用的是哪個版本的Beam SDK和哪個亞軍。 – jkff