HBase集群搭建

fmms 13年前

一、安装环境:
至少两台linux主机,假设两台机器的登录用户名都为hbase,并且IP分配如下:
192.168.7.85         master机器
192.168.7.72         slave机器
集群的每台机器需要安装如下软件:
1.ubuntu linux
2. jdk6.0或以上版本
       $ apt-get install openjdk-6-jdk openjdk-6-jre
3.ssh
       $ sudo apt-get install ssh
       $ sudo apt-get install rsync

4.hadoop
       下载地址:http://www.apache.org/dyn/closer.cgi/hadoop/common/
5.hbase
       下载地址:http://www.apache.org/dyn/closer.cgi/hbase/
二、集群配置
1.配置linux环境
在使用HBase的时候,通常需要访问很多文件和开很多进程,因此需要在linux中提高相应用户的访问上限值,通过如下方式配置:
首先修改/etc/security/limits.conf配置文件,加入如下配置信息:
hbase      -               nofile      32768
hbase      soft          nproc      32000
hbase      hard        nproc      32000
其中hbase为用户名
然后,修改/etc/pam.d/common-session配置文件,加入如下配置信息:
session requiredpam_limits.so
重启机器,确保新环境生效
2.ssh配置
配置master机器对每台slave机器的passwordless登录环境
首先,在master机器的用户主目录下,通过如下命令来生成证书文件authorized_keys
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

然后,将证书文件复制到其他机器的用户主目录下
$scp /home/hbase/.ssh authorized_keys hbase@slave01:/home/hbase/.ssh/authorized_keys
3. Hadoop配置
1.参考Nutch+Hadoop集群配置中hadoop的搭建
2除此之外,还需在conf/hdfs-site.xml文件中配置如下属性:
<property>
        <name>dfs.support.append</name>
        <value>true</value>
</property>
如不指定,在使用HDFS存储的时候,HBase可能会遗失数据
<property>
        <name>dfs.datanode.max.xcievers</name>
        <value>4096</value>
</property>
设置datanode可对外提供服务的文件数量的上限
3将${HBASE_HOME}/lib目录下的hadoop-.jar文件替换成Hadoop环境中的相应jar文件,以解决Hadoop版本冲突问题。
注:替换掉hadoop包之后,可能还需要向${HBASE_HOME}/lib目录中引入额外的第三方jar包,以确保hadoop-
.jar的顺利编译,如:commons-configuration-*.jar,同样可从hadoop环境中拷贝。
4.HBase配置
4.1 cong/hbase-env.sh配置文件
至少设置以下环境变量
export JAVA_HOME=/PATH/TO/JDK_HOME
4.2conf/hbase-site.xml配置文件
<configuration>
       <property>
              <name>dfs.support.append</name>
              <value>true</value>
              <description>确保再使用HDFS存储时,不出现数据遗失</description>
       </property>
       <property>
              <name>hbase.rootdir</name>
              <value>hdfs://master:9000/hbase</value>
              <description>hbase的存储根路径</description>
       </property>
       <property>
              <name>hbase.cluster.distributed</name>
              <value>true</value>
              <description>是否采用集群方式部署</description>
       </property>
       <property>
              <name>hbase.zookeeper.quorum</name>
              <value>slave01</value>
              <description>zookeeper的server地址,多台机器用逗号隔开</description>
       </property>
       <property>
              <name>hbase.zookeeper.property.dataDir</name>
              <value>/home/hbase/zookeeper</value>
              <description>zookeeper的数据存储目录</description>
       </property>
</configuration>
注:zookeeper默认由hbase集成的方式部署,如果要想独立部署,需要在hbase-env.sh文件中,将HBASE_MANAGES_ZK设置成false
4.3conf/regionservers配置文件
配置RegionServer机器,类似于Hadoop中的slaves配置文件,添加相应的机器ip,这里为
192.168.7.72
三、启动集群环境
1.首先启动hadoop的hdfs子进程,在${HADOOP_HOME}目录下
       bin/start-dfs.sh
hadoop的其他进程暂不需要
2.启动Hbase,在${HBASE_HOME}目录下
       bin/start-hbase.sh
3.判断是否启动成功
       http://master:60010      &nbsp; 查看MasteServer界面
       http://slave:60030        &nbsp; 查看RegionServer界面
4.停止Hbase
       bin/stop-hbase.sh
5.停止hadoop
       bin/stop-dfs.sh