hadoop1.1.2+hbase0.92.2+nutch2.2.1+solr4.6.1配置全记录

    花了两天时间,总算把这些东西弄好了,环境是vmware9虚拟机上的Ubuntu12.04_x86版。做了个简单的测试,跑通了。不过还是有很多不明白的地方,后期再陆续记录。

    目前楼主配的是单机模式,分布式模式中遇到的问题以后再做记录。

    另外强烈的吐槽一下,有些版本的在官网上面都找不到,搜了好久找到了某论坛资源,下载还要积分,郁闷。我想说的是其实所有的版本都可以在这个地址上下载: http://archive.apache.org/dist/ ,那些要积分的真无语,本来这东西就是开源的嘛~

1.hadoop1.1.2安装配置

参考网址:

http://book.51cto.com/art/201110/298538.htm 第二章(这里有个错误,2.1.3小节中的bin/Hadoop NameNode -format中NameNode要小写:namenode)

http://hadoop.apache.org/docs/r1.0.4/cn/quickstart.html ,这个是官网入门教程,建议全部看一遍。

1.1安装配置环境

去官网下载java1.6,修改/etc/profile,配置环境变量:

# for java environment
export JAVA_HOME=/usr/lib/jvm/jdk1.6   #这里是楼主的java目录,你要改成你下载的java目录
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=${JAVA_HOME}/bin:$PATH  

配置ssh免密码登陆,不然你每次启动hadoop都要输入用户密码,很烦的。先安装ssh

sudo apt-get install ssh 

首先查看用户文件夹下是否存在.ssh文件夹(注意ssh前面有“.”,这是一个隐藏文件夹),楼主的用户文件名为ling,所以输入命令:

ls -a /home/ling

如果没有的话就自己建个.ssh文件夹。然后输入:

ssh-keygen -t dsa -P '' -f /home/ling/.ssh/id_dsa

ssh-keygen代表生成密钥;-t(注意区分大小写)表示指定生成的密钥类型;dsa是dsa密钥认证的意思,即密钥类型;-P用于提供密语;-f指定生成的密钥文件。这个命令会在.ssh文件夹下创建两个文件id_dsa及id_dsa.pub,这是SSH的一对私钥和公钥,类似于钥匙及锁,把id_dsa.pub(公钥)追加到授权的key里面去。接下来这把公钥加到用于认证的公钥文件中:

cat /home/ling/.ssh/id_dsa.pub >> /home/ling/.ssh/authorized_keys 

这里的authorized_keys是用于认证的公钥文件。至此无密码登录本机已设置完毕。验证是否安装成功:

ssh -version 

楼主显示如下,木有问题:

OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
Bad escape character 'rsion'.

然后输入:

ssh localhost 

然后键入yes,hadoop安装前的环境就配好啦!

1.2安装hadoop

修改conf/hadoop-env.sh,指定你的jdk路径:

 export JAVA_HOME=/usr/lib/jvm/jdk1.6

修改conf/core-site.xml:

<configuration>
<!--这里配置的是HDFS的地址和端口号-->
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

修改conf/hdfs-site.xml:

<configuration>
<!--HDFS的配置,备份方式默认为3,在单机版的Hadoop中,需要将其改为1-->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

修改conf/mapred-site.xml:

<configuration>
<!--MapReduce的配置文件,配置的是JobTracker的地址和端口-->
    <property>
        <name>mapred.job.tracker</name>
        <value>localhost:9001</value>
    </property>
</configuration>

接下来进入hadoop文件夹下执行下面命令,格式化文件系统:

bin/hadoop namenode -format

至此配置完成,接下来启动hadoop:

bin/start-all.sh

打开浏览器,输入下列网址,如果都能查看,说明安装成功。

    http://localhost:50030 (MapReduce的Web页面)
    http://localhost:50070 (HDFS的Web页面) 

1.3.问题记录

    由于楼主是在虚拟机中做的,每次重启之后要重新format格式化文件系统,不然是运行hadoop后是启动不了localhost:50070的,估计是虚拟机重启时要重新格式化文件系统为Ubuntu默认的,目前楼主想到的是每次不关闭ubuntu,而是选择suspend,下次开VM直接唤醒就行了,如有其他解决方案,还麻烦分享一下~

2.hbase0.92.2集成

有关hbase详细,参考官方文档:http://abloz.com/hbase/book.html,以下是hbase与hadoop版本配套使用表,可供参考:

S代表支持,X代表不支持,NT代表没有充分测试,但是可以用。楼主用的是hadoop1.1.2+hbase0.92.2。

2.1.修改配置文件

