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的连接是通过网络进行连接的,不管是内网还是外网。

你可能感兴趣的:(elasticsearch)