大数据——ubuntu下Nutch 2.2+MySQL实现网站内容的抓取和索引(下集)
2015-01-21 10:40
666 查看
一 ubuntu安装mysql
在ubuntu下安装软件,更是没有技巧,只需要在联网的情况下使用apt-get inatll 即可。在决定安装mysql之前,要先确定系统是否已经安装mysql。
系统中并没有安装mysql.下面执行sudo apt-get install mysql-server my-client进行安装。默认安装server端和client端。
输入Y进入到安装界面,在安装过程中,会弹出一个界面要求输入mysql的root的密码,这里一定输入,省得安装后再设密码了。
然后会要求确认,再输一遍,然后系统会自动安装mysql直到完成。
mysql安装完成后,我们可以通过netstat -tap|grep mysql来查看系统是否已经有了mysql服务,如下图,
出现上面的信息,说明我们安装mysql成功。
下面进行简单的配置
my.cnf配置
安装完成后通过修改/etc/mysql/my.cnf(此文件为mysql的配置文件)。将文件中的binding-address=127.0.0.1注释掉。其它配置根据需要更改。
分别在[client]、[mysql]下添加
在[mysqld]下添加:
登录数据库命令:mysql -u root -p 回车后,输入我们前面所设的密码,就可以登录成功。
如果要查看数据库使用的字符集,可以输入show variables like 'character%';(注意分号不可省略)如图
如果要更改这些,在my.cnf里更改即可。至此安装mysql成功。
权限授予
创建数据库与表
手动创建数据库nutch和数据表webpage【如果不想用默认的库名和表名也可在nutch安装后的相关配置文件中进行修改,见后续说明】,
> create database nutch;
其中webpage的表结构如下:
2) 配置nutch对mysql的支持,修改${APACHE_NUTCH_HOME}/ivy/ivy.xml文件,分别:
l 将以下行的注释取消
l 修改以下行。从默认的
l 将以下行的注释取消
注:上述第2和第3项,如果按默认的不做修改,将会在抓取网页时遇到以下错误。
Exception in thread “main” Java.lang.ClassNotFoundException:org.apache.gora.sql.store.SqlStore
3) 数据库连接配置
编辑${NUTCH_HOME}/conf/gora.properties文件,注释掉默认的数据库连接配置,同时添加以下配置内容:
4) 数据表映射配置
主要是修改 ${NUTCH_HOME}/conf/gora.properties 文件,这里的修改建议按照前面介绍的自动生成数据表的方法进行修改,网上说的要将primarykey 的长度从512修改成767,即 <primarykey column=”id” length=”767″/>。反正我照此操作没有成功(应该受编码格式的影响),最后改成<primarykey column=”id” length=”255″/>搞定了。
5) 修改nutch-site配置文件
l 添加http.agent.name的值
l 在文件末尾添加以下内容
l 特别添加以下内容
如果不添加此项内容,则通过”bin/nutch crawl urls –threads n –depths n”爬取网页时,在日志中会看到以下错误:
java.lang.NullPointerException
at org.apache.avro.util.Utf8.<init>(Utf8.java:37)
at org.apache.nutch.crawl.GeneratorReducer.setup(GeneratorReducer.java:100)
at org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:174)
at org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:649)
at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:418)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:398)
并且“nutch-site”文件需要保存为utf-8格式,否则在执行nutch命令时会出现以下错误。
Exception in thread “main” java.lang.RuntimeException: com.sun.org.apache.xerces.internal.impl.io.malformedByteSequenceException: 1字节的UTF-8序列的字节 1 无效。
6) 编译nutch 2.2
在保证已安装ant的情况下(没有安装的可在网上baidu下ant的安装方法),回到nutch根目录,使用ant编译 ${NUTCH_HOME}。如果都按上述配置一步步做了,则编译过程将顺利完成。至此,Nutch 2.2的安装也已完成,接下来就可以根据需要配置网页抓取信息,进行网页抓取了。
2) 执行爬取操作
完成。
四. 介绍mysql的几个常用命令
1、、创建数据库
命令:create database <数据库名>
例如:建立一个名为test的数据库
mysql> create database test;
2、显示所有的数据库
命令:show databases
mysql> show databases;
3、删除数据库
命令:drop database <数据库名>
例如:删除名为 test的数据库
mysql> drop database test;
4、连接数据库
命令: use <数据库名>
例如:如果test数据库存在,尝试存取它:
mysql> use test;
屏幕提示:Database changed
5、查看当前使用的数据库
mysql> select database();
6、当前数据库包含的表信息:
mysql> show tables;
在ubuntu下安装软件,更是没有技巧,只需要在联网的情况下使用apt-get inatll 即可。在决定安装mysql之前,要先确定系统是否已经安装mysql。
<span style="font-size:14px;"> $ sudo netstat -tap |grep mysql </span>
系统中并没有安装mysql.下面执行sudo apt-get install mysql-server my-client进行安装。默认安装server端和client端。
输入Y进入到安装界面,在安装过程中,会弹出一个界面要求输入mysql的root的密码,这里一定输入,省得安装后再设密码了。
然后会要求确认,再输一遍,然后系统会自动安装mysql直到完成。
mysql安装完成后,我们可以通过netstat -tap|grep mysql来查看系统是否已经有了mysql服务,如下图,
tcp 0 0 localhost:mysql *:* LISTEN -
出现上面的信息,说明我们安装mysql成功。
下面进行简单的配置
my.cnf配置
安装完成后通过修改/etc/mysql/my.cnf(此文件为mysql的配置文件)。将文件中的binding-address=127.0.0.1注释掉。其它配置根据需要更改。
分别在[client]、[mysql]下添加
<span style="font-size:14px;"> default-character-set=utf8 </span>
在[mysqld]下添加:
<span style="font-size:14px;"> character-set-server=utf8 </span>
登录数据库命令:mysql -u root -p 回车后,输入我们前面所设的密码,就可以登录成功。
如果要查看数据库使用的字符集,可以输入show variables like 'character%';(注意分号不可省略)如图
如果要更改这些,在my.cnf里更改即可。至此安装mysql成功。
权限授予
<span style="font-size:14px;"> mysql –u root –p <!--登录mysql--> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "xxxx"; </span> <span style="font-size:14px;">xxxx值得是没有mysql密码。</span>
创建数据库与表
手动创建数据库nutch和数据表webpage【如果不想用默认的库名和表名也可在nutch安装后的相关配置文件中进行修改,见后续说明】,
> create database nutch;
其中webpage的表结构如下:
<span style="font-size:14px;"> > CREATE TABLE `webpage` ( `id` varchar(767) NOT NULL, `headers` blob, `text` longtext DEFAULT NULL, `status` int(11) DEFAULT NULL, `markers` blob, `parseStatus` blob, `modifiedTime` bigint(20) DEFAULT NULL, `prevModifiedTime` bigint(20) DEFAULT NULL, `score` float DEFAULT NULL, `typ` varchar(32) CHARACTER SET latin1 DEFAULT NULL, `batchId` varchar(32) CHARACTER SET latin1 DEFAULT NULL, `baseUrl` varchar(767) DEFAULT NULL, `content` longblob, `title` varchar(2048) DEFAULT NULL, `reprUrl` varchar(767) DEFAULT NULL, `fetchInterval` int(11) DEFAULT NULL, `prevFetchTime` bigint(20) DEFAULT NULL, `inlinks` mediumblob, `prevSignature` blob, `outlinks` mediumblob, `fetchTime` bigint(20) DEFAULT NULL, `retriesSinceFetch` int(11) DEFAULT NULL, `protocolStatus` blob, `signature` blob, `metadata` blob, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; </span>这里可能会出现一些error,只需要修改相应字段长度即可。
二. Nutch的安装与配置
1) 获取nutch 2.2.x:从官网http://www.apache.org/dyn/closer.cgi/nutch/下载,然后解压至本地安装目录,如本地根目录为 ${NUTCH_HOME};2) 配置nutch对mysql的支持,修改${APACHE_NUTCH_HOME}/ivy/ivy.xml文件,分别:
l 将以下行的注释取消
<span style="font-size:14px;"> <dependency org=”mysql” name=”mysql-connector-java” rev=”5.1.18″ conf=”*->default”/> </span>
l 修改以下行。从默认的
<span style="font-size:14px;"> <dependency org="org.apache.gora" name="gora-core" rev="0.3" conf="*->default"/> </span><pre name="code" class="html">改成
<span style="font-size:14px;"> <dependency org="org.apache.gora" name="gora-core" rev="0.2.1" conf="*->default"/> </span>
l 将以下行的注释取消
<span style="font-size:14px;"> <dependency org="org.apache.gora" name="gora-sql" rev="0.1.1-incubating" conf="*->default" /> </span>
注:上述第2和第3项,如果按默认的不做修改,将会在抓取网页时遇到以下错误。
Exception in thread “main” Java.lang.ClassNotFoundException:org.apache.gora.sql.store.SqlStore
3) 数据库连接配置
编辑${NUTCH_HOME}/conf/gora.properties文件,注释掉默认的数据库连接配置,同时添加以下配置内容:
<span style="font-size:14px;"> ############################### # Default MySQL properties # ############################### gora.sqlstore.jdbc.driver=com.mysql.jdbc.Driver gora.sqlstore.jdbc.url=jdbc:mysql://localhost:3306/nutch?createDatabaseIfNotExist=true gora.sqlstore.jdbc.user=xxxx(MySQL用户名) gora.sqlstore.jdbc.password=xxxx(MySQL密码) </span>
4) 数据表映射配置
主要是修改 ${NUTCH_HOME}/conf/gora.properties 文件,这里的修改建议按照前面介绍的自动生成数据表的方法进行修改,网上说的要将primarykey 的长度从512修改成767,即 <primarykey column=”id” length=”767″/>。反正我照此操作没有成功(应该受编码格式的影响),最后改成<primarykey column=”id” length=”255″/>搞定了。
5) 修改nutch-site配置文件
l 添加http.agent.name的值
<span style="font-size:14px;"> <property> <name>http.agent.name</name> <value>YourNutchSpider</value> </property> </span>
l 在文件末尾添加以下内容
<span style="font-size:14px;"> <property> <name>http.accept.language</name> <value>ja-jp, en-us,en-gb,en;q=0.7,*;q=0.3</value> <description>Value of the Accept-Language request header field. This allows selecting non-English language as default one to retrieve. It is a useful setting for search engines build for certain national group. </description> </property> 支持的语言 <property> <name>storage.data.store.class</name> <value>org.apache.gora.sql.store.SqlStore</value> <description>The Gora DataStore class for storing and retrieving data. Currently the following stores are available:. </description> </property> 支持数据库存储 <property> <name>parser.character.encoding.default</name> <value>utf-8</value> <description>The character encoding to fall back to when no other information is available</description> </property> </span>编码格式
l 特别添加以下内容
<span style="font-size:14px;"> <property> <name>generate.batch.id</name> <value>*</value> </property> </span>
如果不添加此项内容,则通过”bin/nutch crawl urls –threads n –depths n”爬取网页时,在日志中会看到以下错误:
java.lang.NullPointerException
at org.apache.avro.util.Utf8.<init>(Utf8.java:37)
at org.apache.nutch.crawl.GeneratorReducer.setup(GeneratorReducer.java:100)
at org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:174)
at org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:649)
at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:418)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:398)
并且“nutch-site”文件需要保存为utf-8格式,否则在执行nutch命令时会出现以下错误。
Exception in thread “main” java.lang.RuntimeException: com.sun.org.apache.xerces.internal.impl.io.malformedByteSequenceException: 1字节的UTF-8序列的字节 1 无效。
6) 编译nutch 2.2
在保证已安装ant的情况下(没有安装的可在网上baidu下ant的安装方法),回到nutch根目录,使用ant编译 ${NUTCH_HOME}。如果都按上述配置一步步做了,则编译过程将顺利完成。至此,Nutch 2.2的安装也已完成,接下来就可以根据需要配置网页抓取信息,进行网页抓取了。
三. 网页抓取配置
1) 设置抓取的网站<span style="font-size:14px;"> cd ${NUTCH_HOME}/runtime/local mkdir -p urls echo 'http://www.tianya.cn' > urls/seed.tx </span>
2) 执行爬取操作
<span style="font-size:14px;"> $ bin/nutch crawl urls -depth 3 -topN </span>执行完在mysql中即可查看到爬虫抓取的内容。
完成。
四. 介绍mysql的几个常用命令
1、、创建数据库
命令:create database <数据库名>
例如:建立一个名为test的数据库
mysql> create database test;
2、显示所有的数据库
命令:show databases
mysql> show databases;
3、删除数据库
命令:drop database <数据库名>
例如:删除名为 test的数据库
mysql> drop database test;
4、连接数据库
命令: use <数据库名>
例如:如果test数据库存在,尝试存取它:
mysql> use test;
屏幕提示:Database changed
5、查看当前使用的数据库
mysql> select database();
6、当前数据库包含的表信息:
mysql> show tables;
相关文章推荐
- Nutch 2.2+MySQL+Solr4.2实现网站内容的抓取和索引
- Nutch 2.2+MySQL+Solr4.2实现网站内容的抓取和索引
- Nutch 2.2+MySQL+Solr4.2实现网站内容的抓取和索引
- Nutch 2.2+MySQL+Solr4.2实现网站内容的抓取和索引
- Nutch 2.2+MySQL实现网站内容的抓取和索引
- Nutch 2.2.1+MySQL+Solr4.2实现网站内容的抓取和索引
- 关于windows下Nutch 2.2+MySQL实现网站内容的抓取的搭建步骤
- windows环境下nutch2.x 在eclipse中实现抓取数据存进mysql详细步骤
- windows环境下nutch2.x 在eclipse中实现抓取数据存进mysql详细步骤
- 【C#】C#实现对网站数据的采集和抓取
- C#实现对网站数据的采集和抓取
- Nutch抓取数据内容的详解
- php 实现从其他网站拷贝的富文本内容并将里面的图片抓取到本地
- Nutch2.1+mysql+solr3.6.1+中文网站抓取
- 【C#】C#实现对网站数据的采集和抓取
- C# 实现抓取网站页面内容
- C#实现对网站数据的采集和抓取
- C# 实现抓取网站页面内容的实例方法
- Nutch 抓取数据到MySQL详细过…
- vba抓取网站内容(ajax返回格式数据)