我們正在創建一個類似於Hadoop和Hive應用程序的字典。 一般過程是針對大型固定字典(大約100G,如多語言WordNet字典)對億萬條日誌數據(例如單詞)進行批量掃描。用於處理非常大的字典文件的Hadoop/Hive分佈式緩存的替代解決方案?
我們已經有一個Java應用程序的單機版本(我們稱之爲「singleApp」)來查詢此字典。我們目前無法修改這個Java應用程序或字典文件,因此我們無法重新設計和重新編寫一個完整的新MapReduce應用程序。我們需要使用這臺單機版Java應用程序作爲構建模塊將其擴展到MapReduce版本。
目前,我們可以通過調用這個「singleApp」創建一個MapReduce應用程序,並使用分佈式緩存傳遞一個字典子集(例如1G字典)。但是,如果我們使用完整字典(100G),應用程序啓動非常緩慢。此外,我們確實希望將這些字典安裝到Hadoop集羣中,而不必每次使用-file或分佈式緩存選項進行調用。
我們試圖將字典文件直接複製到從節點的本地磁盤中,並將java應用程序指向它,但找不到字典。如果我們想要在這種方法上進行更多調試,那麼需要完成哪些任務的文檔?
關於什麼應該是我們處理這種情況的最佳實踐/過程(非常大的字典文件,並且傾向於始終安裝字典文件)的任何建議?
嗨,Basit,感謝您的幫助。我們的輸入數據可能是10TB +,字典數據是100G +。我關心的是分佈式緩存的性能,如果我們把這個100G + dict文件放入分佈式緩存中的話。 – bigblue
您在緩存中加載100G +數據的權利?不是10TB +。 –
而我已經看到緩存運行的每個集羣都有200GB內存的6個集羣:) –