修改hbase目录下的conf/hbase-env.sh,主要是改java路径:

# Set environment variables here.

# The java implementation to use.  Java 1.6 required.
export JAVA_HOME=/usr/lib/jvm/jdk1.6

如果你要将hbase和zookeeper集成的话还要将HBASE_MANAGES_ZK设为false,楼主只用hbase所以设置成true:

export HBASE_MANAGES_ZK=true

配置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>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>hbase.master</name>
        <value>localhost:60000</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
    </property>
-->
</configuration>

单机模式下只需要配置hbase.rootdir即可,注释掉的大家可以先无视。。。
至此配置完毕执行bin/start-all.sh和bin/stop-all.sh可开启和关闭hbase服务。

2.2问题记录

1.楼主在关闭hbase的时候好慢有木有!网上查了下,说是直接stop-all.sh很慢,要先执行bin/hbase-daemon.sh stop master,然后执行bin/stop-hbase.sh。

2.运行bin/hbase shell创建表的时候出现了org.apache.hadoop.hbase.PleaseHoldException: Master is initializing....的错误,要修改你的/etc/hosts文件

127.0.0.1 localhost
127.0.0.1 ubuntu.ubuntu-domain ubuntu

该问题的详细描述见官网:http://hbase.apache.org/book/quickstart.htm

3.nutch2.2.1配置

参考:http://blog.csdn.net/skywalker_only/article/category/1842591

3.1.ant编译

nutch2.2.1需要自己编译,在nutch主目录下执行ant命令(如果没有ant自己apt-get安装一个),第一次可能要编译很长时间,耐心等待,下次就会很快了。

如果你最后看到了build success那么恭喜你了,如果build faild,那就看输出的错误信息,也可以看一下我的问题记录。

编译成功之后nutch下面会多出build和runtime文件夹。如果你的nutch配置的是本机模式,那么你要关心一下runtime下的local文件夹了,因为本机模式的配置文件都在local的conf下面。

3.2.与hbase集成

配置ivy/ivy.xml,由于要使用hbase来存储,所以找到下面这一行,并去掉原有的注释使之生效:

<dependency org="org.apache.gora" name="gora-hbase" rev="0.3" conf="*->default" />

配置conf/gora.properties,设置gora后台用hbase做存储:

gora.datastore.default=org.apache.gora.hbase.store.HBaseStore

配置conf/nutch-site.xml:

<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>

然后再执行ant重新编译一遍,配置完成!

3.3.问题记录

1.编译时出现请求超时,连接失败什么的信息,可以修改ivy/ivysettings.xml下的url路径,找到下面这一行:

<property name="repo.maven.org" value="http://repo1.maven.org/maven2/" override="false"/>

将其中的value值替换为http://mirrors.ibiblio.org/maven2/。(编译完成后记得改回来)

2.由于我们用的是hbase0.92.2,而gora依赖的是0.90版的,所以要把hbase0.92目录下的两个jar包复制到nutch的lib下面(本机模式是rumtime/local/lib,分布式模式是deploy文件夹下那个apache-nutch2.2.1.job压缩包里面的lib),还要把原来的hbase-0.90.x的jar包给删掉,不然会报错。

4.solr配置

1.官网上下载最新版本(楼主的是4.6.1)
2.由于nutch和solr默认的依赖是solr 3.x, 需要在schema.xml中将其替换为solr 4.x:
Nutch2.x自带的shema-solr.xml中少了一个_version_ field字段,将以下内容加到<!-- core fileds -->的boost filed之后
将nutch/runtime/local/conf目录下的schema-solr4.xml里面的内容复制到当前目录的schema.xml里面
将nutch/runtime/local/conf目录下的schema-solr4.xml里面的内容复制到$SOLR_HOME/example/solr/collection1/conf/schema.xml
浏览器输入以下地址,验证配置是否正确:

http://localhost:8983/solr/#/

5集成测试

1.依次启动hadoop,hbase,nutch,solr。
2.在nutch目录下的runtime/local/bin/下面执行nutch的crawl命令进行网页抓取:有两中方法:
批处理命令: bin/nutch crawl urls -solr http://localhost:8983/solr/ -depth 3 -topN 10
单步执行命令:

bin/nutch inject urls
bin/nutch generate -topN 10
bin/nutch fetch -all
bin/nutch parse -all
bin/nutch updatedb
bin/nutch  solrindex http://localhost:8983/solr/  -reindex

各个命令参数的说明见官网:bin/nutch命令说明

时间: 2024-08-20 00:28:00

hadoop1.1.2+hbase0.92.2+nutch2.2.1+solr4.6.1配置全记录的相关文章

