如何处理/提取的.pst使用Hadoop地图降低(How to process/extract .p

2019-09-16 23:29发布

我使用MAPI工具(其微软lib和.NET中),然后阿帕奇TIKA库来处理和提取交换服务器,这是不可扩展的PST。

我怎样才能使用MR的方式来处理/提取物PST ...是否有任何工具,库在Java中,我可以在我的MR作业使用可用。 任何帮助将是巨大的,充满。

Jpst库在内部使用: PstFile pstFile = new PstFile(java.io.File)

而问题是Hadoop的API的,我们没有任何接近java.io.File

下列选项是永远存在的,但效率不高:

  File tempFile = File.createTempFile("myfile", ".tmp");
  fs.moveToLocalFile(new Path (<HDFS pst path>) , new Path(tempFile.getAbsolutePath()) );
  PstFile pstFile = new PstFile(tempFile);

Answer 1:

看看巨兽(http://digitalpebble.blogspot.com/2011/05/processing-enron-dataset-using-behemoth.html)。 它结合提卡和Hadoop。

我也写了自己的Hadoop +提卡工作。 该模式是:

  1. 总结所有的PST文件到sequencence或Avro的文件。
  2. 写一个地图只有读取pst文件形成的Avro文件,并将其写入到本地磁盘的工作。
  3. 在整个文件运行蒂卡。
  4. 写蒂卡的输出反馈到一个序列文件

希望help.s



Answer 2:

它不可能在映射器处理PST文件。 长期分析和调试后,这是发现该API不正确曝光而那些API需要LOCALFILE系统来存储提取PST内容。 它在HDFS直接着店。 这就是瓶颈。 而所有这些API的(即提取和处理库)是不是免费的。

我们所能做的是提取外HDFS,然后我们就可以在MR作业处理



文章来源: How to process/extract .pst using hadoop Map reduce