hadoop1.2.1+hbase0.94.11+nutch2.2.1+elasticsearch0.90.5安装配置攻略
一、背景
最近由于项目和论文的需要,需要搭建一个垂直搜索的环境,查阅了很多资料,决定使用Apache的一套解决方案hadoop+hbase+nutch+es。这几样神器的作用就不多作介绍了,自行参考各类百科就行了。我选择这样的方案主要是基于以下考虑:
1、可扩展,虽然只是实验环境,但是以后在项目中是要应用到生产中的,随着数据量的增大,需要的硬件设备能够方便的加入进来,所以选择了分布式的方案中最具人气的hadoop+hbase组合
2、数据来源兼容,nutch2以后集成了gora和tika,可以方便的进行数据ORM和分析
3、与时俱进,es很火嘛,而且各种评测说es比solr更快更稳定,虽然没有自己测试过,但是跟随github大牛们的脚步总不会错得太离谱
二、前言
这一部分纯粹吐槽,国内的好多技术博客不是停留在nutch1X阶段,就是各种不负责任的抄袭转载,某几位先驱说这几样东西版本必须一对一兼容,然后所有人都这样去做,没有一点探索精神和质疑精神。今天,我就做第一个吃螃蟹的人,谁说gora0.3只能配hbase0.92,谁说nutch2只能配es0.19,既然开源的大牛们放出了稳定最新版,就一定有能兼容的道理!
三、安装与配置过程(伪分布式)
整个实验环境采用伪分布式模式搭建,也就是只有一台master的分布式环境,以后扩展只需要继续配置slaver就可以了。 系统为ubuntu server 12.04
hadoop1.2.1
hadoop安装的前提是java和ssh免密码登陆配置,这个不多说了,基本的,jdk1.6和1.7都可以。
1、官网的stable目录里面下载hadoop1.2.1的deb包
2、安装hadoop的deb包
1
|
sudo dpkg -i /home/hadoop/hadoop_1.2.1-1_x86_64.deb
|
3、查看安装的位置
1
|
whereis hadoop
|
输出:
1
|
hadoop: /usr/bin/hadoop /etc/hadoop /usr/etc/hadoop /usr/bin/X11/hadoop /usr/include/hadoop /usr/share/hadoop
|
这里面/etc/hadoop目录是hadoop的各种配置文件,/usr/share/hadoop则是hadoop的主要jar包和监控页面的东西
4、下面开始修改配置文件:
hdfs-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- file system properties -->
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/name</value><!-- value里填写运行hadoop的账户能够访问的目录 -->
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/data</value><!-- value里填写运行hadoop的账户能够访问的目录 -->
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
<description>Default block replication.
The actual number of replications can be specified when the file is created.
The default is used if replication is not specified in create time.
</description>
</property>
</configuration>
|
mapred-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:54311</value>
<!-- 如果是完全分布式模式,localhost要替换为master的内网ip地址,端口随意,注意避开端口冲突 -->
<description>The host and port that the MapReduce job tracker runs
at. If "local", then jobs are run in-process as a single map
and reduce task.
</description>
</property>
</configuration>
|
core-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- core-site.xml -->
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:54310</value>
<description>The name of the default file system. A URI whose
scheme and authority determine the FileSystem implementation. The
uri's scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class. The uri's authority is used to
determine the host, port, etc. for a filesystem.</description>
</property>
</configuration>
|
hadoop-env.sh
修改java路径
1
|
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
|
修改pid路径为hadoop运行账户能访问到的路径,默认是/var/run/hadoop,如果不是sudo组的化是没权限的,而且每次重启都会清空这个目录,用chown无法起到长期作用。
1
2
|
export HADOOP_PID_DIR=/home/hadoop/run/hadoop
export HADOOP_SECURE_DN_PID_DIR=/home/hadoop/run/hadoop
|
masters和slaves
如果是伪分布式,直接localhost,如果是完全分布式,masters填写master的ip地址,slaves填写slave的ip地址,回车隔开
至此基本的配置已经完毕,如果想了解更多配置内容可以参考这篇文章《hadoop三个配置文件的参数含义说明》
5、启动hadoop
先格式化namenode
1
|
hadoop namenode -format
|
然后启动
1
|
start-all.sh
|
=============================================
hbase0.94.11
1、官网stable目录下下载hbase0.94.11的tar包并解压
1
|
tar -zxvf hbase-0.94.11.tar.gz
|
2、去conf目录修改hbase-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:54310/hbase</value><!-- 端口号和ip地址要与hadoop配置参数fs.default.name一致 -->
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
</configuration>
|
3、修改hbase-env.sh文件
添加如下三行:
1
2
3
4
5
|
export JAVA_HOME=/usr/lib/jvm/java-7-oracle/
export HBASE_CLASSPATH=/etc/hadoop
export HBASE_MANAGES_ZK=true
|
至此配置文件修改结束(如果完全分布式还要修改regionservers),更多配置参数和调优可以参考这篇文章《HBase入门篇3-hbase 配置文件参数设置及优化》
4、替换hadoop的jar文件
hbase0.94.11默认支持的是hadoop1.0.4,我们可以用替换hadoop-core的方式让其支持hadoop1.2.1
1
2
3
4
|
rm /home/hadoop/hbase-0.94.11/lib/hadoop-core-1.0.4.jar
cp /usr/share/hadoop/hadoop-core-1.2.1.jar /home/hadoop/hbase-0.94.11/lib
cp /usr/share/hadoop/lib/commons-collections-3.2.1.jar /home/hadoop/hbase-0.94.11/lib
cp /usr/share/hadoop/lib/commons-configuration-1.6.jar /home/hadoop/hbase-0.94.11/lib
|
5、启动hbase
1
|
/home/hadoop/hbase-0.94.11/bin/start-hbase.sh
|
6、用jps命令看是否运行正常
输出为:
1
2
3
4
5
6
7
8
9
|
2032 NameNode
13764 HQuorumPeer
29069 Jps
2630 JobTracker
2280 DataNode
13889 HMaster
2535 SecondaryNameNode
2904 TaskTracker
14180 HRegionServer
|
注意这几个东西一个都不能少,如果有什么少了,一定要去日志里看看是怎么回事。
7、尝试运行hbase命令
1
2
3
4
5
6
7
8
|
/home/hadoop/hbase-0.94.11/bin/hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.90.4, r1150278, Sun Jul 24 15:53:29 PDT 2011
hbase(main):001:0> list
TABLE webpage
1 row(s) in 0.5270 seconds
|
如果不报错,说明已经配置成功
==================================================================
ElasticSearch0.90.5
这里不像一般的博客那样先安装nutch,而是先安装es,为什么,因为逻辑上来讲,nutch是一个爬虫加集成器,es被nutch集成,所以先安装es,这在思想上叫做由零到整。
1、官网下载es0.90.5的deb安装包并安装
1
|
sudo dpkg -i /home/hadoop/elasticsearch/elasticsearch-0.90.5.deb
|
2、查看安装了哪些东西
1
|
whereis elasticsearch
|
输出:
1
|
elasticsearch: /etc/elasticsearch /usr/share/elasticsearch
|
其中/etc/elasticsearch目录里面的elasticsearch.yml文件是比较重要的配置文件,这里我们使用默认配置,不做修改,需要特殊配置的同学可以参考这篇文章《分布式搜索elasticsearch配置文件详解》。
而/usr/share/elasticsearch里面则是es主要的执行文件和jar包了
3、检查es运行状态
es安装好后就默认开启了,貌似关闭只能杀死进程,启动的话直接输入命令elasticsearch即可。
使用curl来检查es的cluster的运行状态,并获得clustername
1
|
curl -XGET 'localhost:9200/_cluster/health?pretty'
|
如果获得以下输出,表示成功了
1
2
3
4
5
6
7
8
9
10
11
12
|
{
"cluster_name" : "elasticsearch",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 2,
"number_of_data_nodes" : 2,
"active_primary_shards" : 5,
"active_shards" : 10,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0
}
|
======================================================================
nutch2.2.1
1、官网下载tar包并解压
2、修改源码
这里要吐槽下nutch的开源大牛们,这么明显的bug你就发出版本来了,而且几个版本都不改,如果你有你的道理,你应该文档说明一下好吧,为毛我都找不到你们的正式说明?
进入src/java/org/apache/nutch/crawl目录,修改GeneratorJob.java中的public Map<String,Object> run(Map<String,Object> args) 方法。
添加以下三行
1
2
3
4
|
// generate batchId
int randomSeed = Math.abs(new Random().nextInt());
String batchId = (curTime / 1000) + "-" + randomSeed;
getConf().set(BATCH_ID, batchId);
|
1
|
cp /home/hadoop/hbase-0.94.11/conf/hbase-site.xml /home/hadoop/nutch2.2.1/conf/
|
1
2
3
4
5
6
7
8
9
|
<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>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36</value><!-- 这个随意填,我填了我chrome浏览器的UA -->
</property>
|
1
2
|
<dependency org="org.apache.gora" name="gora-hbase" rev="0.3"
conf="*->default" />
|
1
2
|
<dependency org="org.elasticsearch" name="elasticsearch" rev="0.19.4"
conf="*->default"/>
|
1
|
gora.datastore.default=org.apache.gora.hbase.store.HBaseStore
|
1
|
hadoop fs -copyFromLocal urls /home/hadoop/urls
|
1
|
bin/nutch inject /home/hadoop/urls
|
1
2
3
4
|
bin/nutch generate -topN 10
bin/nutch fetch -all
bin/nutch parse -all
bin/nutch updatedb
|
1
|
bin/nutch elasticindex <cluster name> -all
|
1
|
curl -XGET 'http://localhost:9200/_search?content=tianya'
|
hadoop1.2.1+hbase0.94.11+nutch2.2.1+elasticsearch0.90.5安装配置攻略的更多相关文章
- 谁说他们版本不兼容——hadoop1.2.1+hbase0.94.11+nutch2.2.1+el
一.背景 最近由于项目和论文的需要,需要搭建一个垂直搜索的环境,查阅了很多资料,决定使用Apache的一套解决方案hadoop+hbase+nutch+es.这几样神器的作用就不多作介绍了,自行参考各 ...
- Ubuntu环境下Hadoop1.2.1, HBase0.94.25, nutch2.2.1各个配置文件一览
/×××××××××××××××××××××××××××××××××××××××××/ Author:xxx0624 HomePage:http://www.cnblogs.com/xxx0624/ ...
- 使用ycsb对hbase0.94.11 benchmark
Ycsb下载地址:https://github.com/brianfrankcooper/YCSB/releases 目前测试hbase0.94.11,因此下载ycsb-0.1.4.tar.gz 1. ...
- (四)伪分布式下jdk1.6+Hadoop1.2.1+HBase0.94+Eclipse下运行wordCount例子
本篇先介绍HBase在伪分布式环境下的安装方式,然后将MapReduce编程和HBase结合起来使用,完成WordCount这个例子. HBase在伪分布环境下安装 一. 前提条件 已经成功地安装 ...
- 伪分布式hadoop1.1.2和hbase0.94.11配置
Hadoop 1.1.2 和Hbase 0.94.11版本配置 测试时ip 172.19.32.128 这个版本需要把/etc/hosts的aa-vm改成127.0.0.1,也就是和localhos ...
- hadoop1.2.1+hbase0.90.4+nutch2.2.1+elasticsearch0.90.5配置(伪分布式)
系统:ubuntu14.04 一.hadoop安装 ssh免密码登陆详情见上一篇博客. 解压hadoop1.2.1到某个目录下,这里解压到ubuntu下载目录下(注意没必要使用管理员权限) 在hado ...
- hbase0.94.11版本和hbase1.4.9版本的benchamark区别
1.起初使用ycsb对hbase进行benchmark,分别在100%写的情况下检测写性能:在100%读的情况下检测读的性能.实验数据如下: 2.新版本的habse写性能竟然不如老版本.!!!.于是我 ...
- MySql 8.0.11 在win10下的zip非安装配置
在win10使用mysql8.0.11的zip包进行配置时,搜到的教程很多坑,特此总结成功配置的方法. 1.下载非安装的zip包 mysql 8.0.11 64位 2.解压zip包 将下载的zi ...
- 伪分布式hbase从0.94.11版本升级stable的1.4.9版本
Hbase从0.94.11升级到stable的1.4.9版本: 升级思路: hadoop1.1.2 hbase 0.94.11 ↓ had ...
随机推荐
- C# WinForm ProgressBar垂直显示进度和从右向左显示进度
1. 尝试将ProgressBar的RightToLeft属性设置为System.Windows.Forms.RightToLeft.Yes,同时将RightToLeftLayout属性设置为true ...
- 转 查看linux文件目录的大小和文件夹包含的文件数
du -sh 文件夹路径 查看linux文件目录的大小和文件夹包含的文件数 统计总数大小 du -sh xmldb/ du -sm * | sort -n //统计当前目录大小 并安大小 排序 du ...
- 关于struts2.x中(警告: Could not find property [struts.valueStack])的解决方法
出现“警告: Could not find property [struts.valueStack]”这样的问题,是由于少引用了log4j.jar包,不过,不引用也不影响使用.看个人的爱好了.
- /etc/rc5.d/s991local: line25: eject:command not found错误
使用虚拟机安装centos出现错误,原因是我使用的镜像是最小级别的,没有图形化界面,只有终端窗口 有人用vmware安装minimal centos报错/etc/rc5.d/s99local : ...
- #if (DEBUG)
//DEBUG必须大写,其它是不认的#if (DEBUG) Console.WriteLine("Debug");#else Conso ...
- Scala基础:类和构造器
类 package com.zy.scala.cls /** * 在 Scala 中,类并不用声明为 public 类型的. * Scala 源文件中可以包含多个类,所有这些类都具有共有可见性. */ ...
- Ant学习--简单实例入门
步骤1.创建工程文件夹名字 F:\Helloworld 步骤2.编写java代码: package com.netease; public class Ant_test { public static ...
- Unity3d收藏链接/ 小马哥视频
Unity3d视频教程下载链接: http://pan.baidu.com/s/1kVwFhrh 密码: v6c7 第一部分 https://pan.baidu.com/share/in ...
- DBArtist之Oracle入门第4步: Oracle创建数据库
刚开始进去后,我是懵逼的状态,不知道要干嘛,之前常用的是MSSQL,感觉两者还是有区别的: oracle中:1.查询数据库名:select name,dbid from v$database;或者sh ...
- mysql5.6配置semi_sync
测试环境:Red Hat Enterprise Linux Server release 6.3 (Santiago)Server version: 5.6.22-log MySQL Communit ...