GithubHelp home page GithubHelp logo

bluemapleman / newsrecommendsystem Goto Github PK

View Code? Open in Web Editor NEW
753.0 41.0 275.0 2.24 MB

个性化新闻推荐系统,A news recommendation system involving collaborative filtering,content-based recommendation and hot news recommendation, can be adapted easily to be put into use in other circumstances.

License: MIT License

Java 55.79% PLpgSQL 44.21%
recommender-system collaborative-filtering content-based-recommendation news-recommendation

newsrecommendsystem's Introduction

个性化新闻推荐系统--TomRecommenderSystem

若有任何有关项目的问题(导入、运行、后期改进、需求等等),欢迎首先在issue里提出,我会随时查看并积极回复!谢谢大家!

中文文档 | English Document

说明

本推荐系统使用的推荐算法包括协同过滤(Collaborative Filtering)、基于内容相似度的推荐(Content-based Recommendation)与热点新闻推荐(Hot News Recommendation):

  • 协同过滤的实现依托于Mahout的提供库;
  • 基于内容的相似度推荐在原始算法上基于相关论文做了自主的改进;
  • 热点新闻推荐顾名思义是取最近被最多用户浏览过的新闻进行推荐。

推荐算法的具体细节可参考文件[推荐系统介绍.pdf]

主要使用的库(Lib):

  • Ansj:基于内容的推荐部分用以分词,以及其内含的TFIDF算法。
  • Quartz:推荐系统定时运行的设定。
  • Mahout:使用内置的协同过滤算法。
  • Jfinal:使用内置的ActiveRecord与Db工具,对推荐系统中的数据库表做了实体类映射,以简化数据库相关操作。

本推荐系统需要基于【新闻模块】使用,此处对于【新闻模块】的定义是:**有规律地进行新闻采集,并通过公共平台对用户进行新闻展示与推送的应用。**当然,这是实际应用的需求,如果只是自己做研究或者实验的话,可以只使用测试数据即可。

使用

预备工作

一、数据库配合

(该步骤主要是为了说明推荐系统要求交互的数据。真实建库的话,直接在新建的数据库中运行测试数据,即可完成所有建表工作,附带提供的测试数据。)

本推荐系统目前只支持与MYSQL数据库进行交互

本系统需要与五个表进行交互:用户表(users),新闻表(news),新闻模块表(newsmodules),浏览记录表(newslogs),推荐结果表(Recommendations)。

  • 用户表users

存储用户基本信息的表。要求至少拥有两个字段:用户id(id:bigint),用户喜好关键词列表(pref_list:json),用户最近登录时间(latest_log_time:timestamp)。

字段名 类型 非空 主键 外键 自增 默认值
id bigint yes yes yes
pref_list text yes {"moduleid1":{},"moduleid2":{},...}
latest_log_time timestamp yes
  • 新闻表news

存储新闻基本信息的表。要求至少拥有三个字段:新闻id(id:bigint),新闻文本内容(content:text),所属模块(module_id)。

字段名 类型 非空 主键 外键 自增 默认值
id bigint yes yes yes
title text yes
content text yes
module_id int yes yes
  • 新闻模块表newsmodules

存储新闻模块信息的表。要求至少拥有两个字段:模块id(id:int),模块名称(name:text),抓取时间/新闻日期(news_time:timestamp)。

字段名 类型 非空 主键 外键 自增 默认值
id int yes yes yes
name text yes
news_time timestamp yes
  • 浏览记录表newslogs

存储用户浏览新闻记录的表。要求至少拥有三个字段:记录id(id:bigint),用户id(user_id:bigint),新闻id(news_id:bigint),浏览时间(view_time:timestamp),用户对新闻的偏好程度(prefer_degree[0:仅仅浏览,1:评论,2:收藏])。

字段名 类型 非空 主键 外键 自增 默认值
id bigint yes yes yes
user_id bigint yes yes
news_id bigint yes yes
view_time timestamp yes
prefer_degree int yes
  • 推荐结果表Recommendations

存储推荐系统为用户生成的推荐结果及用户反馈的表。要求至少拥有五个字段:推荐结果id(id:bigint),用户id(user_id:bigint),新闻id(news_id:bigint),推荐结果生成时间戳(derive_time:timestamp),用户反馈(feedback:bit[0:用户未浏览,1:用户进行了浏览]),结果生成的对应推荐算法(derive_algorithm:int[0:协同过滤,1:基于内容的推荐,2:热点新闻推荐])