HBase单机及伪分布环境搭建

一.单机模式 1.安装HBase tar -xzvf hbase-0.92.1.tar.gz 2.配置参数 修改hbase-site.xml: <configuration>        <property>                 <name>hbase.rootdir</name>                 <value>/home/xiongzheng/hadoop/hbase-0.92.1/data</value&g

HBase-0.90.4集群安装配置

HBase是Hadoop数据库,能够实现随机.实时读写你的Big Data,它是Google的Bigtable的开源实现,可以参考Bigtable的论文Bigtable: A Distributed Storage System for Structured.HBase的存储模型可以如下三个词来概括:distributed, versioned, column-oriented.HBase并非只能在HDFS文件系统上使用, 你可以应用在你的本地文件系统上部署HBase实例来存储数据. 准备工作

hbase学习(一)hbase单机部署和java客户端连接单机hbase

最近看了些hbase的东西,打算写点什么,谁知鼓捣的过程中步步是坑,最终呕心沥血,憋出了这篇文章,实属不易. hbase和hive总是成对出现的,简单说,hbase是数据库,hive是mapReduce作业. 先从hbase单机部署说起,尽量说的简洁点,说多了都是眼泪. 1.给服务器起个机器名,iptables关掉,同时本地绑定host. 起个机器名 1 vi /etc/hosts 127.0.0.1 localhost 211.155.225.210 love-kaige 1 vi /etc/

请教nutch和solr集成问题

问题描述 请教nutch和solr集成问题 最近在学习搜索引擎,按照nutch官网上的教程下载了nutch2.2.1和solr4.6.1 通过执行bin/crawl 能够在hbase数据库中看到爬虫下载的网页,但是solr 里面没有数据且没有异常,为什么呢? 请高手帮忙 注:采用nutch1.7可以成功进行索引 解决方案 可以问你个问题么,我用的nutch2.2.1 solr4.8 hadoop1.1.2 hbase0.94 ,为什么nutException in thread "main&qu

HBase Thrift接口的C++客户端

hbase-thrift项目是对HBase Thrift接口的封装,屏蔽底层的细节,使用户可以方便地通过HBase Thrift接口访问HBase集群,同时基于此对C++客户端读写的效率进行了简单的测试.该项目目前基于的是HBase thrift接口,至于HBase 0.94版本中的HBase thrift2接口,后续再考虑进一步的支持. 前提条件 1)下载,解压,安装 thrift-0.8.0. wget https://dist.apache.org/repos/dist/release/t

一个HBase异常的解决方法

HBase异常:hbase-default.xml file seems to be for and old version of HBase的解决方法 近期在使用HBase Java Client连接HBase服务端创建Configuration对象时,遇到了hbase-default.xml file seems to be for and old version of HBase的异常,经过查找资料及阅读HBase相关源码,对这类异常的解决方法做一下总结. 异常出现的原因 HBase客户端

hadoop +hbase +zookeeper 完全分布搭建 (版本二

这里有几个主要关系: 1.经过Map.Reduce运算后产生的结果看上去是被写入到HBase了,但是其实HBase中HLog和StoreFile中的文件在进行flush to disk操作时,这两个文件存储到了HDFS的DataNode中,HDFS才是永久存储. 2.ZooKeeper跟Hadoop Core.HBase有什么关系呢?ZooKeeper都提供了哪些服务呢?主要有:管理Hadoop集群中的NameNode,HBase中HBaseMaster的选举,Servers之间状态同步等.具体

大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建

作者:张子良 版权所有,转载请注明出处 引子: 大数据的场景下,NoSql型数据库的优势不言而喻,但是涉及NoSQL数据库的实际动手开发的东西多是Linux平台,大多语焉不详,至于Windows平台介绍的东西就更少了,而且大多无法运行.本文就Windows平台基于Eclipse搭建Hbase环境客户端开发环境做一个介绍.另外基于Thrift实现的Windows版本Hbase客户端库也做了封装,有需要的可以留言索取. 一.开发环境 操作系统:windows xp sp3 开发工具:Eclipse3

数据导入HBase最常用的三种方式及实践分析

要使用Hadoop,数据合并至关重要,HBase应用甚广.一般而言,需要 针对不同情景模式将现有的各种类型的数据库或数据文件中的数据转入至HBase 中.常见方式为:使用HBase的API中的Put方法: 使用HBase 的bulk load 工具:使用定制的MapReduce Job方式.<HBase Administration Cookbook>一书对这三种方式有着详尽描述,由 ImportNew 的陈晨进行了编译,很有收获,推荐给大家. HBase数据迁移(1)-使用HBase的API