HBase集群搭建
一、安装环境:
至少两台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 查看MasteServer界面
http://slave:60030 查看RegionServer界面
4.停止Hbase
bin/stop-hbase.sh
5.停止hadoop
bin/stop-dfs.sh