SlideShare a Scribd company logo
1 of 43
Download to read offline
Webarchiv
Provoz památníku českého webu, více
Infrastruktura pro sklizně
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
Ř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
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
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
Archiv / Záloha
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.
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ů.
Heritrix
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
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ě.
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
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.
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.
Heritrix konfigurace
Crawler-beans.cxml
Spring framework
Výchozí konfigurace je defakto out of box dostačující
pro celoplošné doménové sklizně
Je možné konfigurovat per domain pomocí sheets
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
Crawler-beans.cxml | Sheets
Definuje se okruh domén na které Sheets aplikovat
Sheet definuje jak se domény budou chovat
Crawler-beans.cxml | Sheets
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
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.
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.
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í.
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.
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.
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)
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.
Crawler-beans.cxml | Redukce duplicit při sklizni
Nemáme otestováno, ale pro jistotu vypínáme.
sendIfModifiedSince = false
sendIfNoneMatch = false
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.
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.
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
Průběh sklizně
2266 domén
Po sklizni
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.
Dobrá, ale ještě nezavedená
praxe
Immutable infrastructure
Crawlery jsou potřeba jen v okamžiku sklizně
Recrawl data, state, logy a reporty (tedy /jobs) uchovávat
mimo Crawler.
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ě
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.
Automatický checkpointing stačí odkomentovat patřičnou
část výchozí konfigurace
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
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

More Related Content

Similar to Infrastruktura památníku českého webu a zkušenosti s Heritrixem

V mware v_sphere_5_2011
V mware v_sphere_5_2011V mware v_sphere_5_2011
V mware v_sphere_5_2011Vladan Laxa
 
Czech Sun Training Day 2009 - Solaris
Czech Sun Training Day 2009 - SolarisCzech Sun Training Day 2009 - Solaris
Czech Sun Training Day 2009 - SolarisMartin Cerveny
 
RocDevs/PHPPrague - Proč by sakra někdo měl chtít dělat eshop?
RocDevs/PHPPrague - Proč by sakra někdo měl chtít dělat eshop?RocDevs/PHPPrague - Proč by sakra někdo měl chtít dělat eshop?
RocDevs/PHPPrague - Proč by sakra někdo měl chtít dělat eshop?Tomáš Strejček
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitněJiří Mareš
 
Postgresql na EXT3/4, XFS, BTRFS a ZFS
Postgresql na EXT3/4, XFS, BTRFS a ZFSPostgresql na EXT3/4, XFS, BTRFS a ZFS
Postgresql na EXT3/4, XFS, BTRFS a ZFSTomas Vondra
 
Czech Sun Training Day 2008 - Java Enterprise System
Czech Sun Training Day 2008 - Java Enterprise SystemCzech Sun Training Day 2008 - Java Enterprise System
Czech Sun Training Day 2008 - Java Enterprise SystemMartin Cerveny
 
Oracle Solaris Day 2013 - Oracle DB and OS Solaris
Oracle Solaris Day 2013 - Oracle DB and OS SolarisOracle Solaris Day 2013 - Oracle DB and OS Solaris
Oracle Solaris Day 2013 - Oracle DB and OS SolarisMartin Cerveny
 
V mware vi3_2006
V mware vi3_2006V mware vi3_2006
V mware vi3_2006Vladan Laxa
 
AWS spot instances
AWS spot instancesAWS spot instances
AWS spot instancesCollabim
 
Optimalizace Symfony na devu
 Optimalizace Symfony na devu Optimalizace Symfony na devu
Optimalizace Symfony na devuVašek Purchart
 
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)Péhápkaři
 
Webinář: Oracle DBA - RAC - Úvod do problematiky
Webinář: Oracle DBA - RAC - Úvod do problematikyWebinář: Oracle DBA - RAC - Úvod do problematiky
Webinář: Oracle DBA - RAC - Úvod do problematikyTomas Solar
 
vSphere automation workshop python
vSphere automation workshop pythonvSphere automation workshop python
vSphere automation workshop pythonVladan Laxa
 