字段名 类型 非空 主键 外键 自增 默认值
id bigint yes yes yes
user_id bigint yes yes
news_id bigint yes yes
derive_time timestamp yes
feedback bit 0
derive_algorithm int yes

二、数据库连接配置

在项目根目录下的res目录下,修改dbconfig.properties文件中有关数据库的配置:

url = jdbc:mysql://[数据库ip]/[数据库名]?useUnicode=true&characterEncoding=utf8
user = [登录用户名]
password = [登录密码]

注意,数据库的编码设置应为utf8mb4。(mb4支持emoji字符)

系统启动-Quick Start

完成数据库配置后,依次四个步骤:

1.在com.qianxinyao.TomNewsRecommender包下,找到类Main;

2.选择推荐算法。设置boolean类型的enableCB,enableCF,enableHR变量,分别代表推荐过程中是否启用协同过滤推荐算法、基于内容的推荐算法、基于热点新闻的推荐算法。若均设为true,表示三种算法均工作,一起为用户生成推荐结果;

3.选择推荐对象。推荐对象分为三种:全体用户,活跃用户(最近一段时间有登录行为)与自定义用户(自己指定的用户),若选择自定义用户,需要构建包含目标用户id(long)的List;

4.选择系统运行方式。运行方式分为两种:一次运行和定时运行。一次运行即只为用户进行一次推荐生成,生成结束后则系统停止,若要再生成推荐,需要重新启动系统。而定时运行则可以定时为用户生成推荐结果,若不强制停止系统,则系统会一直运行下去。(定时运行时间在paraConfig.properties文件中设定)

以下是示例代码:

package com.qianxinyao.TomNewsRecommender;

import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;

/**
 * @author bluemapleman
 * @email [email protected]
 * @github https://github.com/bluemapleman
 * @date 2016年10月20日
 * 推荐系统入口类,在此启动推荐系统。
 */
public class Main
{
    
    public static final Logger logger = Logger.getLogger(Main.class);
    
    /**
     * 推荐系统运行入口
     * @param args
     */
    public static void main(String[] args)
    {
        //选择要在推荐系统中运行的推荐算法
        boolean enableCF=true,enableCB=false,enableHR=false;
        
        List<Long> userList=new ArrayList<Long>();
        userList.add(1L);
        userList.add(2L);
        userList.add(3L);
        
        //为指定用户执行一次推荐
        new JobSetter(enableCF,enableCB,enableHR).executeInstantJobForCertainUsers(userList);
        //定时执行推荐
//      new JobSetter(enableCF,enableCB,enableHR).executeQuartzJob(forActiveUsers);
    }
}

日常使用

系统运行的各类参数都可以在根目录下src/main/res目录下的paraConfig.properties文件中进行配置。默认配置是推荐配置。

若需要推荐系统能在每次生成有效的推荐,只要【新闻模块】保持以一定频率抓取一定量的新闻并入库news表。(最好与推荐系统定时推荐的频率相同,并在推荐系统运行之前完成一次抓取,推荐每天抓取一次新闻,并进行一次推荐生成。)

注意:入库的新闻要标注module_id,详情可参见数据库表与com.qianxinyao.TomNewsRecommender包下的NewsScraper类中的代码。

测试数据

在Mysql数据库中运行data.sql中的sql语句,可生成数据库结构与测试数据。

测试数据中包含以下几个部分:

  • users表:7个测试用户
  • news表:306个2017-12-12日从网易首页抓取的测试新闻
  • newsmodules表:17个测试模块
  • newslogs:测试推荐算法效果用的9条浏览记录

要查看推荐系统在测试数据上运行的效果,只需在Main类下执行:

//在测试数据上运行
new TestDataRunner().runTestData();

预期的推荐生成结果如下:

  • 若对测试数据进行一次协同过滤,将生成0条推荐。
  • 若对测试数据进行一次基于内容的推荐,将为用户1(id=1)推荐85,87,89,104这四条新闻(有重复标题的新闻,新闻标题中的“合同”关键词匹配上了用户的喜好关键词),为用户2推荐89新闻(重复标题的新闻),推荐用户3推荐87,85,100这三条新闻(新闻标题中的“合同”关键词匹配上了用户的喜好关键词)。
  • 若对测试数据进行一次基于热点新闻的推荐,将分别为用户1推荐103,104,为用户2推荐100,104,为用户3推荐100,101,因为最近被浏览得最多的新闻就是这三个拥有浏览记录的用户看过的那些新闻(100,101,102,103,104)。

