hadoop1.2.1+hbase0.90.4+nutch2.2.1+elasticsearch0.90.5配置(伪分布式)
系统:ubuntu14.04
一、hadoop安装
ssh免密码登陆详情见上一篇博客。
解压hadoop1.2.1到某个目录下,这里解压到ubuntu下载目录下(注意没必要使用管理员权限)
在hadoop1.2.1 conf目录下的core-site.xml添加一下内容:
<configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/你的用户名/下载/hadoop-1.2.1/hadoop_tmp</value> </property> </configuration>
在hdfs-site.xml中添加一下内容:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
在mapre-site.xml中添加以下内容:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
在hadoop-env.sh中找到JAVA_HOME这一行,然后填写上你自己的java路径。
如果你已经设置好了ssh免密码登陆,那么就可以进去到hadoop目录下用bin/start-all.sh来启动伪分布式hadoop了。如果你想在任意目录下都可以使用hadoop命令则需要在/etc/profile中配置以下内容:
export HADOOP_HOME =hadoop安装路径
export PATH=在末尾添加:$HADOOP_HOME/bin
要启动hadoop,第一次先格式化namenode,命令为hadoop namenode -format
二、hbase
使用的hbase为hbase-0.90.4,同样解压到下载目录下。
然后配置conf目录下的hbase-site.xml,添加以下内容:
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://localhost:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>localhost</value> </property> </configuration>
同样在hbase-env.sh中找到JAVA_HOME,然后添加上自己的JAVA配置路径。
同时需要找到HBASE_MANAGES_ZK这一行,把后面的值设置为true。
接着替换jar包,使用以下命令:
rm /home/hadoop/hbase-0.90.4/lib/hadoop-core-0.20-append-r1056497.jar cp /home/hadoop/hadoop-1.2.1/hadoop-core-1.2.1.jar /home/hadoop/hbase-0.90.4/lib cp /home/hadoop/hadoop-1.2.1/lib/commons-collections-3.2.1.jar /home/hadoop/hbase-0.90.4/lib cp /home/hadoop/hadoop-1.2.1/lib/commons-configuration-1.6.jar /home/hadoop/hbase-0.90.4/lib 路径要根据你们自己的路径来配置,主要就是把hbase中lib文件夹下的三个依赖hadoop的jar包替换为我们安装的hadoop-1.2.1的jar包。(ps:看路径最好进入到文件夹下右键用属性看具体路径)
同样在/etc/profile中需要设置一下HBASE_HOME,然后再PATH后面加上HBASE_HOME/bin。
至此,hbase配置完成,在hadoop启动的前提下,启动hbase ,命令:bin/start-hbase.sh(ps:启动hbase前必须启动hadoop,关闭hadoop前先关闭hbase,因为hbase是基于hadoop 的)
启动完成后用jps查看, 如果看到的是9个进程那就对了。
三、es安装
下载es就不说了。同样在下载目录下解压,解压后就完成了安装了~~~~~就是这么简单。
不过一般需要安装head插件和其他扩展 插件,可以自行百度,这里不在讲解。
进入到elasticsearch目录下,bin/elasticsearch启动es,然后用curl命令查看是否成功(没有curl命令的需要安装,sudo apt-get install curl)
curl -XGET 'localhost:9200/_cluster/health?pretty' 此条命令查看es是否成功启动,如果执行完后返回一组字符代表启动成功。
四、nutch2.2.1安装
此处可能会出比较多的问题。
下载解压后,先首先修改一个源码:
进入src/java/org/apache/nutch/crawl目录,修改GeneratorJob.java中的public Map<String,Object> run(Map<String,Object> args) 方法。
// generate batchId int randomSeed = Math.abs(new Random().nextInt()); String batchId = (curTime / 1000) + "-" + randomSeed; getConf().set(BATCH_ID, batchId); 注意放置位置。
把nutch自带的hbase-site.xml 文件替换为我们自己的hbas-site.xml文件
修改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> </property> <property> <name>http.agent.name</name> <value>NutchCrawler</value> </property> <property> <name>http.robots.agents</name> <value>NutchCrawler,*</value> </property>
在ivy.xml文件中找到以下内容:
<dependency org="org.apache.gora" name="gora-hbase" rev="0.3" conf="*->default" /> 去掉注释即可
同时为了让nutch2.2.1支持es0.90.5,找到这一行:
<dependency org="org.elasticsearch" name="elasticsearch" rev="0.19.4"
conf="*->default"/>
将0.19.4修改为0.90.5
在conf目录下找到gora.properties文件,添加以下内容:
gora.datastore.default=org.apache.gora.hbase.store.HBaseStore
接下来就是ant编译了,如果没有安装ant,请先安装ant。
ant clean
ant runtime
至此,nutch安装成功,可能在ant中会报一个Failed什么错误(忘记了。。。不过具体解决办法就是进入到提示的那个源码中,把小写改为大写即可。)
注:如果要成功连接hbase,最好把/etc/hosts中的127.0.1.1改为当前电脑上网ip,或者是单独设置一个静态ip对应,因为hbase的连接是通过网络进行连接的,不管是内网还是外网。