CRCE - přehled datového modelu a vybraná API
CRCE - přehled datového modelu a vybraná APICRCE - přehled datového modelu a vybraná API
CRCE - přehled datového modelu a vybraná APIPremek Brada
 
Webinář: Novinky ve VMware vSphere 5
Webinář: Novinky ve VMware vSphere 5Webinář: Novinky ve VMware vSphere 5
Webinář: Novinky ve VMware vSphere 5Jaroslav Prodelal
 
Použití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciPoužití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciMartin Krištof
 

Similar to Infrastruktura památníku českého webu a zkušenosti s Heritrixem (20)

Red Hat Storage Server presentation
Red Hat Storage Server presentationRed Hat Storage Server presentation
Red Hat Storage Server presentation
 
V mware v_sphere_5_2011
V mware v_sphere_5_2011V mware v_sphere_5_2011
V mware v_sphere_5_2011
 
Czech Sun Training Day 2009 - Solaris
Czech Sun Training Day 2009 - SolarisCzech Sun Training Day 2009 - Solaris
Czech Sun Training Day 2009 - Solaris
 
Kafka
KafkaKafka
Kafka
 
Kurz webové archivace III.
Kurz webové archivace III.Kurz webové archivace III.
Kurz webové archivace III.
 
RocDevs/PHPPrague - Proč by sakra někdo měl chtít dělat eshop?
RocDevs/PHPPrague - Proč by sakra někdo měl chtít dělat eshop?RocDevs/PHPPrague - Proč by sakra někdo měl chtít dělat eshop?
RocDevs/PHPPrague - Proč by sakra někdo měl chtít dělat eshop?
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
 
Kurz webové archivace 2017/2
Kurz webové archivace 2017/2Kurz webové archivace 2017/2
Kurz webové archivace 2017/2
 
Postgresql na EXT3/4, XFS, BTRFS a ZFS
Postgresql na EXT3/4, XFS, BTRFS a ZFSPostgresql na EXT3/4, XFS, BTRFS a ZFS
Postgresql na EXT3/4, XFS, BTRFS a ZFS
 
Czech Sun Training Day 2008 - Java Enterprise System
Czech Sun Training Day 2008 - Java Enterprise SystemCzech Sun Training Day 2008 - Java Enterprise System
Czech Sun Training Day 2008 - Java Enterprise System
 
Oracle Solaris Day 2013 - Oracle DB and OS Solaris
Oracle Solaris Day 2013 - Oracle DB and OS SolarisOracle Solaris Day 2013 - Oracle DB and OS Solaris
Oracle Solaris Day 2013 - Oracle DB and OS Solaris
 
V mware vi3_2006
V mware vi3_2006V mware vi3_2006
V mware vi3_2006
 
AWS spot instances
AWS spot instancesAWS spot instances
AWS spot instances
 
Optimalizace Symfony na devu
 Optimalizace Symfony na devu Optimalizace Symfony na devu
Optimalizace Symfony na devu
 
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
 
Webinář: Oracle DBA - RAC - Úvod do problematiky
Webinář: Oracle DBA - RAC - Úvod do problematikyWebinář: Oracle DBA - RAC - Úvod do problematiky
Webinář: Oracle DBA - RAC - Úvod do problematiky
 
vSphere automation workshop python
vSphere automation workshop pythonvSphere automation workshop python
vSphere automation workshop python
 
CRCE - přehled datového modelu a vybraná API
CRCE - přehled datového modelu a vybraná APICRCE - přehled datového modelu a vybraná API
CRCE - přehled datového modelu a vybraná API
 
Webinář: Novinky ve VMware vSphere 5
Webinář: Novinky ve VMware vSphere 5Webinář: Novinky ve VMware vSphere 5
Webinář: Novinky ve VMware vSphere 5
 
Použití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciPoužití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaci
 

More from Webarchive of National Library of the Czech Republic

More from Webarchive of National Library of the Czech Republic (20)

Inzerat - datovy analytik / datova analyticka
Inzerat - datovy analytik / datova analyticka Inzerat - datovy analytik / datova analyticka
Inzerat - datovy analytik / datova analyticka
 
