1. 一些已准备好的环境
Ubuntu 14.04
一个干净的Ubuntu,已安装:
Hadoop-1.1.2
注意Hadoop-0.x/-1.x和Hadoop-2.x版本差别很大,几乎是两个不同的Hadoop。
jdk1.7.0
注意jdk与Hadoop、HBase等之间的搭配。
表格数据来源:
Apache HBase ™ Reference Guide
2. 安装并运行HBase
使用Standalone模式。参见
quick start tutorial。
2.1 从该列表
Apache Download Mirrors中选择一个下载站点,从该站点下载HBase 0.94.14(因为Nutch2的Tutorial中说到Gora 0.4使用HBase 0.94.14,所以推荐使用该版本)并解压。将当前目录更改到新创建的目录底下。
$ tar xzvf hbase-<?eval ${project.version}?>-bin.tar.gz
$ cd hbase-<?eval ${project.version}?>/
2.2 编辑$HBASE_HOME/conf/hbase-env.sh,设置JAVA_HOME环境变量。
# The java implementation to use. Java 1.6 required.
export JAVA_HOME=/home/user/hadoop/jdk1.7.0
2.3 编辑$HBASE_HOME/conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/user/HBase/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/user/HBase/zookeeper</value>
</property>
</configuration>
2.4 启动HBase
$ ./bin/start-hbase.sh
2.5 第一次使用HBase
2.5.1 连接到HBase
$ ./bin/hbase shell
hbase(main):001:0>
2.5.2 创建一张表
hbase(main):001:0> create 'test', 'cf'
0 row(s) in 0.4170 seconds
2.5.3 列出关于新建表的信息
hbase(main):002:0> list 'test'
TABLE
test
1 row(s) in 0.0180 seconds
2.5.4 给新建的表插入数据
hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0850 seconds
hbase(main):004:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0110 seconds
hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0100 seconds
2.5.5 立即扫描表中的所有数据
hbase(main):006:0> scan 'test'
ROW COLUMN+CELL
row1 column=cf:a, timestamp=1421762485768, value=value1
row2 column=cf:b, timestamp=1421762491785, value=value2
row3 column=cf:c, timestamp=1421762496210, value=value3
3 row(s) in 0.0230 seconds
2.5.6 删除表
hbase(main):007:0> disable 'test'
0 row(s) in 1.1820 seconds
hbase(main):008:0> drop 'test'
0 row(s) in 0.1370 seconds
2.5.7 退出HBase Shell
hbase(main):009:0> exit
2.5.8 停止HBase
$ ./bin/stop-hbase.sh
2.6 再次启动HBase为后面运行Nutch做准备
$ ./bin/start-hbase.sh
3. 编译Nutch 2.3
参考:
Nutch2.x 编译和安装配置
3.1 下载并解压
选择
Nutch 2.3的下载站点,从该站点下载Nutch 2.3,解压到当前目录。
$ tar zxf apache-nutch-2.3-src.tar.gz
$ cd apache-nutch-2.3/
3.2 指定Gora后台存储
编辑 $NUTCH_HOME/conf/nutch-site.xml,添加:
<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>My Nutch Spider</value>
</property>
</configuration>
3.3 确保HBase gora-hbase依赖可用
编辑 $NUTCH_HOME/ivy/ivy.xml,取消注释:
<!-- Uncomment this to use HBase as Gora backend. -->
<dependency org="org.apache.gora" name="gora-hbase" rev="0.5" conf="*->default" />
3.4 确保HBaseStore被设置为默认的datastore
编辑 $NUTCH_HOME/conf/nutch-site.xml
gora.datastore.default=org.apache.gora.hbase.store.HBaseStore
3.5 其他配置
3.5.1 如果编译过程比较长,建议修改ivy中配置的maven仓库地址
编辑 $NUTCH_HOME/ivy/ivysettings.xml
找到这段代码:
<property name="repo.maven.org"
value="http://repo1.maven.org/maven2/"
override="false"/>
替换为:
<property name="repo.maven.org"
value="http://maven.oschina.net/content/groups/public/"
override="false"/>
即,将默认的maven中央库地址 http://repo1.maven.org/maven2/ 替换成国内OSC提供的镜像:http://maven.oschina.net/content/groups/public/ 。
3.5.2 sonar-ant-task-2.1.jar相关
·下载
sonar-ant-task-2.1.jar,将其拷贝到 $NUTCH_HOME/lib 目录下面;
·修改 $NUTCH_HOME/build.xml,引入上面添加的jar包。
<!-- ================================================================== -->
<!-- SONAR targets -->
<!-- ================================================================== -->
<!-- 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="lib/" includes="sonar*.jar" /></classpath>
</taskdef>
3.6 [可选] 安装ant
由于本机环境干净,需要安装ant。
$ sudo apt-update
$ sudo apt-get install ant
3.7 编译
$ ant runtime
在编译最后如果有BUILD SUCCESSFUL,说明编译成功,若提示信息为BUILD FAILED,则说明编译失败,需要根据编译过程中输出的信息查找错误原因。
编译完之后,会新增build和runtime两个目录。
4. 集成Solr
由于建索引的时候需要使用Solr,因此我们需要安装并启动一个Solr服务器。
4.1 下载并解压
需要注意的是,我是昨天晚上(2015.08.20)进入的solr的官网下载solr,结果发现了刚好出了新的版本Solr-5.3.0 (2015.08.20 17:33),就尝试了下新的Solr。发现它和之前4.x的版本差别比较大。4.x版本的启动方式如下,而5.3.0版本的启动方式为
$ ./bin/solr start
和现在大家用的这些比如HBase、Nutch什么的启动方式很像。但是遗憾的是,我没有调试成功与Solr-5.3.0的集成。
$ tar -zxvf solr-4.10.4.tgz
$ cd solr-4.10.4
4.2 尝试启动Solr
4.4 集成Solr
4.4.1 备份Solr example下的schema.xml
#mv ${SOLR_HOME}/example/solr/collection1/conf/schema.xml ${SOLR_HOME}/example/solr/collection1/conf/schema.xml.bak
4.4.2 复制Nutch运行目录下的schema.xml到Solr example目录下。这里${NUTCH_RUNTIME_HOME}指/root/nutch/apache-nutch-2.3/runtime/local
#cp ${NUTCH_RUNTIME_HOME}/conf/schema.xml ${SOLR_HOME}/example/solr/collection1/conf/
进入 $SOLR_HOME/example目录,执行:
$ java -jar start.jar
重新启动Solr。