额外说明

1.com.qianxinyao.TomNewsRecommender下的NewsScraper类是抓取网易的测试新闻时用的类,大家也可以用这个类继续采集新闻。该类默认对网易新闻首页的所有新闻进行一次抓取入库。

2.协同过滤的效果目前不太稳定/可控,因为采用的是Mahout内置的协同过滤工具。一般来说,新闻模块的活跃用户越多,则协同过滤效果越好,也越明显。若有需求,我会在后期自己实现能稳定生成指定数量的推荐结果的协同过滤算法。

3.一般当协同过滤与基于内容的推荐算法生成的推荐数目不足时,可以用基于热点新闻的推荐进行数量补充。

更新日志

欢迎大家踊跃提出自己对该推荐系统的任何想法和建议!

版本 日期 特性
V1.0.0 2018/10/04 规整README.md说明文档,使之更加易懂理解。
V1.0.1 开发中 1. 自主实现Java版本的TFIDF算法,或者整理一份训练语料库,以达到更好的关键词提取效果;
2.改善基于内容的推荐算法的匹配程度计算方法,使之更加高效。(若用户的偏好列表中有数千喜好关键词,若将一千条最近的新闻与该用户做匹配,后台计算出推荐结果列表只需要100ms,不考虑网络传输等其他时间因素)

newsrecommendsystem's People

Contributors

bluemapleman avatar carsickcars avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

newsrecommendsystem's Issues

运行问题

您好!不好意思请问一下该项目是只需要配置好数据库url、user、password就可以了吗?运行出现了一些错误,还不能定位出在哪个地方。

後期需求還有繼續嗎?

關於您的第二點額外說明~
想請問一下,Mahout 協同過濾工具不好嗎?
目前這項目還有持續維護嗎?非常期待後期的部分~

会出现Incorrect TIMESTAMP value: ''2019-07-30''问题,不知道该怎么解决。

com.jfinal.plugin.activerecord.ActiveRecordException: java.sql.SQLException: Incorrect TIMESTAMP value: ''2019-07-30''
at com.jfinal.plugin.activerecord.Model.find(Model.java:579)
at top.qianxinyao.algorithms.RecommendKit.filterReccedNews(RecommendKit.java:124)
at top.qianxinyao.contentbasedrecommend.ContentBasedRecommender.recommend(ContentBasedRecommender.java:95)
at top.qianxinyao.Main.JobSetter.executeInstantJob(JobSetter.java:112)
at top.qianxinyao.Main.JobSetter.executeInstantJobForCertainUsers(JobSetter.java:125)
at top.qianxinyao.Main.TestDataRunner.runTestData(TestDataRunner.java:37)
at top.qianxinyao.Main.Main.main(Main.java:26)
Caused by: java.sql.SQLException: Incorrect TIMESTAMP value: ''2019-07-30''
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:127)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1019)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:379)
at com.jfinal.plugin.activerecord.Model.find(Model.java:560)
at com.jfinal.plugin.activerecord.Model.find(Model.java:577)
... 6 more

mvn compile问题

执行mvn compile 遇到错误:Could not resolve dependencies for project top.tomqian:recommender-system:jar:0.0.1-SNAPSHOT: Could not find artifact jdk.tools:jdk.tools:jar:1.7 at specified path /usr/local/java/jdk-17.0.2/../lib/tools.jar
求教一下这个问题应该怎么解决,网上找了很多资料都没有解决。
感谢!

数据来源

你好,想问下数据来源,newslogs这个表的数据怎么获取的,我看到的TestDataProcessor只是爬取网易的新闻,并没有某个用户的历史记录.

请问性能怎么保证?

请问性能怎么保证? 比如一天增长几万个新闻, 如果有20万数据, 这个大概耗时多少? 定时任务多久能跑完呢?

数据库连接初始化错误!

