我必須在 EMR AWS 服務上使用 Nutch 1.x 抓取大約 30k 到 50k 個域。這將是漸進的,即首先抓取所有頁面,然后只抓取這些網站的新頁面或更新頁面。對于索引,我使用的是 Apache Solr。我對 EMR 的最佳實踐很少有疑問
- 如果我必須重新索引或分析舊的爬取資料,我認為原始資料應該存盤在 S3 上。這是正確的選擇嗎?
- 對于我的第一個問題,將 S3 配置為 HDFS 的后端存盤是否更好,或者我應該在 EMR 作業結束時手動復制檔案夾。
- 在任何一種情況下,為了優化 S3 中原始資料的存盤,在將 EMR 集群匯入到 S3 或從 S3 匯出到 EMR 集群時如何壓縮資料。
- 我如何指示 Nutch 僅從給定種子中抓取新找到的頁面
uj5u.com熱心網友回復:
- Nutch 能夠直接從 S3 讀取/寫入,請參閱using-s3-as-nutch-storage-system。
- 將段和 CrawlDb 直接寫入 S3 是有意義的。但是將其保留在 HDFS 上,然后將 (distcp) 復制到 S3 也是可能的。
- 請參閱mapreduce.output.fileoutputformat.compress.codec -
org.apache.hadoop.io.compress.ZStandardCodec是一個不錯的選擇。 - (最好單獨再問一次)被爬取的域都提供站點地圖嗎?否則,挑戰在于許多新的 URL 重新獲取盡可能少的已知頁面。如果您想要所有新頁面或確保所有已洗掉的頁面都被識別,那么重新抓取所有內容會更容易。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/471360.html
下一篇:AWSLambdaRuntime.UserCodeSyntaxError:模塊“salesAnalysisReport”中的語法錯誤:語法無效
