Tekrar Selam,
Web crawl cok asina oldugum bir konu degil, aklima gelenleri yazayim ama biraz uydurma olabilir bastan soyliyim.
Bu iste bayadir aktif olan nutch diye bir proje var oncelikle, ona bakarsak hem crawl hem parse hem index esnasinda kendi yapilari mevcut. En mantikli hareket onu bir incelemek olurdu tabi ama, diyelim ki baktik begenmedik eksik geldi vs, hani bastan yapsak neler yapardik diye dusunuyorum.
Ilk olarak aklima gelen crawler ile parsing'i birbirinden ayri tasarlamak olur.
Crawler misal bir kafka'dan bir link alir, bir node uzerinde onu cekecek bir is baslatir
Is linki ceker html ciktiyi baska bir kuyruga yazar.
Parsing tarafi onu alir, yine baska bir node uzerinde linkler cikartilir.
Sayfadan cikan linkler tekrar crawler'in okudugu kuyruga yazilir.
Islem devam eder.
Tabi domain bazli hiz sinirlari icin falan bu scheduling'in biraz akilli calismasi lazim, baya bir is.
Yine tabi farkli node falan deyip gecmemek lazim, onlarin kaynak hesabi da baya bir is. yarn, mesos, akka-cluster gibi bir seyler gerekebilir.
Ikinci asamada bu sayfa iceriklerinin daha detayli incelenmesi icin, sayfalarin oldugu kuyruk;
bir tip stream processing yapisiyla (storm, spark, samza vs.) okunup analiz edilebilir
gunluk olarak hdfs'e yuklenip batch analizler yapilabilir
dogrudan solr'a yuklenip indexlenebilir
hatta dogrudan hbase'e yuklenip versiyon farkliliklari hesaplanabilir
...
Kisacasi buradan sonra yapilabilecekler hayal-gucuyle sinirli.
Tekrar hatirlatiyim tabi, bunlar direk bir anda aklima gelenler. Muhtemelen cok daha duzenli bir hale getirilebilir.