Inzerát datovy analytik_wa
Inzerát datovy analytik_waInzerát datovy analytik_wa
Inzerát datovy analytik_wa
 
Sys admin wa_rvv
Sys admin wa_rvvSys admin wa_rvv
Sys admin wa_rvv
 
Volné pracovní místo - kurátor/ka webového archivu
Volné pracovní místo - kurátor/ka webového archivuVolné pracovní místo - kurátor/ka webového archivu
Volné pracovní místo - kurátor/ka webového archivu
 
Webarchiv - Curatorial approaches, topic collections and cooperation with the...
Webarchiv - Curatorial approaches, topic collections and cooperation with the...Webarchiv - Curatorial approaches, topic collections and cooperation with the...
Webarchiv - Curatorial approaches, topic collections and cooperation with the...
 
Volné místo - analytik českého webového archivu
Volné místo - analytik českého webového archivuVolné místo - analytik českého webového archivu
Volné místo - analytik českého webového archivu
 
Webarchiv aneb až po lokty v mrtvolách
Webarchiv aneb až po lokty v mrtvoláchWebarchiv aneb až po lokty v mrtvolách
Webarchiv aneb až po lokty v mrtvolách
 
Kurz webové archivace 2018/2
Kurz webové archivace 2018/2Kurz webové archivace 2018/2
Kurz webové archivace 2018/2
 
Blok expertu
Blok expertuBlok expertu
Blok expertu
 
Kurz webové archivace 2018/1
Kurz webové archivace 2018/1Kurz webové archivace 2018/1
Kurz webové archivace 2018/1
 
Webarchiv
WebarchivWebarchiv
Webarchiv
 
Datovy analytik
Datovy analytikDatovy analytik
Datovy analytik
 
Webarchiv CZ 2017
Webarchiv CZ 2017Webarchiv CZ 2017
Webarchiv CZ 2017
 
Kurz webové archivace 2017/4
Kurz webové archivace 2017/4Kurz webové archivace 2017/4
Kurz webové archivace 2017/4
 
Kurz webové archivace 2017/3
Kurz webové archivace 2017/3Kurz webové archivace 2017/3
Kurz webové archivace 2017/3
 
Kurz webové archivace 2017/1
Kurz webové archivace 2017/1Kurz webové archivace 2017/1
Kurz webové archivace 2017/1
 
WARC 1.1 je skoro tady - co přinese nová verze?
WARC 1.1 je skoro tady - co přinese nová verze?WARC 1.1 je skoro tady - co přinese nová verze?
WARC 1.1 je skoro tady - co přinese nová verze?
 
WARC 1.1 je skoro tady - co přinese nová verze
WARC 1.1 je skoro tady - co přinese nová verzeWARC 1.1 je skoro tady - co přinese nová verze
WARC 1.1 je skoro tady - co přinese nová verze
 
Mezi snem a realitou. Otevřená data českého webového archivu.
Mezi snem a realitou. Otevřená data českého webového archivu.Mezi snem a realitou. Otevřená data českého webového archivu.
Mezi snem a realitou. Otevřená data českého webového archivu.
 
Kurz webové archivace II.
Kurz webové archivace II.Kurz webové archivace II.
Kurz webové archivace II.
 

Infrastruktura památníku českého webu a zkušenosti s Heritrixem

  • 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.
  • 17. Crawler-beans.cxml Spring framework Výchozí konfigurace je defakto out of box dostačující pro celoplošné doménové sklizně Je možné konfigurovat per domain pomocí sheets
  • 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
  • 19. Crawler-beans.cxml | Sheets Definuje se okruh domén na které Sheets aplikovat Sheet definuje jak se domény budou chovat
  • 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
  • 34.
  • 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.
  • 37. Dobrá, ale ještě nezavedená praxe
  • 38. Immutable infrastructure Crawlery jsou potřeba jen v okamžiku sklizně Recrawl data, state, logy a reporty (tedy /jobs) uchovávat mimo Crawler.
  • 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.
  • 41. Automatický checkpointing stačí odkomentovat patřičnou část výchozí konfigurace
  • 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