Hadoop+HBase 伪分布式安装配置

(一)hadoop伪分布式的配置:

       这个也可以参考《hadoop权威指南》上面写的很全面,这里再说一遍:

  我的机器配置环境:

       OS:Ubuntu10.10  ,hadoop版本:hadoop-0.20.2(下载网址: http://apache.etoak.com//hadoop/common/hadoop-0.20.2/  )

       (1)安装jdk,请参考我之前的文章:http://www.cnblogs.com/Dreama/articles/2097630.html

  (2)安装配置SSH,使其可以自动登录:

       $ sudo apt-get install ssh

       $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
       $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

       $ ssh localhost   //验证是否配置成功,不用输密码即可登录。

        (3)将hadoop-0.20.2包解压在主目录下(可以用命令$ tar -zxvf hadoop-0.20.2.tar.gz),然后配置hadoop-0.20.2目录下conf目录下的四个文件:

  conf/core-site.xml:
        <configuration>
               <property>
                  <name>fs.default.name</name>
                  <value>hdfs://localhost:8020</value>
              </property>
        </configuration>


      conf/hdfs-site.xml:
      <configuration>
             <property>
                  <name>dfs.replication</name>
                  <value>1</value>
             </property>
      </configuration>
     

     conf/mapred-site.xml:
     <configuration>
          <property>
               <name>mapred.job.tracker</name>
               <value>localhost:8021</value>
         </property>
     </configuration>


     conf/hadoop-env.sh:   

     将  #export JAVA_HOME=/usr/lib/jvm/java-6-sun   改为  export JAVA_HOME=***/***(自己的JAVA_HOME的主目录)

     通过以上步骤hadoop即安装配置完成,进入hadoop-0.20.2主目录的bin目录下

     $./hadoop namenode -format    //格式化hadoopnamenode,很多时候namenode启动不起来可以试试格式化一下,会好使。

     $./start-all.sh     //启动hadoop的各个监护进程

     可以通过http://localhost:50070   和http://localhost:50030 查看namenode和jobtracker。

     $./stop-all.sh    //关闭hadoop的各个监护进程


(二)安装配置Hbase:

      详细也可以参考《实战Hadoop》,里面也有详细的介绍。

      我用的版本是Hbase-0.90.3,下载网址:http://apache.etoak.com//hbase/hbase-0.90.3/      将Hbase-90.3解压到系统主目录下,伪分布式的配置如下:

      (1)编辑{HBASE_HOME}/conf/hbase-env.sh 文件,设置JAVA_HOME和HBASE_CLASSPATH变量

        export JAVA_HOME=/usr/lib/jvm/java-6-sun (自己的JAVA_HOME主目录)

        export HBASE_CLASSPATH=/home/daisy/hadoop-0.20.2/conf   (自己的HADOOP_HOME主目录)

       (2)编辑{HBASE_HOME}/conf/hbase-site.xml 文件,增加以下内容

<property>

    <name>hbase.rootdir</name>

    <value>hdfs://localhost:8020/hbase</value>  

</property>

<property>

    <name>hbase.cluster.distributed</name>

    <value>true</value>

</property>

      注:以上表格中标红色的路径一定要跟hadoop中core-site.xml中fs.default.name中的路径相同,否则会出错。

      (3)替换Hbase中的jar包

      需要用{HADOOP_HOME}下的hadoop-0.20.2-core.jar 替换掉{HBASE_HOME}/lib目录下的hadoop-core-0.20-append-r1056497.jar 。如果不替换jar文件Hbase启动时会因为hadoop和Hbase的客户端协议不一致而导致HMaster启动异常。报错如下:

localhost: Exception in thread "main" org.apache.hadoop.ipc.RPC$VersionMismatch: Protocol org.apache.hadoop.hdfs.protocol.ClientProtocol version mismatch. (client = 42, server = 41)

      所以如果遇到以上错误,就通过替换jar包解决。

      完成以上操作,就可以正常启动Hbase了,启动顺序:先启动Hadoop——>再启动Hbase,关闭顺序:先关闭Hbase——>再关闭Hadoop。

      启动Hbase的命令,进入到hbase安装主目录的bin目录下

      $ ./start-hbase.sh    //启动hbase

      $ ./hbase shell        //进入shell模式

      $ ./stop-all.sh          //停止hbase

       如果在操作Hbase的过程中发生错误,可以通过hbase安装主目录下的logs子目录查看错误原因。


注意:

  (1)hbase的运行需要用到zookeeper,而hbase-0.90.3自带了zookeeper,所以可以使用hbase自带的zookeeper,在conf/hbase-env.sh 文件中  export HBASE_MANAGES_ZK=true  ,true表示使用hbase自带的zookeeper,如果不想使用其自带的zookeeper,自己下载包安装的化,该项设置为false。 当然如果自己安装zookeeper,启动及关闭先后顺序为:启动Hadoop—>启动ZooKeeper集群—>启动HBase—>停止HBase—>停止ZooKeeper集群—>停止Hadoop。

  (2) hbase启动时报错:localhost: Exception in thread "main" org.apache.hadoop.ipc.RPC$VersionMismatch: Protocol org.apache.hadoop.hdfs.protocol.ClientProtocol version mismatch. (client = 42, server = 41)  ,原因就是上面hbase安装第三步中提到的没有替换jar包的原因。

posted @ 2011-10-20 17:14  午后的猫  阅读(6685)  评论(1编辑  收藏  举报