Skip to content

j0nnyyy/BA_Project

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BA_Project

BA_Project/log

Enthält Logdateien mit Daten zu den Ausführungszeiten der Spark-Applikationen.

BA_Project/shell-scripts

Kurze Shell-Skripte, um die Ausführung mehrerer Spark-Python-Skripte hintereinander zu ermöglichen

  • for_each_file.sh: Führt die angegebene Spark-Applikation für jeden Wikipedia-Dump durch
  • start_with_diff_cores.sh: Führt die angegebene Spark-Applikation mit verschiedener Anzahl von Kernen aus

BA_Project/spark/Python/mokoiaar:

Enthält die Dateien von Herr Mokoian, dem Ersteller des Original-Repositorys, von welchem dieses Repo geforked wurde. Dies ist erwähnenswert, da die von Herrn Mokoian verfassten Skripte halfen schnell ein Verständnis für Apache Spark zu erlangen. Zudem wurde das load_to_spark.py-Skript in etwas veränderter Form zum Laden der Wikipedia-Dumps verwendet.

Inhalt der ursprünglichen readme.md:

  1. Download Wikipedia-Dump file enwiki-*.xml.bz2 (https://dumps.wikimedia.org/enwiki/)
  2. Convert downloaded archived XML to JSON by executing xmlparse.py script
  3. after that it could be used for executing any of the script from spark directory

BA_Project/spark/Python/seitzjon:

Enthält die für diese Bachelorarbeit implementierten Skripte. Um die Spark-Skripte zu starten wird das spark-submit-Skript verwendet. Teilweise ist es notwendig andere Python-Skripte mit einzubinden. Dies erfolgt mit der --py-files Flag. Ein Aufruf für das author_similarity.py-Skript sieht beispielsweise wie folgt aus:

spark-submit --master spark://172.29.0.5:7077 --py-files /path_to_script_directory/jaccard_similarity.py /path_to_script_directory/author_similarity.py --filecount 3 --maxval 0.9

Im Folgenden sind nun alle Skripte mit ihren Parametern aufgelistet:

  • active_inactive_count.py: Ermittelt für jeden Wikipedia-Dump die Anzahl der Benutzer, welche "aktiv" waren, also eine bestimmte Anzahl an Revisionen verfasst haben, bzw. "inaktiv" waren.

  • article_categories_per_similarity.py: Erstellt Histogramme zur Jaccard-Distanz der Kategorien von Nutzergruppen bestimmter Jaccard-Distanz.

    Parameter:

    • --filecount: Anzahl der zu ladenden Dateien
    • --filenumber: Dateinummer der zu ladenden Daten
  • article_correlation.py: Erstellt ein Histogramm zur Pearson-Korrelation von Artikelverläufen sowie Histogramme zur Jaccard-Distanz von Artikelgruppen bestimmter Korrelation.

  • article_similarity.py: Erstellt Histogramme zur Jaccard-Distanz von Artikeln.

    Parameter:

    • --filecount: Anzahl der zu ladenden Dateien
    • --filenumber: Dateinummer der zu ladenden Datei
    • --mode: Steuert Berechnung der Jaccard-Similarität oder Distanz (Werte: sim, dist (default))
    • --jaccmethod: Steuert die benutzte Berechnungsmethode (Werte: cross: Crossjoin, hash: Min-Hashing (default))
    • --minval: Setzt den Minimalen Wert, welchen das Histogramm darstellt
    • --maxval: Setzt den Maximalen Wert, welchen das Histogramm darstellt
  • articles_per_author.py: Ermittelt die durchschnittliche Anzahl der Revisionen und Artikel eines Autors, sowie die zugehörige Standardabweichung.

  • articles_per_author_similarity.py: Berechnet die durchschnittliche Anzahl von Artikeln der Autorengruppen mit bestimmter Jaccard-Distanz.

    Parameter:

    • --filecount: Anzahl der zu ladenden Dateien
    • --filenumber: Dateinummer der zu ladenden Datei
  • author_correlation.py: Erstellt ein Histogramm zur Pearson-Korrelation von Autorenverläufen sowie Histogramme zur Jaccard-Distanz von Autorengruppen bestimmter Korrelation.

  • author_occurrences_per_hotspot.py: Erstellt ein Histogramm zur Häufigkeit des Auftretens von Autoren in Artikelhotspots sowie ein Histogramm, welches die Anzahl der Autoren bezüglich der Anzahl verschiedener Artikel, an welchen die Autoren an mindestens einem Hotspot beteiligt waren, darstellt.

  • author_similarity.py: Erstellt Histogramme zur Jaccard-Distanz von Autoren.

    Parameter:

    • --filecount: Anzahl der zu ladenden Dateien
    • --filenumber: Dateinummer der zu ladenden Datei
    • --mode: Steuert Berechnung der Jaccard-Similarität oder Distanz (Werte: sim, dist (default))
    • --jaccmethod: Steuert die benutzte Berechnungsmethode (Werte: cross: Crossjoin, hash: Min-Hashing (default))
    • --minval: Setzt den Minimalen Wert, welchen das Histogramm darstellt
    • --maxval: Setzt den Maximalen Wert, welchen das Histogramm darstellt
  • author_title_distribution.py: Ermittelt das Verhältnis der Autorenanzahl zur Artikelanzahl in den einzelnen Dateien.

  • authors_per_article.py: Berechnet die durchschnittliche Anzahl der Autoren zu einem Artikel.

  • authors_per_article_similarity.py: Berechnet die durchschnittliche Anzahl der Autoren zu Artikelgruppen mit bestimmter Jaccard-Distanz.

  • avg_revisions_per_month.py: Ermittelt die durchschnittliche Anzahl von Revisionen pro Monat, beginnend beim 1.1.1970

  • category_hotspots.py: Erstellt ein Histogramm zur Jaccard-Distanz zwischen Artikelhotspots und den Hotspots der zugehörigen Kategorien.

  • cross_hash_difference.py: Ermittelt den Unterschied der Werte der Jaccard-Distanz bei manueller Berechnung und Min-Hashing.

    Parameter:

    • --filenumber: Dateinummer der zu ladenden Datei
    • --filter: Bestimmt, welche Werte betrachtet werden sollen (Werte: only_similar, only_non_similar)
    • --samples: Anzahl der verwendeten Samples
  • cross_hash_time_comparison.py: Ermittelt die Laufzeiten der manuellen Jaccard-Distanz-Berechnung und des Min-Hashing Ansatzes auf denselben Daten.

    Parameter:

    • --filenumber: Dateinummer der zu ladenden Datei
    • --samples: Anzahl der verwendeten Samples
  • global_hotspots.py: Ermittelt die Anzahl von Revisionen in bestimmten Intervallen seit dem 01.01.1970.

    • --filecount: Anzahl der zu ladenden Dateien
    • --filenumber: Dateinummer der zu ladenden Datei
    • --windowsize: Größe des betrachteten Zeitintervalls
    • --multiplier: Multiplikator für die Identifikation eines Hotspots
  • hotspot_correlation.py: Erstellt Histogramme zur Korrelation von Autoren- bzw. Artikelverläufen.

    Parameter:

    • --filecount: Anzahl der zu ladenden Dateien
    • --filenumber: Dateinummer der zu ladenden Datei
    • --compare: Gibt die zu vergleichenden Werte an (Werte: author, article)
  • hotspot_count.py: Erstellt ein Histogramm welches die Anzahl der Artikel/Autoren mit bestimmter Hotspotanzahl darstellt.

    Parameter:

    • --type: Gibt an ob Autoren- oder Artikelhotspots gezählt werden sollen (Werte: author, title)
  • hotspot_detection.py: Stellt Funtionen zur Hotspoterkennung bereit.

  • hotspot_weekly_vs_monthly.py: Erstellt ein Histogramm, welches Hotspots anhand des Zeitintervalls einer Woche und eines Monats vergleicht.

  • hotspots_per_category.py: Erstellt ein Histogramm, welches angibt, wie viele Kategorien eine bestimmte Hotspotanzahl besitzen.

  • hotspots_per_title_correlation.py: Erstellt ein Histogramm, welches die Anzahl von Artikel mit Artikelverläufen geringer Jaccard-Distanz darstellt.

    Parameter:

    • --filecount: Anzahl der zu ladenden Dateien
    • --filenumber: Dateinummer der zu ladenden Datei
  • jaccard_similarity.py: Stellt Funktionen für die Berechnung der Jaccard-Distanz zur Verfügung.

  • load_only.py: Ermittelt die Ausführungszeiten der Spark-Ladeoperation auf Basis der gegebenen Parameter.

    Parameter:

    • --filecount: Anzahl der zu ladenden Dateien
    • --schema: Gibt, sofern gesetzt, an ob ein Dateischema verwendet werden soll (Werte: jegliche Werte führen zur Ausführung mit vorgegebenem Dateischema)
  • load_to_spark.py: Stellt Funktionen zum Laden von Wikipedia-Dumps zur Verfügung.

  • performancetest.py: Ermittelt die Ausführungszeit verschiedener Spark-Transformationen.

    Parameter:

    • --filecount: Anzahl der zu ladenden Dateien
    • --cores: Anzahl der zu verwendenden Kerne
    • --same: Gibt an, ob Spark-Master und Spark-Slave auf einem Knoten laufen
  • similar_author_article_count.py: Ermittelt die Anzahl der Artikel von Autoren mit geringer Jaccard-Distanz.

    Parameter:

    • --filenumber: Dateinummer der zu ladenden Datei
  • sliding_window_hotspots.py: Erstellt ein Histogramm zum Verhältnis von Autoren zur Anzahl der Revisionen in Hotspots.

  • sql_to_json.py: Wandelt den categorylinks.sql-Dump in eine JSON-Datei um.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.2%
  • Other 0.8%