第一章 硬件要求
CPU | Intel - Nehalem (2008发布) 或以后发布的CPU AMD - Bulldozer (2011发布)或以后发布的CPU |
内存 | PetaBase 对内存要求较高,至少64GB内存,建议128G到512G。 |
存储 | 提供足够大磁盘存储空间,这取决于数据量大小和文件副本数。 |
网卡 | 千兆或万兆以太网卡 |
第二章:操作系统要求
PetaBase目前支持64位 Linux的操作系统 |
Red Hat Enterprise Linux (RHEL) 5.7/6.2/6.4 |
CentOS 5.7/6.2/6.5 |
SLES 11 with Service Pack 1 or later |
Ubuntu 10.04/12.04 or Debian 6.03. |
第四章:获得源码包
注:Hbase 是一个数据库,其版本要和当前集群环境相兼容。比如当前hadoop是5.3.0的,那么Hbase 也应该是 5.3.0 版的。
下载地址:http://archive-primary.cloudera.com/cdh5/cdh/5/
第五章:简介
hbase是bigtable的开源山寨版本。是建立的hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。
它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)。主要用来存储非结构化和半结构化的松散数据。
与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。
HBase中的表一般有这样的特点:
1 大:一个表可以有上亿行,上百万列
2 面向列:面向列(族)的存储和权限控制,列(族)独立检索。
3 稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
第六章:安装
1. 将源码包上传至服务器
2. 解压到当前目录 tar zxvf xxx
3. 修改配置文件
3.1 /conf/hbase-env.sh
加上以下属性:
export JAVA_HOME=/usr/java/jdk1.7.0_45
export HBASE_LOG_DIR=/home/hbase-0.98.6-cdh5.3.0/logs
export HBASE_MANAGES_ZK=false
export HBASE_HOME=/home/hbase-0.98.6-cdh5.3.0
export HBASE_HEAPSIZE=4096
注:
export JAVA_HOME # java安装路径
export HBASE_LOG_DIR # Hbase日志路径,要新建logs文件夹 mkdir logs
export HBASE_MANAGES_ZK #false表示使用外部zookeeper,true表示由Hbase负责启动和关闭zookeeper
export HBASE_HOME #Hbase 安装路径
export HBASE_HEAPSIZE # 内存设置,根据实际情况设定
3.2 /conf/hbase-site.xml
该文件默认没有任何属性,需要自行添加。
在 <configuration></configuration> 节点内添加以下属性
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:8020/hbase</value>
</property>
<property>
<name>hbase.master.port</name>
<value>60005</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.client.write.buffer</name>
<value>2097152</value>
</property>
<property>
<name>hbase.client.pause</name>
<value>100</value>
</property>
<property>
<name>hbase.client.retries.number</name>
<value>35</value>
</property>
<property>
<name>hbase.client.scanner.caching</name>
<value>100</value>
</property>
<property>
<name>hbase.client.keyvalue.maxsize</name>
<value>10485760</value>
</property>
<property>
<name>hbase.rpc.timeout</name>
<value>60000</value>
</property>
<property>
<name>hbase.snapshot.enabled</name>
<value>true</value>
</property>
<property>
<name>hbase.security.authentication</name>
<value>simple</value>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>60000</value>
</property>
<property>
<name>zookeeper.znode.parent</name>
<value>/hbase</value>
</property>
<property>
<name>zookeeper.znode.rootserver</name>
<value>root-region-server</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.regionserver.handler.count</name>
<value>100</value>
</property>
部分属性值解释:
Hbase.rootdir :Hbase在hdfs上的存储根目录
Hbase.master.port: Hbase运行master 的端口号,设置的时候,保证不冲突就行。类似于Tomcat 的8080端口
Hbase.cluster.distributed :设置集群处于分布式模式
Hbase.client.write.buffer:客户端读写缓冲区内存设置
Hbase.client.pause : 客户端最大等待时间
Hbase.client.retries.number:客户端最大尝试次数
Zookeeper.znode.parent :Hbase的zookeeper配置文件路径设置
Hbase.zookeeper.quorum: 全分布设置,zookeeper的法定服务器列表。
Hbase.regionserver.handler.count : Hbase 事件句柄数量设置
3.3 /conf/regionservers
此文件中的默认值是localhost,表示Hbase只在本机上运行,如果是集群环境,我们设置Hbase运行在各个数据节点上。
例:
我们将Hbase安装在namenode 节点上,设置Hbase运行在datanode上。
所以配置如下:
3.4 设置用户组和权限
3.4.1 设置/hbase-0.98.6-cdh5.3.0/bin 目录下文件的拥有者和拥有者所在组
chown root:root -R /bin
3.4.2 为 / hbase-0.98.6-cdh5.3.0/bin 目录下文件赋予可执行权限
chmod a+x -R /bin
3.5 文件复制迁移
完成前面的步骤,完成了在namemode节点的安装,现在拷贝整个hbase-0.98.6-cdh5.3.0 文件夹到 其余的 datanode节点。拷贝完毕后,依次为 / hbase-0.98.6-cdh5.3.0/bin 目录下文件赋予可执行权限
chmod a+x -R /bin
第七章:维护
1. 启动
cd bin
. start-hbase.sh
2. 停止
cd bin
. stop-hbase.sh