`
h140465
  • 浏览: 21818 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Nutch2+Mysql的数据库异常

 
阅读更多

      最近使用Nutch2.2.1+MySql进行爬虫研究,发现经常会遇到建表失败,乱码异常种类的问题。经过这些天的研究,特别解决方法记录一下。

     首先,Mysql的安装,数据库的编码必须是utf8格式(GBK也可以)。需要修改my.ini文件

[client]
port = 3306
default-character-set = utf8

[mysql]
default-character-set = utf8

[mysqld]
port = 3306
character-set-client-handshake = FALSE
character-set-server = utf8
collation-server = utf8_general_ci
init_connect='SET NAMES utf8'
#数据库安装路径
basedir=E:\Program Files\MySql5.6\
#数据存储路径
datadir=E:\ProgramData\MySQL\MySQL Server 5.6\data\ #

 接着需要修改Nutch中的表映射文件gora-sql-mapping.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at
  
  http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<gora-orm>

<class name="org.apache.nutch.storage.WebPage" keyClass="java.lang.String" table="webpage">
  <primarykey column="id" length="255"/>
    <field name="baseUrl" column="baseUrl" length="512"/>    
    <field name="status" column="status"/>
    <field name="prevFetchTime" column="prevFetchTime"/>
    <field name="fetchTime" column="fetchTime"/>
    <field name="fetchInterval" column="fetchInterval"/>
    <field name="retriesSinceFetch" column="retriesSinceFetch"/>
    <field name="reprUrl" column="reprUrl" length="512"/>
    <field name="content" column="content" length="21044"  />
    <field name="contentType" column="typ" length="32"/>    
    <field name="protocolStatus" column="protocolStatus"/>
    <field name="modifiedTime" column="modifiedTime"/>
    <field name="prevModifiedTime" column="prevModifiedTime"/>
    <field name="batchId" column="batchId" length="32"/>

    <!-- parse fields                                       -->
    <field name="title" column="title" length="512"/>
    <field name="text" column="text" jdbc-type="TEXT"/>
    <field name="parseStatus" column="parseStatus"/>
    <field name="signature" column="signature"/>
    <field name="prevSignature" column="prevSignature"/>

    <!-- score fields                                       -->
    <field name="score" column="score"/>
    <field name="headers" column="headers"/>
    <field name="inlinks" column="inlinks"/>
    <field name="outlinks" column="outlinks"/>
    <field name="metadata" column="metadata"/>
    <field name="markers" column="markers"/>
</class>

<class name="org.apache.nutch.storage.Host" keyClass="java.lang.String"
table="host">
  <primarykey column="id" length="512"/>
  <field name="metadata" column="metadata"/>
  <field name="inlinks" column="inlinks"/>
  <field name="outlinks" column="outlinks"/>
</class>

</gora-orm>

 至此,运行nutch抓取网页的时候,可以正常工作,不会出现建表失败,乱码导致异常

分享到:
评论

相关推荐

    nutch2.2.1和Mysql 环境的搭建。。。。可以爬下url.但是不知道为什么还有很多空的值在数据库中,还有待.zip

    MySQL 是一个流行的开源关系型数据库管理系统,常用于存储和管理 Nutch 抓取的数据。当您在设置 Nutch 与 MySQL 的环境时,可能会遇到各种问题,例如数据库中出现空值。下面我们将详细讨论如何搭建这个环境以及可能...

    java爬取亚马逊的Iphone信息.zip

    Java有许多数据存储解决方案,如CSV文件、MySQL数据库、MongoDB等NoSQL数据库。根据数据量和需求,开发者会选择合适的存储方式。 6. IP代理与反反爬策略:为了避免被目标网站封IP,开发者可能需要使用代理IP池,并...

    Java项目实战-基于网络爬虫技术的网络新闻分析(附源码,部署说明).zip

    2. **Java编程**:项目的核心编程语言是Java,这要求开发者具备扎实的Java基础,包括面向对象编程、异常处理、集合框架、IO流等知识。 3. **数据存储**:项目中涉及到数据库操作,可能是MySQL、PostgreSQL或其他...

    java开发的网络爬虫PDF+源码.zip

    3. **数据存储**:介绍如何将抓取的数据存储到文件系统、数据库(如MySQL)或NoSQL数据库(如MongoDB)中。 4. **并发与多线程**:讨论如何利用Java的并发机制提高爬虫的抓取效率。 5. **反爬策略与应对**:讲解...

    java写的搜索引擎网络爬虫源码

    这可能涉及到数据库(如MySQL、MongoDB)的使用,或者采用倒排索引结构(如Lucene)来提高查询效率。 7. **反爬虫策略**: - 为了应对网站的反爬机制,Java爬虫可能需要实现模拟登录、设置User-Agent、控制请求...

    海量网页爬虫系统设计报告(20210809122911).pdf

    数据库可以是关系型数据库如MySQL,也可以是非关系型数据库如MongoDB。文档中可能未直接提及数据库,但在爬虫系统设计中,如何存储和管理抓取的数据是一个重要环节。 9. 数据封装: - LinkTypeData类:这是一个Java...

    大数据培训课程安排.pdf

    主要技术包括:Hibernate、Spring、SpringMVC、log4j slf4j 整合、myBatis、struts2、Shiro 、redis、流程引擎activity, 爬 ⾍技术nutch,lucene,webService CXF、Tomcat集群和热备 、MySQL读写分离 4. 描述如下:...

    [搜索链接]Java网络爬虫(蜘蛛)源码_zhizhu.zip

    4. **数据存储**:爬取的数据需要存储,可能涉及数据库操作,如使用JDBC连接MySQL,或者使用NoSQL数据库如MongoDB进行非结构化数据存储。 5. **网络爬虫框架**:除了基础的编程,也可能涉及到如Apache Nutch、...

    7.爬虫系统架构设计方案1优化策略(二).zip

    7. **持久化存储优化**:对于存储模块,可以选择合适的数据库(如MongoDB、MySQL等),并进行索引优化,提高数据写入和查询的效率。同时,可以利用批量插入减少数据库操作次数,提升性能。 8. **日志监控与报警**:...

    python招聘要求.docx

    数据库管理能力也是必备技能,包括MySQL、MongoDB和PostgreSQL等关系型和非关系型数据库的使用。熟悉SQL查询,能够进行数据库设计和优化,以及处理海量数据存储问题是重要的。 缓存系统如Redis和Memcached的运用...

    搜索链接Java网络爬虫(蜘蛛)源码-zhizhu

    Java可以通过JDBC接口连接各种数据库,如MySQL、Oracle等。或者使用NoSQL数据库如MongoDB,便于处理大量非结构化数据。 5. **异常处理**:网络爬虫在运行过程中可能会遇到各种问题,如网络错误、服务器返回异常状态...

    Open Source Web Crawler for Java.zip

    4. **数据存储**:抓取的数据可能需要存入数据库(如MySQL、MongoDB)或文件系统(如CSV、JSON)。Java的JDBC API可以连接多种数据库,而Jackson或Gson库则方便地将数据序列化为JSON格式。 5. **爬虫框架**:Java也...

    Java写的爬虫

    6. **数据存储**:抓取的数据通常需要存储,可以是文件系统、数据库(如MySQL、MongoDB)或是云存储服务。Java提供了JDBC接口和其他库如JPA、Hibernate来方便地与数据库交互。 7. **异常处理与日志记录**:良好的...

    自己用java做的一个类似网页爬虫的东西

    7. **数据存储**:抓取到的数据通常需要保存,可以使用文件系统、数据库(如MySQL、MongoDB)、甚至是NoSQL存储如Hadoop的HDFS。理解如何将抓取到的结构化数据适配到不同的存储方式很重要。 8. **爬虫策略**:深度...

    搜索链接Java网络爬虫(蜘蛛)源码-zhizhu.zip

    5. **数据存储**:爬取的数据需要存储,常见的存储方式包括文件系统、数据库(如MySQL、MongoDB)以及NoSQL存储(如HBase)。源码可能涉及如何将抓取的数据有效地存储和组织。 6. **多线程与并发**:为了提高爬取...

    基于JAVA的网络爬虫脚本语言,可以直接使用或用JAVA二次开发.zip

    7. **数据存储**:抓取的数据通常需要存储,这可能涉及到数据库操作,如SQLite、MySQL或NoSQL数据库如MongoDB。理解JDBC或数据库连接池的概念是必要的。 8. **异常处理和日志记录**:良好的错误处理和日志记录能...

    Crawler.zip

    7. **数据存储**:爬取的数据通常需要存储,这可能涉及到数据库(如MySQL、MongoDB)或文件系统(如CSV、JSON)。 8. **异常处理与日志记录**:良好的错误处理和日志记录机制可以帮助调试和监控爬虫运行情况。 9. ...

    JavaEE实现分布式爬虫新闻聚合网站 SSM框架实现.zip

    7. **数据库设计与优化**:项目可能使用MySQL、Oracle或其他关系型数据库存储抓取的新闻数据,涉及表结构设计、索引优化、事务处理等。 8. **Web服务接口**:可能采用RESTful API设计,提供给前端或其他系统调用,...

    codephp62

    PHP通常与MySQL数据库结合使用,通过PDO(PHP Data Objects)或mysqli扩展进行数据库操作。这些扩展支持预处理语句,提高了安全性并降低了SQL注入的风险。 7. **错误和异常处理** PHP提供了错误报告和异常处理...

    java爬虫抓取网页内容,下载网站图片

    4. **存储与持久化**:抓取的数据通常需要存储,可以选择数据库(如MySQL、MongoDB)或文件系统。对于图片,除了保存为文件,还可以考虑使用对象存储服务,如阿里云OSS、亚马逊S3。 5. **异常处理与日志记录**:...

Global site tag (gtag.js) - Google Analytics