运行模式
单机模式
Hbase默认的运行模式,Hbase使用本地存储模式,同时Hbase在启动时内部包含的zookeeper,建议在初学Hbase,熟悉API和Shell命令时使用,具体配置参下面的快速安装。
分布式模式
包含两种模式,伪分布式和完全分布式,差别在于前者将所有进程都运行在一个服务器上,后者在每个节点上只运行一个进程。
伪分布式推荐在开发测试时使用。
快速安装(单机模式)
安装前提是在系统中已经安装好jdk环境。
1 解压 HBase 到指定目录
$ tar -zxvf hbase-1.3.1-bin.tar.gz -C /opt/
2 修改配置文件,位于解压目录下 conf下面
1)在hbase-env.sh文件中添加下列内容
export JAVA_HOME=/opt/jdk目录
2)hbase-site.xml 修改内容,配置数据的存储方式
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///自定义位置/hbase</value> #本地存储模式
</property>
</configuration>
3 启动Hbase
1)进入bin目录,执行启动脚本: start-hbase.sh
2)验证,在bin目录下执行命令: hbase shell
3)出现交互窗口,使用命令 status 查看状态,如下图 表示启动成功
分布式模式
硬件条件
1 服务器
不同配置的服务器满足不同需求,可以根据自身资源具体分配,下面给出推荐配置
cpu:大于4核心
内存: master -- 24G, slave -- 24G+
磁盘:master -- 4X1T SATA, RAID 0+1 (也可以用2T), slave -- 6X1T SATA, JBOD
2 网路
万兆以太网, 双PSU, 1U 或者2U
软件条件
1 操作系统: 64位的 centos6 | 7 、Debian、Ubuntu、RadHat
2 文件系统: ext4 或 XFS
3 JDK环境
4 Hadoop
5 配置SSH连接
6 为服务器设置域名
7 同步时间:集群内部各节点时间必须一致,可使用NTP服务
8 文件句柄和进程限制: 用 ulimit -a 查看句柄数,在/ect/security/limit.conf中修改
9 DataNode处理线程数量:如果使用hdfs做数据存储,需要修改DataNode配置,在hadoop的hdfs-site.xml设置xcievers,自少为4096
<property>
<name>dfs.datanode.max.xcievers</name>
<value>4096</value>
</property>
10 交换区:在 /ect/sysctl.conf 添加 vm.swappiness=0 或 5 , 重启服务器生效,使用 sysctl -p 查看。
文件系统
Hbase可以使用多种文件系统存储数据,包括本地模式,Hdfs模式
本地模式
本地模式将数据直接存储在本地磁盘当中,具体配置方式可以单机模式中修改 hbase-site.xml方式
Hdfs
推荐的配置方式,将数据存储在Hdfs中,具体配置方式下面会列出。
安装
安装前先配置好jdk基础环境,再部署zookeeper和hadoop,安装过程依次修改下列文件:
1 hbase-site.xml
系统启动后会先读取hbase-default.xml文件,再读取hbase-site.xml,需要将自定义的属性加入hbase-site.xml中,如果需要修改Hdfs的相关配置,可以将属性值添加到hbase-site.xml中,或者将hdfs-site.xml文件以符号连接方式加入到 hbase的conf目录下
2 hbase-env.sh
在脚本中配置与jdk相关内容,包括JAVA_HOME,内存配置等
3 regionserver
列出所有regionserver的主机名,一行一个主机名方式
4 log4.properties
配置日志级别
配置实例
下面以完全分布式为例,伪分布式即将各个域名写成一个即可
1 解压 HBase 到指定目录
$ tar -zxvf hbase-1.3.1-bin.tar.gz -C /opt/module
2 HBase 配置文件
1)hbase-env.sh 修改内容:
export JAVA_HOME=/opt/module/jdk1.8.0_144
export HBASE_MANAGES_ZK=false
2)hbase-site.xml 修改内容:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop2:9000/hbase</value> #采用Hdfs存储数据模式,红字为hadoop连接地址,根据实际修改
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 0.98后的新变动,之前版本没有.port,默认端口为60000 -->
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop2:2181,hadoop3:2181,hadoop4:2181</value> #为zookeeper连接地址,此处配置3台zookeeper
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/module/zookeeper-3.4.10/zkData</value>
</property>
</configuration>
3)regionservers:
hadoop2
hadoop3
hadoop4
4)软连接 hadoop 配置文件到 hbase:
$ ln -s /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml /opt/module/hbase/conf/core-site.xml
$ ln -s /opt/module/hadoop-2.7.2/etc/hadoop/hdfs-site.xml /opt/module/hbase/conf/hdfs-site.xml
3 HBase 远程发送到其他集群
启动
1.启动方式 1
$ bin/hbase-daemon.sh start master
$ bin/hbase-daemon.sh start regionserver
2.启动方式 2
$ bin/start-hbase.sh #执行的节点即为master节点
查看 HBase 页面
启动成功后,可以通过“host:port”的方式来访问 HBase 管理页面,例如:
http://hadoop2:16010