19/09/09 10:41:16 INFO impl.AbstractPoolBackedDataSource: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 2, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource -> caller, dataSourceName -> 1bqrgyfa55iqosw1l9r37i|dd8ba08, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> com.mysql.jdbc.Driver, extensions -> {}, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, forceSynchronousCheckins -> false, forceUseNamedDriverClass -> false, identityToken -> 1bqrgyfa55iqosw1l9r37i|dd8ba08, idleConnectionTestPeriod -> 0, initialPoolSize -> 10, jdbcUrl -> jdbc:mysql://localhost:3306/newsrecommender?useUnicode=true&characterEncoding=utf8, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 20, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 100, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 10, numHelperThreads -> 3, preferredTestQuery -> null, privilegeSpawnedThreads -> false, properties -> {user=, password=}, propertyCycle -> 0, statementCacheNumDeferredCloseThreads -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, userOverrides -> {}, usesTraditionalReflectiveProxies -> false ]
19/09/09 10:41:16 ERROR dbconnection.DBKit: 数据库连接初始化错误!

启动报错Config already exists: main

java.lang.IllegalArgumentException: Config already exists: main
at com.jfinal.plugin.activerecord.DbKit.addConfig(DbKit.java:63)
at com.jfinal.plugin.activerecord.ActiveRecordPlugin.start(ActiveRecordPlugin.java:210)
at top.qianxinyao.dbconnection.DBKit.initalize(DBKit.java:55)
at top.qianxinyao.main.JobSetter.(JobSetter.java:43)
at top.qianxinyao.main.Main.main(Main.java:40)

我使用的是jdk1.8 在运行时出现类型转换异常java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer

java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
at com.jfinal.plugin.activerecord.Model.getInt(Model.java:203)
at top.qianxinyao.hotrecommend.HotRecommender.recommend(HotRecommender.java:50)
at top.qianxinyao.Main.JobSetter.executeInstantJob(JobSetter.java:114)
at top.qianxinyao.Main.JobSetter.executeInstantJobForCertainUsers(JobSetter.java:125)
at top.qianxinyao.Main.Main.main(Main.java:40)
Thu May 21 15:17:30 CST 2020 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
at com.jfinal.plugin.activerecord.Model.getInt(Model.java:203)
at top.qianxinyao.hotrecommend.HotRecommender.recommend(HotRecommender.java:50)
at top.qianxinyao.Main.JobSetter.executeInstantJob(JobSetter.java:114)
at top.qianxinyao.Main.JobSetter.executeInstantJobForCertainUsers(JobSetter.java:125)
at top.qianxinyao.Main.Main.main(Main.java:40)
Thu May 21 15:17:30 CST 2020 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
at com.jfinal.plugin.activerecord.Model.getInt(Model.java:203)
at top.qianxinyao.hotrecommend.HotRecommender.recommend(HotRecommender.java:50)
at top.qianxinyao.Main.JobSetter.executeInstantJob(JobSetter.java:114)
at top.qianxinyao.Main.JobSetter.executeInstantJobForCertainUsers(JobSetter.java:125)
at top.qianxinyao.Main.Main.main(Main.java:40)
HR has contributed 0 recommending news on average
HR end at Thu May 21 15:17:30 CST 2020
本次推荐结束于Thu May 21 15:17:30 CST 2020

导入报错

