3. 19 Crawlerů rozprostřených v klastru 3x VMware ESXi hostů
3x IBM BladeCenter HS2
Intel(R) Xeon(R) CPU E5-2640 0 @ 2.50GHz
3x 24 CPU / 200 GB RAM
20 - 43 virtuálů na jeden ESX host / sdílíme zdroje s jinými
aplikacemi
4. Řešení centrálního úložiště od IBM
GPFS (IBM Spectrum Scale), HSM / Tivoli storage
management (IBM Spectrum protection)
3x NFSv3 front-end server / drahé licence pro přímý zápis do
GPFS
Úložiště pro virtuály
Storwize ~20 TB
5. Konektivita
CESNET / Jsme partneři / můžeme využívat i jiné služby
No firewall
Crawlery mají volný přístup k internetu i k úložišti
6. Personální zajištění papírově
0,5 úvazku podpora oddělení archivace webu
0,5 úvazku Resolver
Personální zajištění reálněji
0,8 úvazku webarchiv.cz / + 3 legacy fyzické stroje
0,2 Resolver + Centreon/Nagios + Service Desk + whatever
Úložiště / Vsphere / Síť – 3 kolegové z NK
8. Retence souborů v HSM
45 dní se drží 3 verze souboru, 60 dní když se soubor smaže.
Divoký odhad obnovy: 2 hod / 1 TB / jen přenos, bez práce
admina
Vytváříme zpravidla archivní bitstream kopii loňského
archivu, nemáme offline kopii mimo datacentrum. Část
archivu postupně odléváme na CESNET.
9. Co je třeba dořešit
Nemáme žádný proces, zda nám nechybí nějaký soubor, ani
pravidelně nekontrolujeme md5 souborů v archivu.
Nemáme centrální seznam všech souborů na úložišti. Tj.
ARC/WARC/WATS/logs.tar.gz apod.
Nemáme automatizovanou metriku počtů WARC/ARC, natož
v nich obsažených digitálních objektů.
11. Konfigurace virtuálních strojů
crawler00 .. 18
4 CPU / 16 GB RAM / JAVA_OPTS = ”-Xmx13000m”
Heritrix 3.2 (latest stable) / stále vyvíjí IA
Oracle JDK 1.6 (JRE?)
SLES 11.3
20 GB systém
500 GB logy, reporty a hlavně stavy Heritrixu
12. Pozor!
/recrawl_history_state v řádu stovek GB
/state v řádu stovek GB
Ideálně 1 TB pro stavy Heritrixu při celoplošné sklizni.
/state jsme nakonec ukládali přes NFS na centrální
úložiště.
13. Vymoženosti
● paralelní sklizně v rámci aplikace / používáme zřídka
● sklizeň z více strojů najednou / celoplošné
● redukce duplicit při sklizni / vždy v rámci roku
● REST API pro běžné činnosti s Heritrixem
● sklízení webů s autentifikací / nepoužíváme
● navázání sklizně po pádu aplikace / používáme
● jemnost / při sklizni miliónů domén máme stížnosti v
řádu jednotek
● rozšiřitelnost / nemáme zkušenosti
14. Možnosti rozšíření
třída na sklízení RSS http://kris-sigur.blogspot.
sk/2015/03/implementing-crawlrss.html / chtěli bychom
otestovat
UK WA moduly https://github.com/ukwa/bl-heritrix-
modules
ExternalGeoLookup / Experimentovat s GeoLite2 dbs
ClamdScanner / pro processing ClamAv / jak naložit s
informací? stejně soubor archivujeme.
15. Malá poznámka
Heritrix 3 jsme zatím nepotřebovali sestavit, ale zkušenosti
s Open wayback nám říkají, že by sestavení mavenem
nemělo dělat problémy.
18. Crawler-beans.cxml
Používat verzovací systém
Overrides pro koncentraci nastavení v jednom bloku
konfiguračního souboru
Je vhodné některé konfigurační položky udržovat jako
oddělené plain texty (ie. seeds.txt, traps-regex.txt apod.) /
né vše se mi ale podařilo oddělit
21. Crawler-beans.cxml | Overrides
# Values changing with each crawl
metadata.jobName=Serials 2015-09-1M_6M_ArchiveIt
metadata.description=Pravidelná sklizeň semínek s měsíční a dvou měsíční frekvencí a archivace semínek s nízkou frekvencí
přidaných za minulý měsíc
warcWriter.prefix=Serials-2015-09-1M_6M_ArchiveIt
warcWriter.storePaths=/mnt/archives/archive14/2015/serials/Serials-2015-09_1M_6M_ArchiveIt
...
# INSPECT: There is change that balanceReplenishAmount doesnt work as expected IE: Crawl 5k URIs, and wait for other
seeds to crawl until 5k URIs - check FRONTIER
frontier.balanceReplenishAmount=5000
# YOUTUBE: Do you wanna save youtube videos?extractorYoutubeWatchPage.enabled=true
# DISTRIBUTED CRAWLING - if true, check if proper localName is set per Crawler and do not forget to mention how
many crawlers will join the party. →
hashCrawlMapper.enabled=false
...
# Stable values
metadata.operatorContactUrl=http://webarchiv.cz/kontakty/
metadata.operator=Rudolf Kreibich
metadata.operatorFrom=webarchiv@nkp.cz
metadata.organization=National Library of the Czech Republic - WebArchiv.cz
metadata.audience=WebArchiv.cz Users
metadata.userAgentTemplate=Mozilla/5.0 (compatible; heritrix/@VERSION@ +@OPERATOR_CONTACT_URL@)
metadata.robotsPolicyName=ignore
22. Crawler-beans.cxml | Frontier | queueTotalBudget
Vychozí stav je -1, tj. žádné omezení fronty pro n pokusů
o stažení URI z domény X.
15 000 pokusů při výběrové sklizně
5 000 pokusů při celoplošné sklizně
-1 při sklizni pro projekt NDK (Sklizeň se dimenzovala
na zabrání 200-250 TB)
Heritrix po 15 000 GET (dotazy na DNS se taky počítají)
požadavcích označí frontu např. Novinky.cz za
exhausted.
23. Crawler-beans.cxml | Frontier |
balanceReplenishAmount
Vychozí stav je 3000, používáme 5000
Heritrix realizuje 5000 GET pokusů, počká na ostatní
fronty a pak zařadí dalších 5000 GET pokusů dokud
nevyčerpá queueTotalBudget.
24. Crawler-beans.cxml | Simultánní sklízení z více strojů
Nejde o distribuovanou sklizeň v pravém slova smyslu,
19 strojů dostane stejnou řadu semínek, mezi sebou si
zašlou informace o tom které SURT bude který stroj
sklízet. Během sklizně si předávají informace o
objevených URI. Každý stroj sklízí svoje domény. Tj.
Při 1 mil. domén si každý z 20 strojů vezme 50 000
domén a sklízí je do vyčerpání.
25. Crawler-beans.cxml | Simultánní sklízení z více strojů
Odkomentovat třídu s processor.hashCrawlerMapper
Každý crawler dostane unikátní číslo začínající od 0,
crawlerCount definuje kolik Crawlerů se zúčastní
parády.
Nastavit cestu pro diversionDir na kterou vidí každý
Crawler, skrze kterou si předávají nalezené URI.
26. Crawler-beans.cxml | Simultánní sklízení z více strojů
Pokud Crawler havaroval, dodali jsme mu soubor
frontier-recover.gz do /action directory. Jakmile načetl
svoji frontu, pokračoval dál ve sklizni. Žádnou chybovou
hlášku co se týče diversionDir nevygeneroval.
27. Crawler-beans.cxml | Redukce duplicit při sklizni
https://webarchive.jira.com/wiki/display/Heritrix/Duplication+Reduction+Processors
13,657,243 downloaded + 228,671 queued = 13,885,914
total
1.9 TiB crawled (634 GiB novel, 1.2 TiB dupByHash, 0
B notModified)
28. Crawler-beans.cxml | Redukce duplicit při sklizni
https://webarchive.jira.com/wiki/display/Heritrix/Duplication+Reduction+Processors
Je třeba nastavit cestu kam se budou ukládat soubory s
informací o sklizených webech.
Uchováváme tuto informaci v rámci jednoho roku.
Porovnání pomocí SHA-1
Na našem githubu je legacy redukce duplicit, aktuální
máme interně v lokálním git repozitáři.
29. Crawler-beans.cxml | Redukce duplicit při sklizni
Nemáme otestováno, ale pro jistotu vypínáme.
sendIfModifiedSince = false
sendIfNoneMatch = false
30. Crawler-beans.cxml | Redukce duplicit při sklizni
Při opakovaných distribuovaných sklizních s historickým
stavem je v rámci roku dobré udržovat /state složku.
Crawlery si tak udržují stejné URL u sebe a pak k nim
odpovídá i složka s databází již stažených URL.
Je pak ale nemožné měnit počet Crawlerů v rámci roku.
31. Denní snění | Redukce duplicit po sklizni
Realizuje Alexandrijská knihovna, několika letý projekt.
Ingestoval bych všechny ARC/WARC do HDFS /
WARCBASE, každému dig. objektu přiřadili ID,
případně bral HASH jako ID a zaznamenal pod jakými
URLs se daný HASH nachází. Pro potřeby zpřístupnění
a další analýzy dostačující, archiv si bude držet duplicity.
32. Crawler-beans.cxml | Facebook, Twitter, Youtube
Otestovat, zda-li stále platí
https://webarchive.jira.
com/wiki/display/Heritrix/Facebook+and+Twitter+Scrol
l-down
https://webarchive.jira.
com/wiki/display/Heritrix/YouTube
36. Pro potřeby badatelů je třeba uchovat konfiguraci
Crawleru a informace o průběh sklizně
od konce roku 2013 ukládáme komplet /jobs bez
stavových informací. Tj. Reporty, logy apod.
39. Monitrix / https://github.com/ukwa/monitrix
Monitoring / Front-end pro Heritrix 3
Analytika probíhající sklizně / pravděpodobně agreguje jen
jeden stroj
ELK: ElasticSearch / Logstash / Kibana
25 miliónů řádek logů / 26 GB na disku / 4vCPU / 20 GB
RAM – otázka jak škálovat na celoplošné sklizně
40. Monitoring volného místa na předdefinovaných cestách -
stačí nakonfigurovat a odkomentovat třídu: “org.archive.
crawler.monitor.DiskSpaceMonitor” ve výchozí
konfiguraci. Pokud Heritrix překročí hodnotu pro
“pauseThresholdMiB”, zastaví se.
42. QA na konci sklizně
● proces na analýzu reportu na nesklizené weby a jejich
znovu sklizení
● proces pro analýzu objevených ale nesklizených URL
● na kontrolu sklizní speciální webů jako Youtube,
Facebook, Twitter
43. Oficiální dokumentace
https://webarchive.jira.com/wiki/display/Heritrix/Heritrix
User Guide for Heritrix 3.0 / 3.1
https://webarchive.jira.com/wiki/display/Heritrix/Heritrix+3.0+and+3.1+User+Guide
Heritrix API Guide
https://webarchive.jira.com/wiki/display/Heritrix/Heritrix+3.x+API+Guide#Heritrix3.xAPIGuide-
HeritrixRestletAPI
Vývoj konfigurace Heritrixu pro Webarchiv.cz
https://github.com/WebArchivCZ/Crawler-config/commits/master/Domain-crawls/crawler-beans.
cxml
Night buildy přímo z IA
https://builds.archive.org/job/Heritrix-3/
Úvod do Heritrixu od vývojáře první verze Heritrixu
https://webarchive.jira.com/wiki/download/attachments/5441/Mohr-et-al-2004.pdf