- 浏览: 22199173 次
- 性别:
- 来自: 杭州
最新评论
-
ZY199266:
配置文件还需要额外的配置ma
Android 客户端通过内置API(HttpClient) 访问 服务器(用Spring MVC 架构) 返回的json数据全过程 -
ZY199266:
我的一访问为什么是 /mavenwebdemo/WEB-I ...
Android 客户端通过内置API(HttpClient) 访问 服务器(用Spring MVC 架构) 返回的json数据全过程 -
lvgaga:
我又一个问题就是 如果像你的这种形式写。配置文件还需要额外的 ...
Android 客户端通过内置API(HttpClient) 访问 服务器(用Spring MVC 架构) 返回的json数据全过程 -
lvgaga:
我的一访问为什么是 /mavenwebdemo/WEB-I ...
Android 客户端通过内置API(HttpClient) 访问 服务器(用Spring MVC 架构) 返回的json数据全过程 -
y1210251848:
你的那个错误应该是项目所使用的目标框架不支持吧
log4net配置(web中使用log4net,把web.config放在单独的文件中)
介绍
这是本人在完全分布式环境下在 Cent-OS 中 配置 Nutch-1.1 时的总结文档,但该文档适合所有 Linux 系统和目前各版本的 nutch 。
0 集群网络环境介绍
集群中所有节点均是Cent-OS系统,防火墙均禁用,sshd服务均开启;所有节点上均有一个名为nutch的用户(非超级用户,安装前root使用useradd添加),用户主目录是/home/nutch。
集群包含三个节点:1个namenode,2个datanode,节点之间局域网连接,可以相互ping通。节点IP地址和主机名分布如下:
10.10.97.132gc03vm12namenode
10.10.97.142gc04vm12datanode01
10.10.97.144gc04vm14datanode02
本 配置将Nutch安装在/home/nutch/nutchinstall目录下。一般最好建议安装在其它非主目录路径下,例如/usr/local下, 但此时需要使nutch用户对目录有rwx权限(nutch用户对主目录有rwx权限),一般做法是root用户在/usr/local下创建一个目录, 并修改该目录拥有者为nutch(chown –R nutch:nutch 目录路径)。
1 /etc/hosts 文件配置
namenode 节点上vi /etc/hosts,将所有节点的名字和IP地址写入其中,写入如下内容,注意注释掉127.0.0.1行:
10.10.97.132gc03vm12
10.10.97.142gc04vm12
10.10.97.144gc04vm14
# 127.0.0.1 centos54 localhost.localdomain localhost
/etc/hosts 文件需要复制到所有数据节点上。
2 SSH 无密码验证配置
Nutch 是基于Hadoop的,Hadoop需要使用SSH协议,namenode将使用SSH协议启动namenode和datanode进程,datanode 向namenode传递心跳信息可能也是使用SSH协议,这是我认为的,还没有做深入了解,datanode之间可能也需要使用SSH协议。假若是,则需要配置使得所有节点之间可以相互SSH无密码登陆验证 )。
2.1 配置所有节点之间SSH无密码验证
(0) 原理
节点A要实现无密码公钥认证连接到节点B上时,节点A是客户端,节点B是服务端,需要在客户端A 上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到服务端B 上。当客户端A通过 ssh 连 接服务端B时,服务端B就会生成一个随机数并用客户端A的公钥对随机数进行加密,并发送给客户端A。客户端A收到加密数之后再用私钥进行解密,并将解密数 回传给B,B确认解密数无误之后就允许A进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端A公钥复制到B上。
因此如果要实现所有节点之间无密码公钥认证,则需要将所有节点的公钥都复制到所有节点上。
(1) 所有机器上生成密码对
(a) 所有节点用nutch用户登陆,并执行以下命令,生成rsa密钥对:
zkl@zkl-ubuntu:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/zkl/.ssh/id_rsa): 默认路径
Enter passphrase (empty for no passphrase): 回车,空密码
Enter same passphrase again:
Your identification has been saved in /home/zkl/.ssh/id_rsa.
Your public key has been saved in /home/zkl/.ssh/id_rsa.pub.
这将在/home/nutch/.ssh/目录下生成一个私钥id_rsa和一个公钥id_rsa.pub。
(b) 将所有datanode节点的公钥 id_rsa.pub 传送到namenode 上:
cp id_rsa.pub datanode01.id_rsa.pub
scp datanode01.id_rsa.pub namenode 节点ip地址:/home/nutch/.ssh
......
cp id_rsa.pub datanode0n.id_rsa.pub
(c)namenode 节点上综合所有公钥(包括自身)并传送到所有节点上
cp id_rsa.pub authorized_keys namenode 自己的公钥
cat datanode01.id_rsa.pub >> authorized_keys
......
cat datanode0n.id_rsa.pub >> authorized_keys
然后使用SSH协议将所有公钥信息authorized_keys复制到所有DataNode的.ssh目录下
zkl@zkl-ubuntu:~$ scp authorized_keys data 节点ip地址:/home/zkl/.ssh
这样配置过后,所有节点之间可以相互SSH无密码登陆,可以通过命令
“ssh 节点ip地址”来验证。
3 JDK 安装和Java环境变量配置
3.1 安装 JDK 1.6
root 用户登陆,在Namenode节点上新建文件夹/usr/program,下载JDK安装包 jdk-6u13-linux-i586.bin , 复制到目录 /usr/ program 下,在命令行进入该目录,执行命令“./ jdk-6u13-linux-i586.bin”,命令运行完毕,将在目录下生成文件夹jdk1.6.0_13,安装完毕。
安装完成后,修改/usr/program目录拥有着为nutch用户,
Chown -R nutch:nutch /usr/program
/usr/ program 目录需要复制到所有数据节点上。
3.2 Java 环境变量配置
root 用户登陆,命令行中执行命令”vi /etc/profile”,并加入以下内容,配置环境变量(注意/etc/profile这个文件很重要,后面Hadoop的配置还会用到)。
# set java environment
export JAVA_HOME= /usr/program /jdk1.6.0_13/
export JRE_HOME= /usr/program /jdk1.6.0_13/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
保存并退出,执行以下命令使配置生效
chmod +x/etc/profile
source/etc/profile
配置完毕,在命令行中使用命令”java -version”可以判断是否成功。
在nutch下测试java -version
/etc/profile 复制到所有数据节点上。
4 Hadoop 集群配置
在namenode上执行:
下载nutch-1.0,将其解压到/home/nutch/nutchinstall目录下,使用如下命令:
tar zxvf nutch-1.0.tar.gz
(1) 配置Hadoop的配置文件
(a) 配置hadoop-env.sh
$ vi nutch-1.0/conf/hadoop-env.sh
# set java environment export JAVA_HOME=/usr/program/jdk1.6.0_13/ |
(b) 配置conf/hadoop-site.xml
Hadoop 配置参数的含义请参考Hadoop-default.xml,在lib/hadoop-xxx.core.jar中能找到。
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. -->
<configuration>
<!—core--> <property> <name>fs.default.name</name> <value>hdfs://gc03vm12:9000 </value> <description>HDFS 的URI,文件系统://namenode标识:端口号</description> </property>
<property> <name>hadoop.tmp.dir</name> <value>/home/nutch/nutchinstall/hadooptmp </value> <description>namenode 上本地的hadoop临时文件夹</description> </property>
<!—hdfs--> <property> <name>dfs.name.dir</name> <value>/home/nutch/nutchinstall/hdfs/name </value> <description>namenode 上存储hdfs名字空间元数据 </description> </property>
<property> <name>dfs.data.dir</name> <value>/home/nutch/nutchinstall/hdfs/data </value> <description>datanode 上数据块的物理存储位置</description> </property>
<property> <name>dfs.replication</name> <value>2</value> <description> 副本个数,不配置默认是3,应小于datanode机器数量 </description> </property>
<!--mapreduce--> <property> <name>mapred.job.tracker</name> <value>gc03vm12:9001 </value> <description>jobtracker 标识:端口号,不是URI</description> </property>
<property> <name>mapred.local.dir</name> <value>/home/nutch/nutchinstall/mapred/local </value> <description>tasktracker 上执行mapreduce程序时的本地目录</description> </property>
<property> <name>mapred.system.dir</name> <value>/tmp/hadoop/mapred/system </value> <description> 这个是hdfs中的目录,存储执行mr程序时的共享文件</description> </property>
</configuration> |
(c) 配置masters文件,加入namenode的主机名
gc03vm12 |
(d) 配置slaves文件, 加入所有datanode的主机名
gc04vm12 gc04vm14 |
(2) 复制配置好的各文件到所有数据节点上。
root 用户下:
scp /etc/hosts 数据节点ip地址:/etc/hosts
scp /etc/profile 数据节点ip地址:/etc/profile
scp /usr/program 数据节点ip地址:/usr/program
nutch 用户下:
scp /home/nutch/nutchinsta 数据节点ip地址:/home/nutch/
5 Hadoop 集群启动
Namenode 执行:
格式化namenode,格式化后在namenode生成了hdfs/name 文件夹
bin/hadoop namenode –format
启动hadoop所有进程,
bin/start-all.sh (或者先后执行start-dfs.sh和start-mapreduce.sh)。
可以通过以下启动日志看出,首先启动namenode,然后启动datanode1,datanode2,然后启动secondarynamenode。再启动jobtracker,然后启动tasktracker1,最后启动tasktracker2。
启动hadoop成功后,在namenode中生成了hadooptmp 文件夹,在datanode中生成了hdfs 文件夹和mapred 文件夹。
namenode 上用java自带的小工具jps查看进程
zkl@zkl-ubuntu:~/$ jps 8383 JobTracker 8733 Jps 8312 SecondaryNameNode 8174 NameNode |
每个datanode上查看进程
zkl@zkl-ubuntu:~/$ jps 7636 DataNode 7962 Jps 7749 TaskTracker |
在namenode上查看集群状态
bin/hadoop dfsadmin –report
Configured Capacity: 16030539776 (14.93 GB) Present Capacity: 7813902336 (7.28 GB) DFS Remaining: 7748620288 (7.22 GB) DFS Used: 65282048 (62.26 MB) DFS Used%: 0.84%
------------------------------------------------- Datanodes available: 2 (2 total, 0 dead)
Name: 10.10.97.142:50010 Decommission Status : Normal Configured Capacity: 8015269888 (7.46 GB) DFS Used: 32641024 (31.13 MB) Non DFS Used: 4364853248 (4.07 GB) DFS Remaining: 3617775616(3.37 GB) DFS Used%: 0.41% DFS Remaining%: 45.14% Last contact: Thu May 13 06:17:57 CST 2010
Name: 10.10.97.144:50010 Decommission Status : Normal Configured Capacity: 8015269888 (7.46 GB) DFS Used: 32641024 (31.13 MB) Non DFS Used: 3851784192 (3.59 GB) DFS Remaining: 4130844672(3.85 GB) DFS Used%: 0.41% DFS Remaining%: 51.54% Last contact: Thu May 13 06:17:59 CST 2010 |
Hadoop 的web 方式查看: http:// namenode ip 地址 :50070
Hadoop 查看工作情况: http:// namenode ip 地址:50030
6 Nutch 分布式爬虫
6.1 配置Nutch配置文件
(1) 配置所有节点上的conf/nutch-site.xml文件
nutch-site.xml 文件
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>http.agent.name </name> <value>nutch-1.0</value> <description> 爬虫和搜索此参数必须配置</description> </property> </configuration> |
(2) 配置所有节点上的conf/crawl-urlfilter.txt文件
# skip file:, ftp:, & mailto: urls -^(file|ftp|mailto): # skip image and other suffixes we can't yet parse -\.(gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|MOV|exe|jpeg|JPEG|bmp|BMP)$ # skip URLs containing certain characters as probable queries, etc. -[?*!@=] # skip URLs with slash-delimited segment that repeats 3+ times, to break loops -.*(/[^/]+)/[^/]+\1/[^/]+\1/ # accept hosts in MY.DOMAIN.NAME # 允许下载所有 +^ # skip everything else -. |
6.2 执行Nutch分布式爬虫
Nutch 爬虫命令是:
bin/nutch Crawl <urlDir> [-dir d] [-threads n] [-depth i] [-topN N]
其中的<urlDir>参数是入口地址文件或其所在的目录,启动了集群进行分布式爬虫时,这个目录必须是HDFS中的目录,爬虫完毕将在HDFS中生成存有爬下来的数据的目录[-dir d]。
(1) 入口地址文件
在本地磁盘中新建一个文件,写入一个入口url,然后将其复制到HDFS中,使用如下命令:
bin/hadoop dfs -copyFromLocal crawltest/urls urls
(3) 爬虫测试,在namenode、datanode或者与集群网络连通的安装有Hadoop或者nutch并且hadoop-site.xml配置相同的客户机 上上均可使用如下命令分布式爬虫:
bin/nutch crawl urls -dir data -depth 3 -topN 10
crawl started in: data rootUrlDir = urls threads = 10 depth = 3 topN = 10 Injector: starting Injector: crawlDb: data/crawldb Injector: urlDir: urls Injector: Converting injected urls to crawl db entries. Injector: Merging injected urls into crawl db. Injector: done Generator: Selecting best-scoring urls due for fetch. Generator: starting Generator: segment: data/segments/20100513022002 Generator: filtering: true Generator: topN: 10 Generator: Partitioning selected urls by host, for politeness. Generator: done. Fetcher: Your 'http.agent.name' value should be listed first in 'http.robots.agents' property. Fetcher: starting Fetcher: segment: data/segments/20100513022002 Fetcher: done 第一层的网页下载完毕,depth=0 CrawlDb update: starting CrawlDb update: db: data/crawldb CrawlDb update: segments: [data/segments/20100513022002] CrawlDb update: additions allowed: true CrawlDb update: URL normalizing: true CrawlDb update: URL filtering: true CrawlDb update: Merging segment data into db. CrawlDb update: done Generator: Selecting best-scoring urls due for fetch. Generator: starting Generator: segment: data/segments/20100513022124 Generator: filtering: true Generator: topN: 10 Generator: 0 records selected for fetching, exiting ... Stopping at depth=1 - no more URLs to fetch. 此处就停止了,不能下载第二层的网页,正常情况下是不会出现此错误的。 LinkDb: starting LinkDb: linkdb: data/linkdb LinkDb: URL normalize: true LinkDb: URL filter: true LinkDb: adding segment: hdfs://gc03vm12:9000/user/nutch/data/segments/20100513022002 LinkDb: done Indexer: starting Indexer: done Dedup: starting Dedup: adding indexes in: data/indexes Dedup: done merging indexes to: data/index Adding hdfs://gc03vm12:9000/user/nutch/data/indexes/part-00000 done merging crawl finished: data
|
爬虫完毕,hdfs中生成data目录,data目录下面有这些子目录:crawldb,index,
indexes,linkdb,segments 。所有节点上的爬虫日志在logs/hadoop.log中。上述“ Stopping at depth=1 - no more URLs to fetch. ”这个错误不知何故,我在另几台机器上相同配置爬虫却没有出现任何错误,不知何原因。一般情况下按此配置没有任何问题。
从浏览器中可以查看到分布式爬虫时作业状态:
7 Nutch 检索
Nutch 的爬虫和搜索可以说是分离的两块,爬虫可以是 M/R 作业,但搜索不是 M/R 作业。搜索有两种方式:一是将爬虫数据 ( 或者称索引数据 ) 放在本地硬盘,进行搜索。二是直接搜索 HDFS 中的爬虫数据。
Nutch 自带了一个 WEB 前端检索程序,即主目录下的 nutch-x.x.war ,实现 WEB 前端检索时需要安装 Tomcat ,执行应用程序。此外,在命令行中也可执行 Nutch 检索命令。
7.1 Windows 下Nutch单机搜索本地索引数据
(1) 将HDFS中生成的存储爬虫数据的data目录复制到本地,并将data目录拷贝到windows下的某个目录中,例如D盘下。
bin/hadoopfs –copyToLocal data data
(2) 安装tomcat,请确保安装路径没有空格,这很重要,在windows上如果有空格将导致搜索结果始终为0。启动tomcat服务。
(3) 将Nutch主目录下的WEB前端程序nutch-1.0.war复制到 ***/ tomcat/webapps/目录下。
(4) 浏览器中输入http://localhost:8080/nutch-1.0,将自动解压nutch-1.0.war,在webapps下生成nutch-1.0目录。
(5) 配置WEB前端程序中的nutch-site.xml文件,该文件所在目录是***/tomcat/webapps/nutch-1.0/WEB-INF/classes/下,配置如下:
<property> <name>http.agent.name </name> 不可少,否则无搜索结果 <value>nutch-1.0</value> <description>HTTP 'User-Agent' request header.</description> </property>
<property> <name>searcher.dir </name> <value>D:\data < alue>data 是爬虫生成的索引数据目录。参数值请使用绝对路径 <description>Path to root of crawl.</description> </property> |
(6) 重启tomcat。更改配置文件后必须重启tomcat,否则不会生效。
(7) 在http://localhost:8080/nutch-1.0下检索关键字。
7.2 Linux 下Nutch单机搜索本地索引数据
7.2.1 WEB 前端搜索
(1) 将HDFS中生成的存储爬虫数据的data目录复制到本地某一目录下。
bin/hadoopfs –copyToLocal data data
(2) 安装tomcat,请确保安装路径没有空格,这很重要,否则将导致搜索结果始终为0。安装完后启动tomcat服务,bin/catalina start。
(3) 将Nutch主目录下的WEB前端程序nutch-1.0.war复制到 ***/ tomcat/webapps/目录下。
(4) 浏览器中输入http://localhost:8080/nutch-1.0,将自动解压nutch-1.0.war,在webapps下生成nutch-1.0目录。
(5) 配置WEB前端程序中的nutch-site.xml文件,该文件所在目录是***/tomcat/webapps/nutch-1.0/WEB-INF/classes/下,配置如下:
<property> <name>http.agent.name </name> 不可少,否则无搜索结果 <value>nutch-1.0</value> <description>HTTP 'User-Agent' request header.</description> </property>
<property> <name>searcher.dir </name> <value>/home/nutch/nutchinstall/crawltest/data < alue> data 是爬虫生成的索引数据目录。参数值请使用绝对路径 <description>Path to root of crawl.</description> </property> |
(6) 重启tomcat,可以先执行bin/catalina stop停止再start。更改配置文件后必须重启tomcat,否则不会生效。
(7) 在http://localhost:8080/nutch-1.0下检索关键字。
7.2.2 命令行搜索
(1) 机器上安装nutch,即解压nutch软件包即可。
(2) 配置nutch主目录下conf目录下的hadoop-site.xml和nutch-site.xml文件。
由于是单机模式搜索,使用的是本地文件系统,hadoop-site.xml中不要做任何配置;nutch-site.xml中和以上配置一致
(3) 使用命令检索
bin/nutch org.apache.nutch.searcher.NutchBean apache
Total hits: 10
0 20100518233933/http://10.10.97.132:8080/docs/
... changes made to Apache Tomcat. Status - Apache Tomcat development status. Developers - List ... for Apache Tomcat's internals.
1 20100518234217/http://10.
7.3 Linux 下Nutch搜索HDFS中索引数据
分 布式爬虫时Nutch生成的索引数据存储的HDFS中,nutch支持搜索HDFS中的数据。检索HDFS中的索引数据和检索本地种的索引数据的配置差别 是hadoop-site.xml文件。搜索hdfs中的数据时,nutch在搜索的时候首先通过rpc检索lucene索引文件,然后定位到 segment对应的14位数字时间作为文件夹的名字,然后从这个文件夹中获取结果信息的。
7.3.1 WEB 前端搜索
(0) 选择一台机器,该机器可以是Hadoop集群中的节点,也可以是集群之外的机器,但保证机器和Hadoop集群网络连通。
(1) 安装tomcat,请确保安装路径没有空格,这很重要,否则将导致搜索结果始终为0。安装完后启动tomcat服务,bin/catalina start。
(3) 将Nutch主目录下的WEB前端程序nutch-1.0.war复制到 ***/ tomcat/webapps/目录下。
(4) 浏览器中输入http://localhost:8080/nutch-1.0,将自动解压nutch-1.0.war,在webapps下生成nutch-1.0目录。
(5) 配置WEB前端程序中的hadoop-site.xml文件,该文件所在目录是***/tomcat/webapps/nutch-1.0/WEB-INF/classes/下。至少需要配置fs.default.name参数,指定HDFS文件系统URI:
<configuration>
<property> <name>fs.default.name </name> <value>hdfs://gc04vm12:9000</value> <description> </description> </property>
</configuration> |
(6) 配置WEB前端程序中的nutch-site.xml文件,该文件所在目录是***/tomcat/webapps/nutch-1.0/WEB-INF/classes/下,配置如下:
<property> <name>http.agent.name </name> 不可少,否则无搜索结果 <value>nutch-1.0</value> <description>HTTP 'User-Agent' request header.</description> </property>
<property> <name>searcher.dir</name> <value>/user/nutch/data </value> <!— 该值是HDFS中的目录,这里是绝对路径,即爬虫生成的data目录在HDFS中的/user/nutch/data目录下。 由Hadoop-site.xml中的fs.default.name参数可以决定它的HDFS绝对路径是: hdfs://gc04vm12:9000/user/nutch/data 对应HDFS中的目录情况如下: hdfs 中的目录情况 bin/hadoop dfs -ls drwxr-xr-x- nutch supergroup 0 2010-05-18 17:31 /user/nutch/data --> <description> index dir </description> </property> |
(6) 重启tomcat,可以先执行bin/catalina stop停止,再start。更改配置文件后必须重启tomcat,否则不会生效。
(7) 在http://localhost:8080/nutch-1.0下检索关键字。
7.3.2 命令行搜索
(0) 选择一台机器,该机器可以是Hadoop集群中的节点,也可以是集群之外的机器,但保证机器和Hadoop集群网络连通。
(1) 集群之外的机器上必须安装nutch并做相关配置,安装即解压nutch软件包即可。
(2) 配置Nutch主目录下的hadoop-site.xml和nutch-site.xml文件
配置hadoop-site.xml文件,至少需要配置fs.default.name参数,指定HDFS文件系统URI:
<configuration>
<property> <name>fs.default.name </name> <value>hdfs://gc04vm12:9000</value> <description> </description> </property>
</configuration> |
配置nutch-site.xml文件,配置如下:
<property> <name>http.agent.name </name> 不可少,否则无搜索结果 <value>nutch-1.0</value> <description>HTTP 'User-Agent' request header.</description> </property>
<property> <name>searcher.dir</name> <value>/user/nutch/data </value> <!— 该值是HDFS中的目录,这里是绝对路径,即爬虫生成的data目录在HDFS中的/user/nutch/data目录下。 由Hadoop-site.xml中的fs.default.name参数可以决定它的HDFS绝对路径是: hdfs://gc04vm12:9000/user/nutch/data 对应HDFS中的目录情况如下: hdfs 中的目录情况 bin/hadoop dfs -ls drwxr-xr-x- nutch supergroup 0 2010-05-18 17:31 /user/nutch/data --> text-indent: 发表评论 |
相关推荐
这是本人在完全分布式环境下在Cent-OS中配置Nutch-1.1时的总结文档,但该文档适合所有Linux系统和目前各版本的nutch。 目 录 介绍 ............................................................... 2 0 集群...
Linux下Nutch分布式配置和使用.pdf Lucene+Nutch源码.rar Lucene学习笔记.doc nutch_tutorial.pdf nutch二次开发总结.txt nutch入门.pdf nutch入门学习.pdf Nutch全文搜索学习笔记.doc Yahoo的Hadoop教程.doc [硕士...
- **单机与分布式配置的区别**:在单机环境中配置检索系统相对简单,只需要关注本地环境的设置即可。而在分布式环境中,则需要额外配置Hadoop的相关参数,以确保数据能够在多个节点之间正确地分布和检索。 - **关键...
总结,Apache Nutch 2.2 在 Linux 环境下提供了强大的网络爬虫功能,结合 Hadoop 分布式计算框架,能高效处理海量网页数据。其灵活性和可扩展性使其成为开发自定义搜索引擎或进行大数据分析的重要工具。正确配置和...
1. 在Nutch源码目录下,使用Gradle构建项目: ``` ./gradlew clean compileJava ``` 2. 初始化数据库: ``` bin/nutch inject urls ``` 其中`urls`是你初始种子URL的文本文件。 3. 执行抓取周期: ``` bin...
### Nutch配置详解 #### 一、Nutch简介与配置准备 **Nutch**是一款开源的Web爬虫项目,能够帮助用户抓取...此外,为了提高系统的稳定性和效率,还可以进一步优化配置,比如增加分布式爬取的支持、改善搜索算法等。
- **配置 Nutch 查询索引**:配置 Nutch 的 `conf/gora.properties` 和 `conf/hadoop-site.xml` 文件,以便连接到 Hadoop 集群(如果需要的话),并指定索引的存储位置。 **Nutch 爬取内容解析** 1. **Crawldb**...
由于Nutch构建在Hadoop之上,所有的数据库操作(CrawlDB, LinkDB, SegmentsDB 和 IndexDB)都通过调用MapReduce函数来实现,这为Nutch提供了强大的扩展性和分布式处理能力。 #### 实际应用示例 为了更好地理解...
要获取和解压这些源码,你可以使用各种工具,如在Linux或Mac系统中使用命令行的tar和unzip命令,或者在Windows中使用WinRAR、7-Zip等图形界面工具。解压后,你将看到一个包含多个目录和文件的结构,这些目录和文件...
如WSDL(Web Services Description Language)和UDDI(Universal Description, Discovery and Integration)服务发现机制,以及如何使用工具如Apache Axis或Java的JAX-WS来创建和消费WebService,对于开发分布式系统...
通过本篇学习笔记,我们不仅了解了Nutch的基本概念和安装配置流程,而且还探讨了一些核心组件的使用方法。对于想要进一步探索网络爬虫技术的人来说,Nutch无疑提供了一个强大的工具集。未来的学习过程中,我们还可以...
### Linux下载、安装、JDK配置、Hadoop安装相关知识点 #### 一、Linux环境准备与安装 **1.1 Linux版本选择** - **CentOS 6.5**:适用于本教程,是一款稳定且广受支持的企业级操作系统。 **1.2 下载Linux** - **...
在本文中,我们将深入探讨如何在 Linux 环境下使用 Eclipse 编译 Apache Nutch 1.0。Apache Nutch 是一个开源的网络爬虫框架,主要用于抓取和索引网页内容。Eclipse 是一个广泛使用的 Java 开发集成环境,它支持多种...
- **Hadoop实验平台配置**:项目使用Hadoop Distributed File System (HDFS)进行数据存储,并且在实验平台中进行了相应的配置。 - **Nutch搜索引擎**:建立在Hadoop之上的开源搜索引擎,利用HDFS作为存储索引数据的...
Hadoop程序员主要负责编写Mapper和Reducer的代码逻辑,定义输入输出格式,并通过main函数来配置和提交作业给JobTracker。在JobTracker的调度下,MapReduce任务会被分配到集群中不同节点上的TaskTracker执行,程序员...
- Zookeeper:是一个开源的分布式应用程序协调服务,它提供一致性服务、命名服务、配置管理、分布式锁和集群管理等服务。 3. Hadoop与相关技术的关系: - Nutch:是一个开源的搜索引擎。它基于Java开发,并使用了...
Nutch的使用包括一站式抓取和分布式抓取两种模式,前者在local目录下运行,后者则涉及数据文件夹的管理和抓取列表的生成。 3. **案例:招聘网站信息抓取**:为了收集特定信息,如公司规模和分布,可以编写聚焦爬虫...