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 ...
随机推荐
- JavaScript知识总结--历史-html引用方式-基础概念
一.JavaScript简介 1.ECMAScript 1995~今已经20年的历史,产生JavaScript是需要它去解决一定的问题:在浏览器端做一些数据的验证,试想当年的网络环境,如果能够在浏览器 ...
- 开始使⽤ZooKeeper的API
在之前的章节中,我们使用zkCli工具介绍了ZooKeeper的基本操作.从本章开始,我们将会看到在应用中如何通过API来进行操作.首先介绍一下如何使用ZooKeeper的API进行开发,展示如何创建 ...
- 1、redis安装与启动
1.安装包下载 官网上下载:http://www.redis.io/ 安装版本:3.0.7 安装环境:CentOS 下载命令:wget http://download.redis.io/release ...
- tomcat的配置文件server.conf中的元素的理解
tomcat的配置文件server.conf中的元素的理解 tomcat作为一个servlet服务器本身的配置文件是tomcat_home/conf/server.conf,这个配置文件中有很多元素, ...
- 删除链表之two star programming
最近偶尔看到一篇关于Linus Torvalds的访问,大神说大部分人都不理解指针.假设被要求写一段链表删除节点的程序,大多数的做法都是跟踪两个指针,当前指针cur和其父节点pre,这种实现很容易理解 ...
- 让低版本IE支持Html5的新语义标签
HTML5能为我们做的事儿很多,最为可口的就是语义化标签的应用,如果你已经在Chrome或者其他支持HTML5的浏览器上用过它的牛x,那这篇文章对你一定有用,因为现在你也可以在IE上用到HTML5. ...
- struts2配置文件(struts.xml)中相关属性的设置
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-/ ...
- 《DNA比对》蓝桥杯复赛试题
题目描述 脱氧核糖核酸即常说的DNA,是一类带有遗传信息的生物大分子.它由4种主要的脱氧核苷酸(dAMP.dGMP.dCMT和dTMP)通过磷酸二酯键连接而成.这4种核苷酸可以分别记为:A.G.C.T ...
- 764. Largest Plus Sign最大的dfs十字架
[抄题]: 求挖掉一些区域后,能允许出现的最大十字架 In a 2D grid from (0, 0) to (N-1, N-1), every cell contains a 1, except t ...
- yum基本用法与修改源
一.yum简介 yum,是Yellow dog Updater Modified的简称,起初是由yellow dog这一发行版的开发者Terra Soft研发,用python写成,那时还叫做yup(y ...