2012-05-02 51 views
2

我使用MAPI工具(其微軟lib和.NET中),然後阿帕奇TIKA庫來處理和從Exchange Server,提取PST這不可擴展。如何處理/提取的.pst USIG的Hadoop地圖降低

如何使用MR方式處理/提取pst ...是否有任何工具可用於Java,我可以在MR作業中使用它。任何幫助都會很棒。

Jpst庫內部使用:PstFile pstFile = new PstFile(java.io.File)

而且問題是Hadoop的API的我們沒有任何接近java.io.File

以下選項是永遠存在的,但效率不高:

​​
+0

可能不是... –

+0

要做到這一點在的Map/Reduce的方式,你需要能夠分裂PST文件分成小塊,所以單個節點可以處理它們的部分。我不確定PST文件格式是否支持? – Gagravarr

回答

2

看看巨獸(http://digitalpebble.blogspot.com/2011/05/processing-enron-dataset-using-behemoth。 HTML)。它結合了Tika和Hadoop。

我也寫過自己的Hadoop + Tika作業。模式是:

  1. 將所有pst文件包裝爲序列或avro文件。
  2. 只寫作一個地圖,讀取pst文件形成avro文件並將其寫入本地磁盤。
  3. 在文件中運行tika。
  4. 寫蒂卡的輸出反饋到一個序列文件

。希望help.s

+0

個人映射器如何將輸入格式識別爲pst文件?然後它將如何提取這些? – Yogesh

+0

@Yogesh當你把文件放到一個seuqnce文件中時,它包含了一些數據結構,我實際上使用Avro,並簡單地添加一個帶有mime類型(我從Tika獲得)的標題字段作爲包裝過程的一部分。由於Hadoop中的小文件問題,第一步不是MR作業。強烈推薦你看看Behemoth代碼,這是一個很好的例子。 –

0

它不可能處理中映射的PST文件。經過長時間的分析和調試,發現API沒有正確公開,這些API需要本地文件系統來存儲提取的pst內容。它直接不能存儲在HDFS上。那是瓶頸。所有這些API(提取和處理的庫)都不是免費的。

什麼我們能做的就是提取外HDFS,然後我們就可以在MR作業處理