D:\Java\jdk1.8.0_321\bin\java.exe "-javaagent:D:\soft\IntelliJ IDEA Community Edition 2021.3.3\lib\idea_rt.jar=60833:D:\soft\IntelliJ IDEA Community Edition 2021.3.3\bin" -Dfile.encoding=UTF-8 -classpath D:\java\jdk1.8.0_321\jre\lib\charsets.jar;D:\java\jdk1.8.0_321\jre\lib\deploy.jar;D:\java\jdk1.8.0_321\jre\lib\ext\access-bridge-64.jar;D:\java\jdk1.8.0_321\jre\lib\ext\cldrdata.jar;D:\java\jdk1.8.0_321\jre\lib\ext\dnsns.jar;D:\java\jdk1.8.0_321\jre\lib\ext\jaccess.jar;D:\java\jdk1.8.0_321\jre\lib\ext\jfxrt.jar;D:\java\jdk1.8.0_321\jre\lib\ext\localedata.jar;D:\java\jdk1.8.0_321\jre\lib\ext\nashorn.jar;D:\java\jdk1.8.0_321\jre\lib\ext\sunec.jar;D:\java\jdk1.8.0_321\jre\lib\ext\sunjce_provider.jar;D:\java\jdk1.8.0_321\jre\lib\ext\sunmscapi.jar;D:\java\jdk1.8.0_321\jre\lib\ext\sunpkcs11.jar;D:\java\jdk1.8.0_321\jre\lib\ext\zipfs.jar;D:\java\jdk1.8.0_321\jre\lib\javaws.jar;D:\java\jdk1.8.0_321\jre\lib\jce.jar;D:\java\jdk1.8.0_321\jre\lib\jfr.jar;D:\java\jdk1.8.0_321\jre\lib\jfxswt.jar;D:\java\jdk1.8.0_321\jre\lib\jsse.jar;D:\java\jdk1.8.0_321\jre\lib\management-agent.jar;D:\java\jdk1.8.0_321\jre\lib\plugin.jar;D:\java\jdk1.8.0_321\jre\lib\resources.jar;D:\java\jdk1.8.0_321\jre\lib\rt.jar;D:\GRADUATE\1\target\classes;D:\java\jdk1.8.0_321\lib\tools.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\com\jfinal\jfinal\3.0\jfinal-3.0.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\cglib\cglib-nodep\3.1\cglib-nodep-3.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\ansj\ansj_seg\5.0.3\ansj_seg-5.0.3.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\nlpcn\nlp-lang\1.7\nlp-lang-1.7.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\slf4j\slf4j-api\1.7.21\slf4j-api-1.7.21.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\com\mchange\c3p0\0.9.5.1\c3p0-0.9.5.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\com\mchange\mchange-commons-java\0.2.10\mchange-commons-java-0.2.10.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\com\fasterxml\jackson\core\jackson-core\2.5.3\jackson-core-2.5.3.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\log4j\log4j\1.2.16\log4j-1.2.16.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\mysql\mysql-connector-java\8.0.28\mysql-connector-java-8.0.28.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\com\google\protobuf\protobuf-java\3.11.4\protobuf-java-3.11.4.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\quartz-scheduler\quartz\2.2.2\quartz-2.2.2.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\postgresql\postgresql\42.1.1\postgresql-42.1.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\mahout\mahout-core\0.9\mahout-core-0.9.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\mahout\mahout-math\0.9\mahout-math-0.9.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\codehaus\jackson\jackson-core-asl\1.9.12\jackson-core-asl-1.9.12.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\codehaus\jackson\jackson-mapper-asl\1.9.12\jackson-mapper-asl-1.9.12.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\com\thoughtworks\xstream\xstream\1.4.4\xstream-1.4.4.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\xmlpull\xmlpull\1.1.3.1\xmlpull-1.1.3.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\xpp3\xpp3_min\1.1.4c\xpp3_min-1.1.4c.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\lucene\lucene-core\4.6.1\lucene-core-4.6.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\lucene\lucene-analyzers-common\4.6.1\lucene-analyzers-common-4.6.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\mahout\commons\commons-cli\2.0-mahout\commons-cli-2.0-mahout.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\commons\commons-math3\3.2\commons-math3-3.2.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\solr\solr-commons-csv\3.5.0\solr-commons-csv-3.5.0.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hadoop\hadoop-core\1.2.1\hadoop-core-1.2.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\commons-cli\commons-cli\1.2\commons-cli-1.2.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\com\sun\jersey\jersey-core\1.8\jersey-core-1.8.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\com\sun\jersey\jersey-json\1.8\jersey-json-1.8.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\codehaus\jettison\jettison\1.1\jettison-1.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\stax\stax-api\1.0.1\stax-api-1.0.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\com\sun\xml\bind\jaxb-impl\2.2.3-1\jaxb-impl-2.2.3-1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\javax\xml\bind\jaxb-api\2.2.2\jaxb-api-2.2.2.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\javax\xml\stream\stax-api\1.0-2\stax-api-1.0-2.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\javax\activation\activation\1.1\activation-1.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\codehaus\jackson\jackson-jaxrs\1.7.1\jackson-jaxrs-1.7.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\codehaus\jackson\jackson-xc\1.7.1\jackson-xc-1.7.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\com\sun\jersey\jersey-server\1.8\jersey-server-1.8.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\asm\asm\3.1\asm-3.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\commons-httpclient\commons-httpclient\3.0.1\commons-httpclient-3.0.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\commons-codec\commons-codec\1.4\commons-codec-1.4.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\commons\commons-math\2.1\commons-math-2.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\commons-configuration\commons-configuration\1.6\commons-configuration-1.6.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\commons-digester\commons-digester\1.8\commons-digester-1.8.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\commons-beanutils\commons-beanutils\1.7.0\commons-beanutils-1.7.0.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\commons-beanutils\commons-beanutils-core\1.8.0\commons-beanutils-core-1.8.0.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\commons-net\commons-net\1.4.1\commons-net-1.4.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\commons-el\commons-el\1.0\commons-el-1.0.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\mahout\mahout-integration\0.12.2\mahout-integration-0.12.2.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\mahout\mahout-hdfs\0.12.2\mahout-hdfs-0.12.2.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hadoop\hadoop-client\2.4.1\hadoop-client-2.4.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hadoop\hadoop-hdfs\2.4.1\hadoop-hdfs-2.4.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-app\2.4.1\hadoop-mapreduce-client-app-2.4.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-common\2.4.1\hadoop-mapreduce-client-common-2.4.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hadoop\hadoop-yarn-client\2.4.1\hadoop-yarn-client-2.4.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\com\sun\jersey\jersey-client\1.9\jersey-client-1.9.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hadoop\hadoop-yarn-server-common\2.4.1\hadoop-yarn-server-common-2.4.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-shuffle\2.4.1\hadoop-mapreduce-client-shuffle-2.4.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\slf4j\slf4j-log4j12\1.7.5\slf4j-log4j12-1.7.5.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hadoop\hadoop-yarn-api\2.4.1\hadoop-yarn-api-2.4.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-jobclient\2.4.1\hadoop-mapreduce-client-jobclient-2.4.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hadoop\hadoop-annotations\2.4.1\hadoop-annotations-2.4.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\mahout\mahout-mr\0.12.2\mahout-mr-0.12.2.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\commons-io\commons-io\2.4\commons-io-2.4.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\com\google\guava\guava\14.0.1\guava-14.0.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hbase\hbase-client\1.0.0\hbase-client-1.0.0.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hbase\hbase-annotations\1.0.0\hbase-annotations-1.0.0.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hbase\hbase-common\1.0.0\hbase-common-1.0.0.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\mortbay\jetty\jetty-util\6.1.26\jetty-util-6.1.26.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hbase\hbase-protocol\1.0.0\hbase-protocol-1.0.0.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\io\netty\netty-all\4.0.23.Final\netty-all-4.0.23.Final.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\zookeeper\zookeeper\3.4.6\zookeeper-3.4.6.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\htrace\htrace-core\3.1.0-incubating\htrace-core-3.1.0-incubating.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\jruby\jcodings\jcodings\1.0.8\jcodings-1.0.8.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\jruby\joni\joni\2.1.2\joni-2.1.2.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hadoop\hadoop-auth\2.5.1\hadoop-auth-2.5.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\httpcomponents\httpclient\4.2.5\httpclient-4.2.5.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\httpcomponents\httpcore\4.2.4\httpcore-4.2.4.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\directory\server\apacheds-kerberos-codec\2.0.0-M15\apacheds-kerberos-codec-2.0.0-M15.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\directory\server\apacheds-i18n\2.0.0-M15\apacheds-i18n-2.0.0-M15.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\directory\api\api-asn1-api\1.0.0-M20\api-asn1-api-1.0.0-M20.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\directory\api\api-util\1.0.0-M20\api-util-1.0.0-M20.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hadoop\hadoop-common\2.5.1\hadoop-common-2.5.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\xmlenc\xmlenc\0.52\xmlenc-0.52.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\avro\avro\1.7.4\avro-1.7.4.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\com\thoughtworks\paranamer\paranamer\2.3\paranamer-2.3.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\xerial\snappy\snappy-java\1.0.4.1\snappy-java-1.0.4.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\com\jcraft\jsch\0.1.42\jsch-0.1.42.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\com\google\code\findbugs\jsr305\1.3.9\jsr305-1.3.9.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\commons\commons-compress\1.4.1\commons-compress-1.4.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\tukaani\xz\1.0\xz-1.0.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-core\2.5.1\hadoop-mapreduce-client-core-2.5.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\apache\hadoop\hadoop-yarn-common\2.5.1\hadoop-yarn-common-2.5.1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\io\netty\netty\3.6.2.Final\netty-3.6.2.Final.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\com\github\stephenc\findbugs\findbugs-annotations\1.3.9-1\findbugs-annotations-1.3.9-1.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\junit\junit\4.11\junit-4.11.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\org\jsoup\jsoup\1.8.3\jsoup-1.8.3.jar;C:\Users\zmx.DESKTOP-QVL1S3M.m2\repository\c3p0\c3p0\0.9.1.1\c3p0-0.9.1.1.jar top.zmx.Main.Main
开始测试数据的运行!
22/04/25 11:34:09 INFO log.MLog: MLog clients using slf4j logging.
22/04/25 11:34:10 INFO c3p0.C3P0Registry: Initializing c3p0-0.9.5.1 [built 16-June-2015 00:06:36 -0700; debug? true; trace: 10]
22/04/25 11:34:10 INFO impl.AbstractPoolBackedDataSource: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 2, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource -> caller, dataSourceName -> 1hgfdohaoqarocy547uhg|7d417077, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> com.mysql.jdbc.Driver, extensions -> {}, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, forceSynchronousCheckins -> false, forceUseNamedDriverClass -> false, identityToken -> 1hgfdohaoqarocy547uhg|7d417077, idleConnectionTestPeriod -> 0, initialPoolSize -> 10, jdbcUrl -> null, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 20, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 100, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 10, numHelperThreads -> 3, preferredTestQuery -> null, privilegeSpawnedThreads -> false, properties -> {}, propertyCycle -> 0, statementCacheNumDeferredCloseThreads -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, userOverrides -> {}, usesTraditionalReflectiveProxies -> false ]
Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
22/04/25 11:34:40 WARN resourcepool.BasicResourcePool: com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@73d699ae -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception:
java.lang.NullPointerException
at org.postgresql.Driver.parseURL(Driver.java:531)
at org.postgresql.Driver.acceptsURL(Driver.java:463)
at java.sql.DriverManager.getDriver(DriverManager.java:299)
at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:285)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:161)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:161)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:147)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:202)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1138)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125)
at com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)
at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)
22/04/25 11:34:40 WARN resourcepool.BasicResourcePool: com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@b999da4 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception:
java.lang.NullPointerException
at org.postgresql.Driver.parseURL(Driver.java:531)
at org.postgresql.Driver.acceptsURL(Driver.java:463)
at java.sql.DriverManager.getDriver(DriverManager.java:299)
at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:285)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:161)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:161)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:147)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:202)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1138)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125)
at com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)
at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)
22/04/25 11:34:40 WARN resourcepool.BasicResourcePool: com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@2017aca0 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception:
java.lang.NullPointerException
at org.postgresql.Driver.parseURL(Driver.java:531)
at org.postgresql.Driver.acceptsURL(Driver.java:463)
at java.sql.DriverManager.getDriver(DriverManager.java:299)
at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:285)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:161)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:161)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:147)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:202)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1138)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125)
at com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)
at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)
22/04/25 11:34:40 WARN resourcepool.BasicResourcePool: Having failed to acquire a resource, com.mchange.v2.resourcepool.BasicResourcePool@43814d18 is interrupting all Threads waiting on a resource to check out. Will try again in response to new client requests.
22/04/25 11:34:40 WARN resourcepool.BasicResourcePool: Having failed to acquire a resource, com.mchange.v2.resourcepool.BasicResourcePool@43814d18 is interrupting all Threads waiting on a resource to check out. Will try again in response to new client requests.
22/04/25 11:34:40 WARN resourcepool.BasicResourcePool: Having failed to acquire a resource, com.mchange.v2.resourcepool.BasicResourcePool@43814d18 is interrupting all Threads waiting on a resource to check out. Will try again in response to new client requests.
22/04/25 11:34:40 WARN resourcepool.BasicResourcePool: com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@5c42cc1e -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception:
java.lang.NullPointerException
at org.postgresql.Driver.parseURL(Driver.java:531)
at org.postgresql.Driver.acceptsURL(Driver.java:463)
at java.sql.DriverManager.getDriver(DriverManager.java:299)
at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:285)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:161)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:161)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:147)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:202)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1138)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125)
at com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)
at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)
22/04/25 11:34:40 WARN resourcepool.BasicResourcePool: Having failed to acquire a resource, com.mchange.v2.resourcepool.BasicResourcePool@43814d18 is interrupting all Threads waiting on a resource to check out. Will try again in response to new client requests.
22/04/25 11:34:40 ERROR dbconnection.DBKit: 数据库连接初始化错误!
Exception in thread "main" java.lang.NullPointerException
at com.jfinal.plugin.activerecord.Db.update(Db.java:213)
at top.zmx.Main.TestDataRunner.databaseReady(TestDataRunner.java:39)
at top.zmx.Main.TestDataRunner.runTestData(TestDataRunner.java:24)
at top.zmx.Main.Main.main(Main.java:23)

