CentOS 6下HBase伪分布式安装实录

系统环境

OS:CentOS 6.4 64-bit
RAM:2G
CPU:Intel Core i5-2400 3.10GHz
Hadoop版本:hadoop-2.4.0.tar.gz
HBase版本:hbase-0.98.2-hadoop2-bin.tar.gz

准备工作

一、为主机命名

#vim /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=cos2.cosdomain

二、配置/etc/hosts

127.0.0.1   localhost localhost.localdomain
192.168.135.54 cos2 cos2.cosdomain

其中192.168.135.54为本机一个网卡的固定IPV4地址

三、安装JDK并设置JAVA_HOME

# tar zxvf jdk_1.8.0_linux_x64.tar.gz -C /jdk

# vim /etc/profile

最后加入下面几行

export JAVA_HOME=/jdk1.8.0_05
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

四、安装配置SSH,使其可以自动登录   

# yum install -y openssh
# ssh-keygen -t rsa-P '' -f ~/.ssh/id_rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub  user88@cos2
user88@cos2‘s password:

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

安装并配置hadoop

将hadoop-2.4.0.tar.gz包解压在目录/opt/hadoop-2.4.0,然后配置/hadoop-2.4.0/etc/hadoop目录下的四个文件:
core-site.xml:
        <configuration>
               <property>
                  <name>fs.defaultFS</name>
                  <value>hdfs://cos2:8020</value>
              </property>
              <property>
                  <name>hadoop.tmp.dir</name>
                 <value>/opt/hadoop_data</value>
              </property>
         </configuration>

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

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

hadoop-env.sh:   
export JAVA_HOME=/jdk1.8.0_05/

  通过以上步骤hadoop即安装配置完成,进入hadoop-2.4.0主目录的bin目录下
  # ./hdfs namenode -format    //格式化hadoop namenode,很多时候namenode启动不起来可以试试格式化一下
  进入hadoop-2.4.0主目录的sbin目录下
  # ./start-dfs.sh 和start-yarn.sh    //启动hadoop的各个监护进程
      可以通过http://cos2:50070   和http://localhost:50030 查看namenode和jobtracker。
  #./stop-yarn.sh 和start-dfs.sh   //关闭hadoop的各个监护进程

安装并配置hbase

将hbase-0.98.2-hadoop2-bin.tar.gz包解压在目录/opt/hbase-0.98.2,然后配置/opt/hbase-0.98.2/conf/hbase-env.sh文件

#JAVA_HOME主目录
export JAVA_HOME=/jdk1.8.0_05/
#指向HADOOP_HOME配置目录?为什么
export HBASE_CLASSPATH=$HBASE_CLASSPATH:/hadoop-2.4.0/etc/hadoop


编辑/opt/hbase-0.98.2/conf/hbase-site.xml 文件,增加以下内容

<property>
    <name>hbase.rootdir</name>
    <value>hdfs://cos2:8020/hbase</value>  
    ##标红色的路径一定要跟hadoop中core-site.xml中fs.defaultFS中的路径相同,否则抛错。
</property>
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>
<property>  
    <name>hbase.zookeeper.quorum</name>  
    <value>cos2</value>  
</property>
<property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
</property>


完成以上操作,就可以正常启动HBase了,启动顺序:先启动Hadoop——>再启动Hbase,关闭顺序:先关闭Hbase——>再关闭Hadoop。
# ./start-hbase.sh
# ./stop-hbase.sh

如果一切正常,使用jdk自带的jps命令查看可得到类似如下输出

# jps
23346 ResourceManager
24133 HRegionServer
23159 SecondaryNameNode
22985 DataNode
23961 HQuorumPeer
22858 NameNode
23451 NodeManager
5598 Jps
24031 HMaster



也可以在地址http://cos2:60010/master.jsp查看HBase运行信息。


接下来就可以启动hbase shell
#./hbase shell

错误集锦

(1)ERROR: Can't get master address from ZooKeeper; znode data == null

原因:运行hbase(zookeeper)的用户无法写入zookeeper文件,导致znode data为空。

解决:在hbase-site.xml指定一个运行hbase的用户有写入文件权限的目录作为zookeeper数据目录,如
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/user88/zk_data</value>
  </property>

(2)HMaster起动失败,HBASE_HOME/logs/下的master日志有打印
master.HMaster: Unhandled exception. Starting shutdown.
java.net.ConnectException: Call From cos2.com/10.0.3.218 to cos2:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

原因:除了http://wiki.apache.org/hadoop/ConnectionRefused中原因外,还应保证/etc/hosts文件中不存在 ::1 localhost localhost.localdomain这一行

解决:删除/etc/hosts文件中不存在 ::1 localhost localhost.localdomain这一行

(3)start-dfs.sh启动HDOOP_HOME/logs下日志中报错org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/xxxxxxxx/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.  

原因:  在linux下hadoop等的各种数据默认保存在/tmp目录下。 当重启系统后/tmp目录中的数据信息被清除,导致hadoop启动失败。

解决: bin/hadoop namenode -format 格式化后,恢复了默认设置,即可正常启动。
或者在hadoop的core-site.xml中加入以下配置
              <property>
                  <name>hadoop.tmp.dir</name>
                 <value>/opt/hadoop_data</value>
              </property>

参考文献

http://www.cnblogs.com/Dreama/articles/2219190.html

http://blog.csdn.net/johnny901114/article/details/9446593

转载于:https://my.oschina.net/u/1377774/blog/264407

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值