hadoop使用(四)
做一个网络爬虫的程序吧,根据客户的需求,要求把相关的内容爬取到本地
最终选择的是apache nutch,到目前为止最新的版本是1.3
1. Nutch是什么?
Nutch是一个开源的网页抓取工具,主要用于收集网页数据,然后对其进行分析,建立索引,以提供相应的接口来对其网页数据进行查询的一套工具。其底层使用了Hadoop来做分布式计算与存储,索引使用了Solr分布式索引框架来做,Solr是一个开源的全文索引框架,从Nutch 1.3开始,其集成了这个索引架构
2. 在哪里要可以下载到最新的Nutch?
在下面地址中可以下载到最新的Nutch 1.3二进制包和源代码
http://mirror.bjtu.edu.cn/apache//nutch/
3. 如何配置Nutch?
3.1 对下载后的压缩包进行解压,然后cd $HOME/nutch-1.3/runtime/local
3.2 配置bin/nutch这个文件的权限,使用chmod +x bin/nutch
3.3 配置JAVA_HOME,使用export JAVA_HOME=$PATH
4. 抓取前要做什么准备工作?
4.1 配置http.agent.name这个属性,在conf目录下
<prename="code"class="html"><property>
<name>http.agent.name</name>
<value>My Nutch Spider</value>
</property>
<pre name="code" class="html"><property> <name>http.agent.name</name> <value>My Nutch Spider</value> </property>
4.2 建立一个地址目录,mkdir -p urls
在这个目录中建立一个url文件,写上一些url,如
http://www.apache.org
http://nutch.apache.org/
4.3 然后运行如下命令
bin/nutch crawl urls -dir mydir -depth 3 -topN 5
bin/nutch crawl urls -dir crawl -depth 3 -topN 5
注意,这里是不带索引的,如果要对抓取的数据建立索引,运行如下命令
-dir 选项设置抓取结果存放目录
-depth 选项设置爬取的深度
-threads 选项设置并行爬取的线程数
-topN 选项设置每个深度爬取的最大页数
最后就可以查看mydir中的结果了
一个典型的爬虫主要有如下阶段
- URL库初始化然后开始爬取。
- 爬虫读取没有访问过的URL,来确定它的工作范围。
- 获取URL的内容
- 解析内容,获取URL以及所需的数据。
- 存储有价值的数据。
- 规范化新抓取的URL。
- 过滤掉不需要爬去的URL。
- 把要抓取的URL更新到URL库中。
- 重复步骤2,直到抓取的网页深度完毕为止。
附加一张中文图
不知道为什么在Nutch-1.3中没了Nutch自带的搜索war文件,而且在Nutch-1.3中,抓取文件后,生成的目录只有crawldb,linkdb,segments
查了一下官网Wiki,上面是把Nutch的索引映射到solr,用solr来提供搜索功能,详见官网Wiki说明:http://wiki.apache.org/nutch/RunningNutchAndSolr
对比这两个,搜索同一关键字,发现Nutch搜索的展示结果有重复,而solr没有重复,还有solr可以在conf/schema.xml配置字段属 性,nutch好像改了这个配置文件,也没起效果,比如,我想让索引中存储content和termvector,可是搜索结果,并没有存储
下面安装并且配置solr
从官方下载
http://www.apache.org/dyn/closer.cgi/lucene/solr/
下载完成后解压缩
到solr的example目录下,运行
java -jar start.jar
运行成功如图
打开浏览器
http://localhost:8983/solr/
进入solradmin出现如下界面,运行成功

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【原创】ganglia监控hadoop集群
最近研究了一下ganglia监控hadoop集群,大致可以监控hadoop集群中节点的性能。比如CPU、内存、IO、交换分区等。这里就不一一介绍!网上部署监控的文档很多,乱起八糟的也很多,主要是每个人的环境都不一样导致,但是我自己看的还是比较头晕,以至于有的人还直接发布安装脚本,结果可笑的就是脚本拿下来后运行直接报错。这里就不说别人不好的地方了,分享技术是种好事,但是不正确的文档肯定会导致初学者盲目的。所以切记分享技术的时候记得说清楚当时的环境,这里说下我的这个环境吧! hadoop集群所有节点加起来四台机器,这里我挑slave1作为监控机,另外三台为被监控机。请看下图: 主机名IP地址 用途 系统版本软件包安装情况 msater192.168.15.95namenodeRedHat4.8(64位)安装系统所有软件包都已安装 slave1 192.168.15.72 datanode同上 同上 slave2 192.168.15.71 datanode 同上 同上 slave3 192.168.15.132datanode 同上同上 其实ganglia主要分为两个守护进程: 监控机主要...
- 下一篇
soap pentest tool
1. soapUI 2. WCF Storm 3. SOA Cleaner 4.webscarab webservices模块 5.ws-digger 6.wsscanner 7.burp suite插件 http://resources.infosecinstitute.com/soap-attack-1/ 8. PTES, penetration testing execution standard 9.WS-SQLI 10. msfwebfuzz http://www.pentest-standard.org/index.php/PTES_Technical_Guidelines google dork filetype:asmx filetype:jws filetype:wsdl
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Mario游戏-低调大师作品
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16