Process finished with exit code 1

请教

大大你好,我最近也在做相关的推荐系统,有一些问题,希望方便加个QQ请教一下。

系统无法推荐,表里数据没变化

boolean enableCF=true,enableCB=false,enableHR=false;
List userList=new ArrayList();
userList.add(1l);
new JobSetter(enableCF,enableCB,enableHR).executeInstantJobForCertainUsers(userList);

改上面三个任意为true,都无法将推荐结果写入数据库????

环境配置

你好~

我想问一下除了需要配置MySQL,还需要其他配置吗?例如Tomcat等。

谢谢~

我的一些问题

大佬您好,我想问下您这个项目里的内容推荐可以从eclipse上移植到Android Studio上嘛?学校里要求做一个带有可以用内容推荐来推荐文章的宠物App

导入项目错误

提示Build Path错误,还有Maven Dependency错误。和我jdk装的1.8.0_201是否有关呢?之前没用过maven需要配置哪些呢?
TIM图片20190409101224
屏幕截图(40)

新闻抓取问题

你好,请问新闻抓取部分内容是抓取不了的,是没有这个功能还是BUG呢,。

跑的时候发现的jdk版本问题

你好,我想问一下,我的机子装的是jdk9.0.4,导入以后发现pom.xml报错,尝试修改了pom加入了依赖
`

 <dependency>  
    <groupId>jdk.tools</groupId>  
    <artifactId>jdk.tools</artifactId>  
    <version>9.0.4</version>  
    <scope>system</scope>  
    <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>  
    </dependency>

`

