Apache HBase
- Apache HBase™是Hadoop数据库,是一个分布式,可扩展的大数据存储。
- 当您需要对大数据进行随机,实时读/写访问时,请使用Apache HBase™。该项目的目标是托管非常大的表 - 数十亿行X百万列 - 在商品硬件集群上。Apache HBase是一个开源的,分布式的,版本化的非关系数据库
特征
- 线性和模块化可扩展性。
- 严格一致的读写操作。
- 表的自动和可配置分片
- RegionServers之间的自动故障转移支持。
- 方便的基类,用于使用Apache HBase表支持Hadoop MapReduce作业。
- 易于使用的Java API,用于客户端访问。
- 阻止缓存和布隆过滤器以进行实时查询。
- 查询谓词通过服务器端过滤器下推
- Thrift网关和REST-ful Web服务,支持XML,Protobuf和二进制数据编码选项
- 可扩展的基于jruby(JIRB)的外壳
- 支持通过Hadoop指标子系统将指标导出到文件或Ganglia; 或通过JMX
安装 独立HBase
HBase要求安装JDK。有关支持的JDK版本的信息
从此Apache下载镜像列表中选择一个下载站点。单击建议的顶部链接。这将带您进入HBase版本的镜像。单击名为stable的文件夹,然后将以.tar.gz结尾的二进制文件下载到本地文件系统。暂时不要下载以src.tar.gz结尾的文件。
解压缩下载的文件,然后切换到新创建的目录。
1 | $ tar -xzvf hbase-1.2.6.1-bin.tar.gz |
为HBase设置Java目录,并从conf文件夹打开hbase-env.sh文件。编辑JAVA_HOME环境变量,改变路径到当前JAVA_HOME变量
1 | #编辑/home/hbase-1.2.6.1/conf/hbase-env.sh |
编辑conf/hbase-site.xml,这是主要的HBase配置文件
1 | <configuration> |
到此 HBase 的安装配置已成功完成。可以通过使用 HBase 的 bin 文件夹中提供 start-hbase.sh 脚本启动 HBase
1 | $ ./bin/start-hbase.sh |
运行HBase启动脚本,它会提示一条消息:HBase has started
1 | starting master, logging to /usr/local/HBase/bin/../logs/hbase-tpmaster-localhost.localdomain.out |
- 该./start-hbase.sh脚本是作为启动HBase的一种便捷方式。发出命令,如果一切顺利,将在标准输出中记录一条消息,显示HBase已成功启动。您可以使用该jps命令验证是否有一个正在运行的进程HMaster。在独立模式下,HBase运行此单个JVM中的所有守护程序,即HMaster,单个HRegionServer和ZooKeeper守护程序。转到
http:// localhost:16010
以查看HBase Web UI。
HBase Shell
要访问HBase shell,必须导航进入到HBase的主文件夹。
1 | #进入shell |
通用命令
1 | status: 提供HBase的状态,例如,服务器的数量。 |
HBase在表中操作的命令。
1 | create: 创建一个表。 |
数据操纵语言
1 | put: 把指定列在指定的行中单元格的值在一个特定的表。 |
解决Java API不能远程访问HBase的问题
1、配置Linux的hostname
1 | [root@CentOS124 hbase-1.2.6.1]# vie /etc/sysconfig/network |
这里配置的hostname要Linux重启才生效,为了不重启就生效,我们可以执行:hostname CentOS124命令,暂时设置hostname
2、配置Linux的hosts,映射ip的hostname的关系
1 | #映射ip的hostname的关系 |
3、配置访问windows的hosts
1 | #hbase |
Java 操作远程hbase
1 | public class HbaseTest { |