大家好,今天给各位分享NutchHadoopMongoDB构建分布式爬虫的一些知识,其中也会对进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
使用Nutch、Hadoop和MongoDB实现一个简单的分布式爬虫。在Hadoop上运行Nutch爬虫来爬取网页并将其存储在MongoDB中。
2. 实验环境
CentOS7 Linux x86_64
JDK 1.8.0_161
MongoDB 2.6.12-6
Hadoop 2.9.1
阿帕奇-ant-1.9.4
阿帕奇-nutch-2.3.1
3.安装Oracle JDK
请参考《Nutch-MongoDB-ElasticSearch搭建搜索引擎》:https://www.toutiao.com/i6539542640034054663/
4.安装和配置MongoDB
请参考《Nutch-MongoDB-ElasticSearch搭建搜索引擎》:https://www.toutiao.com/i6539542640034054663/
5.安装和配置Hadoop
5.1 下载Hadoop 2.9.1:http://hadoop.apache.org/releases.html
5.2 设置环境变量
/etc/profile:
导出HADOOP_HOME=/home/vminger/workspace/sysapp/hadoop/hadoop-2.9.1
导出路径=$PATH:$HADOOP_HOME/bin
导出PDSH_RCMD_TYPE=ssh
源/etc/profile
eval ‘$(ssh-agent -s)’
ssh-添加
5.3 配置HDFS
等/hadoop/core-site.xml:
等/hadoop/hdfs-site.xml:
5.4 初始化HDFS
bin/hdfs namenode -格式
5.5 启动HDFS
sbin/start-dfs.sh
5.6 配置纱线
etc/hadoop/mapred-site.xml:
等/hadoop/yarn-site.xml:
5.7 启动纱线
sbin/start-yarn.sh
5.8 jps 查看HDFS和YARN进程
6.安装和配置Nutch
6.1 下载apache-ant-1.9.4-bin.tar.gz并解压。下载地址:
https://archive.apache.org/dist/ant/binaries/binaries/apache-ant-1.9.4-bin.tar.gz
6.2 设置ant环境变量
/etc/profile:
导出ANT_HOME=/home/vminger/workspace/sysapp/ant/apache-ant-1.9.4
导出路径=$PATH:$ANT_HOME/bin
源/etc/profile
6.3 下载apache-nutch-2.3.1-src.tar.gz并解压。下载地址:
http://nutch.apache.org/downloads.html
6.4 设置nutch环境变量
/etc/profile:
导出NUTCH_HOME=/home/vminger/workspace/sysapp/nutch/apache-nutch-2.3.1/runtime/local
导出路径=$PATH:$NUTCH_HOME/bin
源/etc/profile
6.5 配置nutch
conf/nutch-site.xml:
配置
财产
名称存储.数据.存储.类/名称
valueorg.apache.gora.mongodb.store.MongoStore/值
description用于存储数据/描述的默认类
/财产
财产
名称http.agent.名称/名称
valueHist爬虫/value
/财产
/配置
ivy/ivy.xml:
依赖org=’org.apache.gora’ name=’gora-mongodb’ rev=’0.6.1′ conf=’*-default’ /
conf/gora.properties:
gora.datastore.default=org.apache.gora.mongodb.store.MongoStore
gora.mongodb.override_hadoop_configuration=false
gora.mongodb.mapping.file=/gora-mongodb-mapping.xml
gora.mongodb.servers=vminger:27017
gora.mongodb.db=test1
gora.mongodb.login=root
gora.mongodb.secret=root
6.6 编译Nutch:ant运行时
6.7 设置爬取URL过滤规则:
conf/regex-urlfilter.txt:
+^http://([a-z0-9]*\.)*sina.com.cn/
6.8 设置URL 种子:
创建种子文件:urls/seed.ini
将torrent 文件上传到HDFS:hadoop dfs -put urls urls
6.9 进入runtime/deploy目录,开始爬取,id345,深度3:
./bin/抓取网址id345 3
在6.10 mongodb中查看结果:
db.id345_webpage.count();
db.id345_webpage.find();
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/154335.html
用户评论
冷落了♂自己·
这篇文章干货满满!用到的各种技术栈都很实用,对我正在尝试搭建分布式爬虫的项目很有帮助。特别是结合了 Nutch、Hadoop 和 MongoDB 的方案,很有创新性。 希望能看到后续文章分享更具体的代码和配置细节!
有15位网友表示赞同!
半梦半醒半疯癫
对于刚开始接触爬虫的人来说,这篇博文介绍得非常清晰易懂入门指南。我之前一直在用爬虫自带的抓取逻辑,现在了解到Nutch 可以做到更高效的抓取和数据处理,这个分布式架构真厉害!
有16位网友表示赞同!
命该如此
搭建分布式爬虫确实是越来越重要的方向了。不过文中提到的技术栈对我来说有点复杂,还需要再深入研究一下才能完全理解其中的原理和优势。
有14位网友表示赞同!
千城暮雪
Nutch+Hadoop确实很能满足大流量数据的处理需求,MongoDB 的 NoSQL 优点也在这套方案中得到了充分发挥。 我印象中 Nutch 主要负责抓取链接和解析网页内容,而 Hadoop 可以进行大数据处理,这样分工明确效率更高。
有11位网友表示赞同!
娇眉恨
爬虫发展到分布式这个阶段了?之前以为只是简单地利用多线程提升速度就可以,现在看来技术真的日新月异!
有14位网友表示赞同!
江山策
搭建分布式爬虫很不容易,需要掌握很多不同的技术,这篇博文比较全面地介绍了关键点,对于想深入了解这方面的人来说非常有用。但是我个人觉得文章还是可以再详细一点,例如具体配置步骤和常见问题解决方案。
有9位网友表示赞同!
幸好是你
我对 MongoDB 的存储机制不是很熟悉,文中对此的解释不够详细!我希望作者能多加一些讲解,让新手更容易理解这种数据结构的优势。
有15位网友表示赞同!
代价是折磨╳
搭建分布式爬虫需要考虑很多因素,不仅仅是技术选择,还有数据安全、法律合规等方面的问题。希望文章能够进一步探讨这些现实问题,提供更全面的解决方案。
有13位网友表示赞同!
浮世繁华
这篇文章太实用啦!我的项目正好需要大规模数据处理,NutchHadoopMongoDB 这套技术方案很适合我。期待作者能分享更多案例分析和经验总结!
有18位网友表示赞同!
忘故
分布式爬虫确实可以解决很多传统爬虫无法克服的难题,但同时也带来了一些新的挑战,例如数据同步、故障容错等。希望文章能够针对这些问题提出一些可行的解决方案。
有14位网友表示赞同!
身影
文中提到的 NutchHadoopMongoDB 架构很有意思,让我对分布式爬虫有了更深入的了解。不过我还是比较好奇这套方案的性能表现怎么样?对于百万级页面数量的抓取效率能达到多少呢?
有5位网友表示赞同!
昂贵的背影
这个标题吸引了我!虽然我还没读全文章,但光是看关键词就觉得很有用武之地。分布式爬虫一直想尝试一下,以后有机会专门研究下 Nutch,Hadoop 和 MongoDB 的应用场景。
有15位网友表示赞同!
独角戏°
之前一直在使用开源的爬虫框架,感觉效率不够高,现在看来搭建分布式爬虫才是未来的趋势啊!
有15位网友表示赞同!
予之欢颜
文章中提到的技术栈我大部分都了解。但还是希望能看到一些更具体的代码示例和配置指导,方便我们快速上手和应用到实践中去。
有5位网友表示赞同!
花海
对于一个初学者来说,这种技术方案确实比较复杂,需要花费更多时间学习和理解。希望有更多简单易上手的分布式爬虫解决方案,能够帮助更多人入门!
有15位网友表示赞同!
北朽暖栀
搭建分布式爬虫确实是一个提升项目效率的好办法,但也会增加不少技术门槛,需要仔细衡量成本效益再决定是否实施!
有11位网友表示赞同!