HBase-0.94.12部署文档

本文档详细介绍了HBase 0.94.12的部署过程,包括HBase的基本概念、集群架构、部署方案及配置文件详解。内容涵盖从创建账户、免密码登陆配置到启动和测试HBase的全过程,旨在帮助读者构建高可靠、高性能的分布式HBase集群。


1. HBase介绍

Hbasebigtable的开源山寨版本。是建立的HdfsZooKeeper之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的分布式、版本化数据库系统。

Hbase系统中包含四个角色:主Master、备份Master、若干Regionserver、客户端。其中客户端即访问接口,常见的有hbase shellthriftrest等。

Hbase介于nosqlRDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)。主要用来存储非结构化和半结构化的松散数据。

hbase官方网站是http://hbase.apache.org/

2. 术语介绍

  • Hbase:本文中说的hbase如无特殊说明则代表整个hbase集群。
  • Hdfs:是一个分布式文件系统,它是googlegfs的山寨版本。HDFS 提供了一个高度容错性和高吞吐量的海量数据存储解决方案。(详细见hadoop文档)
  • ZookeeperZookeeperGoogleChubby一个开源的实现,是高有效和可靠的协同工作系统,Zookeeper能够用来leader选举,配置信息维护等。(详细见zookeeper文档)

3. 集群架构

3.1. 部署方案

一套完善的Hbase集群需要有至少两个Master,其中一个为主Master一个为备份Master,防止因主Master宕机引起单点故障;还需要若干Regionserver,用于存储实际数据,HRegionserver的个数需要根据实际需求而定,可动态扩展。根据应用需求还可能需要配置若干thrift server

实际部署中MasterRegionserver最好部署到单独服务器上,不要复用机器,以达到hbase的最好性能。

另外,Hbase的运行需要依赖另外两个系统:hadoopzookeeper。本部署方案认为hadoopzookeeper已经配置ok。理论上zookeeper不是必须的,因为HBase本身自带了一套zookeeper系统,建议单独搭建zookeeper系统。

3.2. hbase部署实例

按照上面所说方案,搭建了一个简单的hbase集群,在该集群中有两个master,分别为主master和备份master,两个regionserver,分别为regionserver1regionserver2

现有两台机器,角色分配如下

HostNameIPRole
gd17192.168.26.17Master2(备)、Regionserver1
gd19192.168.26.19Master1(主)、Regionserver2

3.3. 部署图


4. 准备工作

此文档默认Java运行环境JDK、底层存储的hadoopDFSzookeeper集群已经搭建完成。

4.1. 文件准备

Hbase源码包下载,以0.94.12版本为例

http://mirrors.cnnic.cn/apache/hbase/stable/hbase-0.94.12.tar.gz

其他版本源码包见 http://archive.apache.org/dist/hbase/

4.2. 基础环境

4.2.1. 创建账户

在部署hbase的所有机器上都需要创建hbase账号,命令:

$adduser hbase

$sudo  useradd -m -d /home/hbase -g hadoop -G admin -s /bin/bash hbase

如果使用root账户则存在安全隐患,所以统一创建hbase账户,便于管理hbase集群。

4.2.2. 免密码登陆配置

为方便统一控制hbase集群,如启、停等,需要配置hbase集群机器间的无密码登陆。只需配置一台机器能无密码登陆其他机器即可,并将该机器作为控制节点,对整个集群进行控制。在本例中,将gd19作为控制节点,配置如下

gd19能免密码登陆gd17设置

  1. 修改gd17 ssh 配置文件:# vi /etc/ssh/sshd_config
    • PermitEmptyPasswords   yes
    • PermitRootLogin   yes
    • AuthorizedKeysFile     %h/.ssh/authorized_keys
  2. 重启 ssh/etc/init.d/sshd restart
  3. cd /root/.ssh/
  4. cp id_rsa.pub authorized_keys(如果没有id_rsa.pub可以用ssh-keygen -t rsa生成)
  5. ssh  本机主机名,遇到提问,输入 yes,回车 
  6. 将gd19上的id_rsa.pub文件内容追加到gd17/root/.ssh/authorized_keys文件中
  7. 注意,gd19也需要配置自己免密码登录自己,便于统一操作。步骤为,将gd19id_rsa.pub文件内容也追加到gd19/root/.ssh/authorized_keys文件中即可。

5. 部署Hbase

5.1. 部署步骤

  1. 在每台机器上创建如下目录(目录必须相同,因为hbase的启停脚本只会到相同目录下寻找文件)。
    • /opt/hbase,用于存放hbase解压文件。
    • /opt/data/zookeeper,用于存放zookeeper的镜像文件,只有使用hbase自带的zookeeper才需要创建该目录。
  2. hbase的压缩包解压后的文件拷贝到控制节点(gd19)的/opt/hbase目录中。
  3. 修改控制节点上的配置文件,conf/hbase-site.xmlconf/hbase-env.sh。这一步是关键,决定了能否启动hbase。具体如何修改看配置文件节。
  4. 将控制节点上/opt/hbase目录下的文件分发到hbase机器上各个节点的相应目录下。
  5. 运行bin/start-hbase.sh脚本启动hbase

5.2. 简单测试

首先,可以通过web页面查看是否启动成功,
http://192.168.26.19:60010/master-status
在如果master启动成功就能正常访问该页面,其上显示了zookeeper集群信息,和成功启动的HRegionserver信息。

如果该页面看到的信息都正常,则可以进行简单的创建表格插入数据等操作。执行命令

$bin/hbase shell

进入hbase的shell模式,然后执行

>create ‘student’,’name’,’age’

创建一个student表,该表包含两列。

5.3. 分布式最小配置文件

5.3.1. Hbase-site.xml文件

要想运行完全分布式模式,需要配置的最小属性集如下

  1. Hbase.rootdir :这个目录是region server的共享目录,用来持久化HbaseURL需要是'完全正确'的,还要包含文件系统的scheme。例如,要表示hdfs中的'/hbase'目录,namenode 运行在node19090端口。则需要设置为hdfs://node1:49002/hbase。默认情况下Hbase是写到/tmp的。不改这个配置,数据会在重启的时候丢失。默认file:///tmp/hbase-${user.name}/hbase
  2. hbase.cluster.distributed :Hbase的运行模式。false是单机模式,true是分布式模式。若为false,HbaseZookeeper会运行在同一个JVM里面。默认: false
  3. hbase.master.port :HBaseMaster的端口,默认: 60000
  4. hbase.zookeeper.property.clientPort :客户端连接的端口,默认: 2181
  5. hbase.zookeeper.quorum :Zookeeper集群的地址列表,用逗号分割。例如:"host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".默认是localhost,是给伪分布式用的。要修改才能在完全分布式的情况下使用。如果在hbase-env.sh设置了HBASE_MANAGES_ZK,这些ZooKeeper节点就会和HBase一起启动。默认: localhost
  6. hbase.zookeeper.property.dataDir :快照的存储位置,默认: ${hbase.tmp.dir}/zookeeper

5.3.2. Hbase-env.sh文件

需要将该文件中的JAVA_HOME环境变量修改为jdk的安装目录,export JAVA_HOME=/opt/jdk1.7.0_25/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值