zoukankan      html  css  js  c++  java
  • nutch-2.2.1 hadoop-1.2.1 hbase-0.92.1 集群部署

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
    内部邀请码:C8E245J (不写邀请码,没有现金送)
    国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为中国PE第一股,市值超1000亿元。 

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------

     

    原文地址: http://www.cnblogs.com/i80386/p/3540389.html

    参考网站:
    http://blog.csdn.net/weijonathan/article/details/10178919 一个完整的部署过程,只是版本有所区别
    http://m.blog.csdn.net/blog/WeiJonathan/9251597 杨尚川的博客(nutch 分布式运行)
    http://qindongliang1922.iteye.com/blog/1977053 三劫散仙博客(如何部署hbase)
    http://wiki.apache.org/nutch/Nutch2Tutorial 官网

    一:nutch2.x与nutch1.x的主要区别:数据访问层的抽象
    nutch 2.x----gora-core-0.3----gora-hbase----hbase

    gora-core-0.3 apache-gora提供了对nosql访问的统一接口。(注解:在上述链接里可以看到对其他数据库的支持)
    gora-hbase 针对hbase实现了gora的接口

    :
    有了这两步nutch2.x就可以运行在Hbase上了。
    支持nosql的优势:
    当获取了外链要进行url排重的时候,以前基于hdfs的时候是读取之前全部的url用mapreduce实现排重(好沉重的赶脚),支持了nosql只需要一步查找即可。

    二:准备材料

    hadoop-1.2.1 http://archive.apache.org/dist/hadoop/core/hadoop-1.2.1/hadoop-1.2.1.tar.gz
    hbase-0.92.1 http://archive.apache.org/dist/hbase/hbase-0.92.1/hbase-0.92.1.tar.gz
    nutch-2.2.1 http://archive.apache.org/dist/nutch/2.2.1/apache-nutch-2.2.1-src.tar.gz

    使用wget下载。

    三:安装hadoop(略)
    我这里做了2个机器的hadoop集群,如下所示:

    192.168.2.51 Master.Hadoop
    192.168.2.52 Slave1.Hadoop


     
     

    四:安装Hbase(第一次配置简单点,使用自带的zookeeper)
    将hbase拷贝到Hadoop根目录下 参考命令:

    cp hbase-0.92.1.tar.gz /home/hadoop-1.2.1/ (之所以这样做可以方便以后扩展hadoop集群,直接scp就行了)

    解压并重命名 参考命令:

    tar -zxvf hbase-0.92.1.tar.gz
    mv hbase-0.92.1 hbase
    cd hbase 

    修改 hbase-env.sh,参考配置:

    # The java implementation to use. Java 1.6 required.
    # export JAVA_HOME=/usr/java/jdk1.6.0/ 
    export JAVA_HOME=/usr/java/jdk 注解:设置java_home
    export HBASE_CLASSPATH=/home/hadoop-1.2.1/conf 
    export HBASE_MANAGES_ZK=true
    ...
    # The directory where pid files are stored. /tmp by default. 
    export HBASE_PID_DIR==/home/hadoop-1.2.1/hbase/pids (注解:这个最好不要采用默认,放在/tmp很不安全,有可能被误删)


    修改hbase-site.xml,参考配置:

    <configuration>
      <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
      </property>
      <property>
        <name>hbase.rootdir</name>
        <value>hdfs://Master.Hadoop:9000/hbase</value> // 注解:这里与hadoop的hdfs建立了联系,如果你hadoop dfs -ls 发现没有hbase这个文件夹,
      </property> 运行:hadoop dfs -ls /hbase
      <property>
        <name>hbase.master</name>
        <value>192.168.2.51:60000</value>
      </property>
      <property>
        <name>hbase.zookeeper.quorum</name>
        <value>192.168.2.52</value>
      </property>
    </configuration>

    vim regionservers 参考配置:

    192.168.2.51
    192.168.2.52

    hadoop版本一致化:(版本不一致会出现异常)

    cp /home/hadoop-1.2.1/hadoop-core-1.2.1.jar /home/hadoop-1.2.1/hbase/lib/

    并删除hbase自带的hadoop版本。

    将配置好的hbase拷贝到slave节点(192.168.2.52)

    cd /home/hadoop-1.2.1
    scp -r hbase root@192.168.2.52:/home/hadoop-1.2.1/

    启动hbase

    cd /home/hbase/
    bin/start-hbase.sh


    启动成功,运行jps命令:

    16572 Resin
    30282 HMaster
    5275 NameNode
    5563 JobTracker
    5461 SecondaryNameNode
    5886 Jps
    30470 HRegionServer


    其中HMaster即hbase的主进程。


    五:安装nutch
    解压(注:这个不需要解压到hadoop根目录,因为nutch是才操作hadoop的,在master上有就可以了)

    cd /home/
    tar -zxvf apache-nutch-2.2.1-src.tar.gz //将nutch解压到home下
    vim /home/nutch-2.2.1/ivy/ivy.xml

    将此行的注释去掉 <dependency org="org.apache.gora" name="gora-core" rev="0.3" conf="*->default"/> 
    将hbase-site.xml拷贝到nutch的配置文件(建立与hbase的联系???)
    ant 注解:编译过程很慢,会去加载大量的jar包。
    注入种子:

    mkdir urls
    vim seed.txt
    http://news.163.com/
    http://www.gov.cn/
    http://www.sbsm.gov.cn/
    http://news.stnn.cc/china/
    http://www.zaobao.com/wencui/social
    http://www.xinhuanet.com/politics/1.htm
    http://news.china.com.cn/shehui/node_7185045.htm

    上传的hdfs,完成种子url的注入

    hadoop dfs -put urls urls

    修改采集规则:

    regex-urlfilter.txt 
    # accept anything else
    +^http://news.163.com/
    +^http://www.sbsm.gov.cn/
    +^http://www.gov.cn/
    +^http://news.stnn.cc/china/
    +^http://www.zaobao.com/wencui/social
    +^http://www.xinhuanet.com/politics
    +^http://news.xinhuanet.com/politics/d+-d+/d+/c_d+.htm
    +^http://news.china.com.cn/d+-d+/d+/content_d+.htm
    +^http://news.china.com.cn/shehui/node_d+(_d+)?.htm

    注解:conf 下面的配置文件都会被打包到ant后生成的job文件中,所以这里要提前修改(以后要是要注入新的采集规则需要解压job文件修改)
    修改配置(集群环境运行)

    cd runtime/deploy 
    unzip -d apache-nutch-2.2.1 apache-nutch-2.2.1.job 
    rm apache-nutch-2.2.1.job 
    cd apache-nutch-2.2.1 
    rm lib/hbase-***.jar 
    cp /home/hadoop-1.2.1/hbase/hbase-0.92.1.jar lib 
    zip -r ../apache-nutch-2.1.job ./* 
    cd .. 
    rm -r apache-nutch-2.1 

    运行命令:

    cd runtime/deploy/bin
    vim nutch 阅读shell发现:
    # figure out which class to run
    if [ "$COMMAND" = "crawl" ] ; then
    class="org".apache.nutch.crawl.Crawler

    发现crawl命令运行Crawler类

    vim org.apache.nutch.crawl.Crawler (参考这个命令找到那个Crawler类)

    得到命令格式为:

    System.out.println("Usage: Crawler (<seedDir> | -continue) [-solr <solrURL>] [-threads n] [-depth i] [-topN N] [-numTasks N]");
    cd /runtime/deploy

    于是运行如下命令:

    bin/nutch crawl urls -topN 1000 -depth 50

    如果运气足够好,你会在Hbase shell 后 list 后 发现一个 'webpage' 表

    附本人配置时候设置的 /etc/profile:

    #java
    export JAVA_HOME=/usr/java/jdk
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    #hadoop
    export HADOOP_HOME=/home/hadoop-1.2.1
    export PATH=$PATH:$HADOOP_HOME/bin
    
    #zookeeper
    export ZOOKEEPER_HOME=${HADOOP_HOME}/zookeeper
    export PATH=${PATH}:${ZOOKEEPER_HOME}/bin
    
    #hbase
    export HBASE_HOME=/home/hadoop-1.2.1/hbase
    export PATH=$PATH:$HBASE_HOME/bin
    export CLASSPATH=$CLASSPATH:$HBASE_HOME/lib
    
    #nutch 2.2
    export NUTCH_HOME=/home/hadoop-1.2.1/nutch/runtime/local
  • 相关阅读:
    poj 2528 Mayor's posters (线段树+离散化)
    poj 1201 Intervals (差分约束)
    hdu 4109 Instrction Arrangement (差分约束)
    poj 1195 Mobile phones (二维 树状数组)
    poj 2983 Is the Information Reliable? (差分约束)
    树状数组 讲解
    poj 2828 Buy Tickets (线段树)
    hdu 1166 敌兵布阵 (树状数组)
    Ubuntu网络配置
    Button控制窗体变量(开关控制灯的状态)
  • 原文地址:https://www.cnblogs.com/AloneSword/p/3750555.html
Copyright © 2011-2022 走看看