2012-05-02 2 views
2

J'utilise outils MAPI (Son lib Microsoft et .NET), puis apache TIKA bibliothèques pour traiter et extraire le pst du serveur d'échange, n'est pas évolutif.comment traiter/extrait .pst usig Hadoop Carte réduire

Comment puis-je traiter/extraire pst en utilisant MR way ... Y at-il un outil, bibliothèque disponible en java que je peux utiliser dans mes travaux MR. Toute aide serait complète.

Jpst Lib utilise en interne: PstFile pstFile = new PstFile(java.io.File)

Et le problème est pour Hadoop API « s nous n'avons rien près de java.io.File.

option suivante est toujours là, mais pas efficace:

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

probablement pas ... –

+0

Pour ce faire d'une manière Map/Reduce, vous devez être en mesure de diviser le PST fichier en petits morceaux, de sorte que les nœuds individuels peuvent traiter leur partie. Je ne suis pas sûr que le format de fichier PST le supporte bien? – Gagravarr

Répondre

2

Jetez un oeil à Behemoth (http://digitalpebble.blogspot.com/2011/05/processing-enron-dataset-using-behemoth. html). Il combine Tika et Hadoop.

J'ai également écrit par mes propres travaux de Hadoop + Tika. Le modèle est:

  1. Enveloppez tous les fichiers pst dans des fichiers séquentiels ou avro.
  2. Ecrivez un travail de carte uniquement qui lit les fichiers pst à partir des fichiers avro et l'écrit sur le disque local.
  3. Exécutez tika sur les fichiers.
  4. Ecrire la sortie de tika retour dans un fichier de séquence

espoir que help.s

+0

Comment le mappeur individuel reconnaîtra le format d'entrée en tant que fichiers pst? et comment cela va-t-il les extraire? – Yogesh

+0

@Yogesh lorsque vous placez les fichiers dans un fichier seuqnce envelopper une structure de données, j'utilise Avro et simplement ajouter un champ d'en-tête avec le type mime (que je reçois de Tika) dans le cadre du processus d'emballage. Cette première étape n'est pas un travail de MR, à cause du petit problème de fichiers dans Hadoop. Je vous recommande vivement de jeter un coup d'œil sur le code Behemoth, c'est un bon exemple à partir duquel commencer. –

0

Ce ne est pas possible de traiter le fichier PST dans le mappeur. après une longue analyse et un débogage, il a été découvert que l'API n'est pas exposée correctement et que l'API a besoin du système localfile pour stocker le contenu pst extrait. Il ne peut pas directement stocker sur HDFS. C'est le goulot. Et toutes ces API (bibliothèques qui extraient et traitent) ne sont pas gratuites.

ce que nous pouvons faire est d'extraire HDFS à l'extérieur et nous pouvons traiter dans des emplois MR

Questions connexes