-
Notifications
You must be signed in to change notification settings - Fork 0
Instalace
- Git : (1)(2)
- Python 3.7 a 3.5 : (1) a (2)
- Pip3 instalátor dependencies : (1)(2)
- Mongo DB - např. cez docker : (1)(2)
- Shellová konzole : (1)
- Gzip>=1.6 : (1)
- pracujúce napojenie na storage : (1)
Opt:
- Screen : (1)
#Naklonuj repo
git clone https://github.com/WebarchivCZ/grainery.git
#Nainstaluj dependencies pre Extarc a Web Applikáciu
cd grainery
pip3 install requirements.txt
- pro extarc musí byt v stejný zložce i python mod
Aplikace používa nezapouzdřený shellový dotazování, k zjednodušenému běhu, co může být problém v nezabezpečených sítích, případne připojení cez slabo zašifrované tunely. Modifikace příkazů, pomocí command injection, typu "rm -rf /" alebo iných, rafinovanejších kousků kódu může mít nedozírne následky, i když je vaše úložište jenom read-only.
Púštaj nad úložišťom len lokálne vnútry zabezpečenej, alebo izolovanej siete
Pro minimalizaci rizik ( #3) With great power comes great responsibility) je třeba pouštět aplikaci pod uživatelem, který není root a ideálně ani sudoer. V nasledujícich releasech plánujem uvést automatizovanú verzi spuštení, která poběží pod servisním účtem.
-
Systém produkce a způsob komprese warců Běh programu potřebuje poměrně malou cache, avšak záleží na dimenzování warců a jejich kompresi. Aplikace vychádzi z aproximace 1 warc 10 GB, které sou následně komprimovaný Gunzipem. V případě jinýho kompresního formátu, bude muset uživatel změnit příkaz k čtení vnitru programu.
-
Úložiště a pásmo Nedílnou podmínkou je dostupnost úložiště a pásmový rozsah (v poměru k prostředkům přideleným Extarcu), který umožní pracovat s danou kvantitou, aby prostředky nebyly čerpány zbytečně. Program je však navržen minimalisticky, a teda není třeba mu vyčlenit pásmo, které se ani zdaleka podobá indexačním procesům.
-
Konfigurace paměti a procesoru Pamět stačí 2GB RAM. Program sa dá klidně spustiť i lokálně na NB, ale viď výše, jenom pro testovací účely. Ideál pouštění na serveru s min. 8-16 GB RAM na (několika) osmi jádrů (eg. Intel Xeon E5-26xx, v4+), pro vyšší rychlost. Při přidelení nižších prostředku může hezky běžet na pozadí.
-
Konexe na instanci MongoDB Systém na kterém běží Extarc musí mít konexi na cílovou databázi. Komunikace ráta s defaultním portem 27017, který musí být povolen i na systémový úrovni. V inom případě sa to musí deklarovat v aplikaci. V připadě instance na jinom serveri se musí nastavit průchodnost spojení, podle vlastní síťový konfigurace.
docker
#copy extarc to top directory of your archive
cp ./extarc /archive/mightyTopFolder
cd /archive/mightyTopFolder
#(1)run in background via bg
python3 Extarc.py > ExtarcYYYYMMDD-folder.log &
disown -h %1
jobs # for controll
#(2)run in background either via screen
screen
python3 Extarc.py > ExtarcYYYYMMDD-folder.log
screen -d
# opakuj nad top adresármi obsahujúcimi warc, cdx, crawl logy, linuxfixity
# spojení disparátnich úložišť je otázkou revize
- Grainery je aplikace postavená na frameworku Flask, který je napsaný v Pythonu a je testovaný na Pythonu 3.7.0
- Grainery ke svému chodu vyžaduje MongoDB, nejprve vytvořte databázi grainery a v ní tři kolekce: harvest, container, cdx
- Dalším krokem je vytvoření indexu pro full textové vyhledávání v kolekci harvest. Vytvoření indexu v Mongo shellu
set db grainery
db.harvest.createIndex( { "harvest.name": "text", "harvest.harvestID": "text" } )
-
Připojení aplikace k MongoDB se nastavuje v config souboru frontend/config/config.py (při první instalaci přepište
config_default.py
naconfig.py
) -
Dále potřebuje k chodu Python balíčky uvedené v souboru requirements.txt, instalace na MacOs pomocí PIPu
pip3 install -r requirements.txt
Grainery má defaultně nastavenou produkční konfiguraci, v případě potřeby je to možné změnit v souboru app.py, kde se přepíše řádek Configuration = cfg.ProductionConfig
na Configuration = cfg.DevelopmentConfig
Postup extrakce provozních metadat
Grainery frontend