如何使用hadoop Map reduce处理/提取.pst
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用hadoop Map reduce处理/提取.pst相关的知识,希望对你有一定的参考价值。
我正在使用MAPI工具(它的微软lib和.NET),然后使用apache TIKA库来处理和从交换服务器中提取pst,这是不可扩展的。
如何使用MR方式处理/提取pst ...是否有可用于我的MR作业的java中可用的工具库。任何帮助都会非常充实。
Jpst Lib内部使用: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);
看看Behemoth(http://digitalpebble.blogspot.com/2011/05/processing-enron-dataset-using-behemoth.html)。它结合了Tika和Hadoop。
我也写过自己的Hadoop + Tika工作。模式是:
- 将所有pst文件包装到序列或avro文件中。
- 编写仅映射作业,从avro文件读取pst文件并将其写入本地磁盘。
- 在文件中运行tika。
- 将tika的输出写回序列文件
希望有帮助
它无法在mapper中处理PST文件。经过长时间的分析和调试后发现API没有正确暴露,那些API需要localfile系统来存储提取的pst内容。它直接无法存储在HDFS上。那是瓶颈。所有这些API(提取和处理的库)都不是免费的。
我们能做的是从hdfs外部提取,然后我们可以处理MR工作
以上是关于如何使用hadoop Map reduce处理/提取.pst的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 map reduce 的情况下使用 lzo 压缩写入 hadoop hdfs
使用 Hadoop Map reduce 处理和拆分大数据?