hbase单机环境的搭建和完全分布式Hbase集群安装配置

时间:2021-01-21 08:24:03

  HBase 是一个开源的非关系(NoSQL)的可伸缩性分布式数据库。它是面向列的,并适合于存储超大型松散数据。HBase适合于实时,随机对Big数据进行读写操作的业务环境。

@hbase单机环境的搭建

1.首先配置好JDK,准备好hbase-0.98.12.1-hadoop2-bin.tar的压缩包,然后解压到相应目录中

2.进入conf/hbase-env.sh.文件,进行JDK的配置,将其中的JAVA_HOME指向到你Java的安装目录

3.编辑conf/hbase-site.xml文件,添加如下代码:

<configuration> <property> <name>hbase.rootdir</name> <value>file:///home/testuser/hbase</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/testuser/zookeeper</value> </property> </configuration>

4.使用bin/start-hbase.sh命令来启动hbase

shell练习参考:http://abloz.com/hbase/book.html#quickstart

停止hbase的运行:./bin/stop-hbase.sh

以上运行的是单机模式的Hbaes。所有的服务都运行在一个JVM上,包括HBase和Zookeeper。HBase的日志放在logs目录,当你启动出问题的时候,可以检查这个日志。

@完全分布式Hbase集群安装配置

分布式模式分两种。伪分布式模式是把进程运行在一台机器上,但不是一个JVM.而完全分布式模式就是把整个服务被分布在各个节点上了

伪分布式模式参考:http://abloz.com/hbase/book.html#notsoquick

1.编辑/conf下的hbase-site.xml去配置hbase.rootdir,来选择HBase将数据写到哪个目录,编辑conf/hbase-env.sh,将其中的JAVA_HOME指向到你Java的安装目录。

 

<configuration>
  ...
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://namenode.example.org:9000/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
</configuration>

 <configuration>
 <property>
    <name>hbase.rootdir</name>
    <value>hdfs://xiaotian/hbase</value>
  </property>
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>node1,node2,node3</value>
  </property>

hbase单机环境的搭建和完全分布式Hbase集群安装配置
</configuration>

 2.vi regionservers

  修改这个配置文件为所以regionserver的主机名

3.让HBase使用一个已有的不被HBase托管的Zookeep集群,需要设置 conf/hbase-env.sh文件中的HBASE_MANAGES_ZK 属性为 false

   export HBASE_MANAGES_ZK=false

运行一个zookeeper也是可以的,但在生产环境中,最好部署3,5,7个节点,部署的越多,可靠性就越高。需要给每个zookeeper至少1G左右的内存,如果可能的话,最好有独立的磁盘

4.在hbase下的conf目录下:cp -a /home/hadoop-2.5/etc/hadoop/hdfs-site.xml .,将hadoop下的hdfs-site.xml文件拷贝到当前目录下

5.首先确认你的HDFS是运行着的。你可以运行HADOOP_HOME中的 bin/start-hdfs.sh 来启动HDFS.你可以通过put命令来测试放一个文件,然后有get命令来读这个文件。通常情况下HBase是不会运行mapreduce的。所以比不需要检查这些。

如果你自己管理ZooKeeper集群,你需要确认它是运行着的。如果是HBase托管,ZoopKeeper会随HBase启动。

用如下命令启动HBase:

bin/start-hbase.sh

这个脚本在HBASE_HOME目录里面。

在哪一台机器上使用bin/start-hbase.sh脚本,哪一台机器就是HMaster,而Regionserver则是在regionservers配置文件里配置好的
如果在另一台机器上启动HMaster,可以使用脚本:./bin/hbase-daemon.sh start maste

你现在已经启动HBase了。HBase把log记在 logs 子目录里面. 当HBase启动出问题的时候,可以看看Log.

HBase也有一个界面,上面会列出重要的属性。默认是在Master的60010端口上H (HBase RegionServers 会默认绑定 60020端口,在端口60030上有一个展示信息的界面 ).如果Master运行在 master.example.org,端口是默认的话,你可以用浏览器在 http://master.example.org:60010看到主界面. .

一旦HBase启动,可以看到如何建表,插入数据,scan你的表,还有disable这个表,最后把它删掉。

flush 't_person'可进行溢写操作

手动合并:major_compact 't_person'

可以在HBase Shell停止HBase

$ ./bin/stop-hbase.sh
stopping hbase...............

停止操作需要一些时间,你的集群越大,停的时间可能会越长。如果你正在运行一个分布式的操作,要确认在HBase彻底停止之前,Hadoop不能停.