大数据——hadoop1.2.1+hbase0.94.11+nutch2.2.1+elasticsearch0.90.5安装配置(上集)

版权声明:分享是一种美德,能够找到同一兴趣点是幸运,转载文章记得说明出处,共同进步。 https://blog.csdn.net/David_snjly/article/details/42809601

系统:ubuntu14.04linux系统。

一、hadoop安装

安装ssh并设置免密码登录

sudo apt-get install ssh

安装完了后设置密码

$ssh-keygen -t rsa
(执行完本条命令后一直回车)
$ cd .ssh 
(进入.ssh目录)
$ cp id_rsa.pub authorized_keys 
(到此处已经可以免密码登录本机, ssh localhost可测试)以上每台机器都做一遍,不过需要master主机能够免密码登录slave主机,还需要将master的公钥复制到两个slave节点的公钥中去,在master上执行命令:$ scp authorized_keys 从节点主机名@名字(如hadoop@hadoop-slave1):/home/hadoop/ .ssh。虽然公钥都弄好了,但是需要权限,你可以设置777权限,不过644权限就已经够了,在所有主机中将authorized)_keys文件的许可权限改为644
$ chmod 644 authorized_key
这时可以从master向slave主机发起ssh连接,需要输入yes的地方输入yes,可能第一次连接时候仍然需要输入一次密码。以上实现了从master主机访问slave主机免密码登录问题


下载hadoop安装包
wget  http://www.eu.apache.org/dist/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz

解压hadoop1.2.1到某个目录下,这里解压到ubuntu下载目录下(注意没必要使用管理员权限)

在hadoop1.2.1 conf目录下的core-site.xml添加一下内容:

复制代码
 
   
<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9001</value>
    </property>

    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/你的用户名/下载/hadoop-1.2.1/hadoop_tmp</value><!--hadoop的安装目录-->
    </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:9000</value>
<!-- 如果是完全分布式模式,localhost要替换为master的内网ip地址,端口随意,注意避开端口冲突 -->

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

masters和slaves

如果是伪分布式,直接localhost,如果是完全分布式,masters填写master的ip地址,slaves填写slave的ip地址,回车隔开

至此基本的配置已经完毕,如果想了解更多配置内容可以参考这篇文章hadoop三个配置文件的参数含义说明

要启动hadoop,第一次先格式化namenode,在hadoop安装目录下,命令为

<span style="font-size:14px;">$ bin/hadoop namenode -format

$ bin/start-all.sh</span>


二、hbase

使用的hbase为hbase-0.90.4,同样解压到下载目录下。

然后配置conf目录下的hbase-site.xml,添加以下内容:

复制代码
 
   
<configuration>

  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://localhost:9001/hbase</value><!-- 端口号和ip地址要与hadoop配置参数fs.default.name一致,在hadoop中的core-site中 -->
  </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包,使用以下命令:

复制代码
<pre name="code" class="html">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包。
此处不配置或者没有替换掉hbase中原有的文件会出现错误。
(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个进程那就对了。如下进程,可能代号不同

<span style="background-color: rgb(51, 255, 51);">
2032NameNode
13764HQuorumPeer
29069Jps
2630JobTracker
2280DataNode
13889HMaster
2535SecondaryNameNode
2904TaskTracker
14180HRegionServer
</span>


注意这几个东西一个都不能少,如果有什么少了,一定要去日志里看看是怎么回事。


三、es安装

 https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.19.4.tar.gz

同样在下载目录下解压,解压后就完成了安装了~~~~~就是这么简单。

不过一般需要安装head插件和其他扩展 插件,可以自行百度,这里不在讲解。需要特殊配置的同学可以参考这篇文章《分布式搜索elasticsearch配置文件详解》。

进入到elasticsearch目录下,bin/elasticsearch.in.sh启动es,然后用curl命令查看是否成功(没有curl命令的需要安装,sudo apt-get install curl)

curl -XGET 'localhost:9200/_cluster/health?pretty'

此条命令查看es是否成功启动,如果执行完后返回一组字符代表启动成功。如下:
<span style="background-color: rgb(0, 153, 0);">{
"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
}</span>

四、nutch2.2.1安装

 http://www.eu.apache.org/dist/nutch/2.2.1/apache-nutch-2.2.1-src.tar.gz或者nutch官网

此处可能会出比较多的问题。

下载解压后,先首先修改一个源码:

进入src/java/org/apache/nutch/crawl目录,修改GeneratorJob.java中的public Map<String,Object> run(Map<String,Object> args) 方法。

复制代码
注意放置位置。在类中定义curTime变量的后面
// 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>
 
   
</configuration>

复制代码

在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(elasticsearch的版本)

复制代码

在conf目录下找到gora.properties文件,添加以下内容:

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

接下来就是ant编译了,如果没有安装ant,请先安装ant。按照系统提示。

<span style="font-size:14px;">$ ant</span>

编译成功即可,抓取数据时的配置参考nutch中的配置。

至此,nutch安装成功,可能在ant中会报一个Failed什么错误,即时把出现错误的java类中的出错地方的(apache-nutch-2.2.1/src/java/org/apache/nutch/indexer/elastic中的ElasticWriter.java)tem.failed改为tem.isFailed。


参考链接:http://xieminis.me/?p=268

猜你喜欢

转载自blog.csdn.net/David_snjly/article/details/42809601