但是好像不大管用,不知道怎么解决了
1

2

sql导入报错,我的版本是5.7

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

一个 package 名的小问题

Main.java 的第一行是:
package top.qianxinyao.main;
但 Main.java 所在的目录是:

NewsRecommendSystem/src/top/qianxinyao/Main/Main.java

'Main' 目录的 'M' 是大写的, 与 Main.java 中的第一行 package 语句不一致, Linux 下编译报错。
本人对 Java 不是特别熟悉, 难道这个大小写的问题是 Linux / Mac 平台有关?

导入

可以指导一下具体怎么操作吗,尤其是idea导入之后配置,网上教程对不上号,各种报错

无关文件删除

博主,如果可以的话,能否删除项目中的无用文件,比如log、target这些。

我的一些问题

以下是我的一些问题:
1.对测试数据进行测试结果应该是较为符合,但是进行协同过滤也会产生两条推荐,id:1用户的103号新闻以及id:3用户的101号新闻。
2.新闻推荐表如果不进行清空多次推荐就会报错并且不追加写入
3.关于后续的日常使用,大佬在说明里提到抓取的代码是默认对网易新闻首页的所有新闻进行一次抓取入库,同时也提到入库的新闻需要标注module_id,这块我不太理解.查看代码也不清楚这个module_id是怎么标注的
是要手动标注还是自动辨别的。
4.如果要真实使用的话用户的数据是怎么采集的,网页浏览信息是人工设定,还是有相关代码能生成。

RecommendKit.removeOverNews这个方法写的有点问题

public static void removeOverNews(Set set, int N){
int i = 0;
Iterator ite = set.iterator();
while (ite.hasNext()){
if (i >= N){
ite.remove();
ite.next();
}else{
ite.next();
}
i++;
}
}

要把
if (i >= N){
ite.remove();
ite.next();
}
里边的这两名话交换一下位置,移除的结果才是正确的

IDEA将项目用maven导入不能运行

我的maven是3.9.0,java是19,我看您的maven是3.7,但是java版本我没有看到,然后我将本项目使用maven导入但是不能成功运行
以下为报错信息:期待您的回答,我的邮箱是[email protected],假如您愿意帮助我调试程序成功,我可以给您发个红包感谢您
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.101 s
[INFO] Finished at: 2023-02-25T21:03:05+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in the format : or :[:]:. Available lifecycle phases are: pre-clean, clean, post-clean, validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-site, site, post-site, site-deploy. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoGoalSpecifiedException

推荐数为零

我在main 中按照你在readme中所说进行调试 测试数据一直为零 请问是什么原因

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.