Nutch:從搜尋引擎到Hadoop之源
Nutch 是Apache 旗下的一個用Java 實現的開源項目,其發展歷程如同一部大數據技術發展史,見證了從搜尋引擎到Hadoop 的演進。
Nutch 的前世今生
Nutch 誕生於2002 年8 月,最初是一個搜尋引擎計畫。其創辦人Doug Cutting,也是Lucene、Hadoop 和Avro 等知名開源計畫的創始人。 Nutch 的出現,標誌著搜尋引擎技術邁入了新的發展階段。
從Nutch 1.2 版本開始,Nutch 逐漸演變為一個網路爬蟲,專注於從網路上抓取資料。這為後續的Hadoop 發展奠定了基礎。
Nutch 發展過程中,分化出了1.X 和2.X 兩個分支。最大的區別在於2.X 版本對底層資料儲存進行了抽象,支援多種底層儲存技術,例如HDFS。
在Nutch 的演化過程中,產生了Hadoop、Tika、Gora 和Crawler Commons 四個Java 開源專案。
Hadoop: Hadoop 是一個開源的大數據處理框架,它以Nutch 為基礎,成為了大規模資料處理的事實標準。
Tika: Tika 使用多種現有的開源內容解析專案來實現從多種格式的文件中提取元資料和結構化文字。
Gora: Gora 支援將大數據持久化到多種儲存實現,例如HBase 和Cassandra。
Crawler Commons: Crawler Commons 是一個通用的網路爬蟲組件,為開發者提供了一套完整的爬蟲開發工具集。
大數據與Nutch
大數據這個術語最早的引用可追溯到Nutch。當時,大數據被用來描述為更新網路搜尋索引需要同時進行大量處理或分析的大量資料集。
現在,大數據的意義已經被大大發展了,業界將大數據的特性歸納為4 個「V」:
1. Volume: 資料體量巨大。
2. Variety: 資料類型繁多。
3. Value: 價值密度低,商業價值高。
4. Velocity: 處理速度快。
Nutch 與Hadoop 的密不可分
Hadoop 是大數據的核心技術之一,而Nutch 集Hadoop 之大成,是Hadoop 的源頭。
學習Hadoop,Nutch 是最好的資料來源: 沒有資料怎麼辦?用Nutch 抓!
實踐Hadoop,Nutch 提供豐富的案例: 學了Hadoop 的Map Reduce 和HDFS,沒有實用案例怎麼辦?學習Nutch! Nutch 的許多程式碼是用Map Reduce 和HDFS 寫的,哪裡還能找到比Nutch 更好的Hadoop 應用程式案例呢?
學習Nutch,不僅可以了解大數據科技發展史,也能掌握Hadoop 的實戰技巧。從搜尋引擎到Hadoop,Nutch 的歷程展現了科技不斷演進的魅力,也為我們學習大數據科技提供了寶貴的經驗與資源。