Ubuntu环境下利用ant编译nutch2.2.1 & 配置nutch2.2.1
/×××××××××××××××××××××××××××××××××××××××××/
Author:xxx0624
HomePage:http://www.cnblogs.com/xxx0624/
/×××××××××××××××××××××××××××××××××××××××××/
利用ant编译nutch2.x
详见:1. http://blog.javachen.com/2014/05/20/nutch-intro/
2. wiki.apache.org/nutch/Nutch2Tutorial
3. http://duguyiren3476.iteye.com/blog/2085973 (编译过程参见这个地址)
前提条件:配置ant(http://www.cnblogs.com/xxx0624/p/4172277.html)
1. 下载nutch(例如:我的是apache-nutch-2.2.1-src.tar.gz)
解压,重命名nutch文件夹(命名为nutch),然后移动文件夹到/home文件夹下
2. 编译nutch
2.1 准备工作
(1)待会儿编译可能会出现这个错误
Trying to override old definition of task javac
[taskdef] Could not load definitions from resource org/sonar/ant/antlib.xml. It could not be found.
ivy-probe-antlib:
ivy-download:
[taskdef] Could not load definitions from resource org/sonar/ant/antlib.xml. It could not be found.
原因:nutch中缺少相应的jar包。
解决办法:
(1)下载sonar-ant-task-2.1.jar,并直接放到nutch文件夹目录下
(2)修改build.xml文件,从而引入这个新的jar
<!-- Define the Sonar task if this hasn't been done in a common script -->
<taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml">
<classpath path="${ant.library.dir}" />
<classpath path="${mysql.library.dir}" />
<classpath><fileset dir="." includes="sonar*.jar" /></classpath>
</taskdef>
(2)编译时间过长:
nutch使用ivy进行构建,故编译时间长。如果时间过长,可使用该办法解决。
修改该文件:ivy/ivysettings.xml
http://mirrors.ibiblio.org/maven2/
替换掉:
http://repo1.maven.org/maven2/
2.2 修改nutch配置
(1)修改nutch的conf/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>storage.data.store.class</name>
<value>org.apache.gora.hbase.store.HBaseStore</value>
<description>Default class for storing data</description>
</property>
<property>
<name>http.agent.name</name>
<value>xxx0624-ThinkPad-Edge</value>
</property>
</configuration>
(2)修改ivy/ivy.xml文件
<dependency org="org.apache.gora" name="gora-hbase" rev="0.3" conf="*->default" /> <!--把该行的注释去掉,使之生效-->
(3)修改conf/gola.properies
gora.datastore.default=org.apache.gora.hbase.store.HBaseStore
#gora.sqlstore.jdbc.driver=org.hsqldb.jdbc.JDBCDriver
#gora.sqlstore.jdbc.url=jdbc:hsqldb:hsql://localhost/nutchtest
#gora.sqlstore.jdbc.user=sa
#gora.sqlstore.jdbc.password=
2.3 编译nutch(需在nutch当前目录下进行编译)
cd nutch
ant
2.4 编译之后的目录:
.
├── build
├── build.xml
├── build.xml~
├── CHANGES.txt
├── conf
├── default.properties
├── docs
├── ivy
├── lib
├── LICENSE.txt
├── NOTICE.txt
├── README.txt
├── runtime
├── sonar-ant-task-2.1.jar
└── src 7 directories, 8 files
3. 修改nutch配置文件(在第2步中均已完成)
Nutch2.x版本存储采用Gora访问Cassandra、HBase、Accumulo、Avro等,需要在该文件中制定Gora属性。
3.1修改 conf/nutch-site.xml(第2步中已完成)
<property>
<name>storage.data.store.class</name>
<value>org.apache.gora.hbase.store.HBaseStore</value>
<description>Default class for storing data</description>
</property>
3.2 修改 ivy/ivy.xml(第2步中已完成)
<!-- Uncomment this to use HBase as Gora backend. -->
<dependency org="org.apache.gora" name="gora-hbase" rev="0.3" conf="*->default" />
3.3 修改 conf/gora.properties(第2步中已完成)
gora.datastore.default=org.apache.gora.hbase.store.HBaseStore
/*****************************************************************************************************************************/
配置nutch
(nutch文件夹已在/home目录下)
1. 修改系统环境变量
sudo gedit /etc/profile
//增加
#set nutch
export PATH=/home/nutch/runtime/local/bin:$PATH
2. 测试(nutch/runtime/local/bin中./nutch & ./crawl)
nutch
//结果如下:
Usage: nutch COMMAND
where COMMAND is one of:
inject inject new urls into the database
hostinject creates or updates an existing host table from a text file
generate generate new batches to fetch from crawl db
fetch fetch URLs marked during generate
parse parse URLs marked during fetch
updatedb update web table after parsing
updatehostdb update host table after parsing
readdb read/dump records from page database
readhostdb display entries from the hostDB
elasticindex run the elasticsearch indexer
solrindex run the solr indexer on parsed batches
solrdedup remove duplicates from solr
parsechecker check the parser for a given url
indexchecker check the indexing filters for a given url
plugin load a plugin and run one of its classes main()
nutchserver run a (local) Nutch server on a user defined port
junit runs the given JUnit test
or
CLASSNAME run the class named CLASSNAME
Most commands print help when invoked w/o parameters.
crawl
//结果如下:
Missing seedDir : crawl <seedDir> <crawlID> <solrURL> <numberOfRounds>
由于nutch与hbase的使用还会有新的错误出现,故在新文章中记录:nutch集成hbase(http://www.cnblogs.com/xxx0624/p/4176199.html)
Ubuntu环境下利用ant编译nutch2.2.1 & 配置nutch2.2.1的更多相关文章
- ubuntu环境下nginx的编译安装以及相关设置
一.基本的编译与安装 1.安装依赖项 sudo apt-get update sudo apt-get install build-essential zlib1g-dev libpcre3 libp ...
- Ubuntu环境下使用npm编译从git上clone下来的前端(Javascript)项目
一.更新Ubuntu软件源 打开终端依次输入: $ sudo apt-get update $ sudo apt-get install -y python-software-properties s ...
- Ubuntu环境下使用Maven编译并打包Java项目
一.安装Maven 打开终端输入以下指令: $ mvn -v Apache Maven Maven home: /usr/share/maven Java version: 1.8.0_181, ve ...
- ubuntu 16.0 利用ant编译 hadoop-eclipse-plugins2.6.0
折腾了两天,抱着不放弃的精神,我终于编译出我自己所需的hadoop中在eclipse中的插件 在网上下载的可能因为版本不一致,在编译的时候出现各种各样的问题,包括你的eclipse版本和hadoop版 ...
- 【转】Android 源码下利用jni编译自己的项目(参考系统development/samples/SimpleJNI)
原文网址:http://blog.csdn.net/qiuxiaolong007/article/details/7860481 记于正文前:环境是ubuntu10.10,android 源码是2.0 ...
- Ubuntu环境下SSH的安装及使用
Ubuntu环境下SSH的安装及使用 SSH是指Secure Shell,是一种安全的传输协议,Ubuntu客户端可以通过SSH访问远程服务器 .SSH的简介和工作机制可参看上篇文章SSH简介及工作机 ...
- Ubuntu环境下的Redis 配置与C++使用入门
Redis是一个高性能的key-value数据库. Redisedis的出现,非常大程度补偿了memcached这类key/value存储的不足,在部分场合能够对关系数据库起到非常好的补充作用.它 ...
- ubuntu 环境下的QT程序打包
很多的时候 需要将自己写的QT 程序发布一下 所以今天教一下 怎么在ubuntu 环境下将自己的写的Qt 程序打包打包是为了不依赖 开发环境 和开发的库. 1. QtCreate使用Release版 ...
- Ubuntu环境下配置GCC
Ubuntu网络环境下安装GCC及其头文件步骤: 1.Ubuntu环境下配置GCC 刚装好的GCC什么都不能编译,因为没有一些必须的头文件,所以要安装build-essential,安装了这个包会安装 ...
随机推荐
- C++实现设计模式之 — 简单工厂模式
作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4251756.html 所谓简单工厂模式,是一种实例化对象的方式,只要输入需要实例化对象的名字 ...
- Android AdapterView.OnItemSelectedListener
AdapterView.OnItemSelectedListener Summary Public Methods abstract void onItemSelected(AdapterView&l ...
- jexus 配置 学习
http://www.linuxdot.net/ 1.禁止或允许某IP或IP段访问网站 A.只允许某些IP地址访问网站(白名单功能) 默认情况下,允许所有IP地址访问.如果手工设置IP地址白名单, 那 ...
- AngularJS(14)-动画
AngularJS 提供了动画效果,可以配合 CSS 使用. AngularJS 使用动画需要引入 angular-animate.min.js 库. <!DOCTYPE html> &l ...
- JAVA多线程学习1
一.进程与线程 线程是指进程内的一个执行单元(可理解为程序内的一条执行路径),也是进程内的可调度实体. 线程与进程的区别: 1.线程是进程的一个执行单元,一个进程可以拥有多个线程,线程之间共享进程的地 ...
- XE5 ANDROID通过webservice访问操作MSSQL数据库
上接XE5 ANDROID平台 调用 webservice 一.服务端 在ro里添加函数(在impl上添加阿东connection,adoquery,dataprovider) function TN ...
- .Net码农学Android---系统架构和基本概念
至此,你应该已经完成以下前期准备事情: 1.安装完JDK 2.安装完SDK(并在Manager中进行相关版本的更新) 3.相关IDE(如eclipse) 4.安装完ADT 5.安装完AVD(如果你是真 ...
- mysqlsla 分析mysql慢查询日志
发现有一个工具mysqlsla,分析查询日志比 mysqldumpslow分析的会更清晰明了! 安装mysqlsla: 下载mysqlsla-2.03.tar.gz [root@yoon export ...
- 导入导出Android手机文件
1.获得root权限:adb root: 如提示adbd cannot run as root in production builds,参见我的另一篇文章:http://www.cnblogs.co ...
- ARP
视频教程 http://baidu.ku6.com/watch/08644463979695746698.html?page=videoMultiNeed arp代理 跨越路由 免费arp 检查i ...