HBase基础与高可用设置详解
"HBase基础文档主要介绍了HBase在Hadoop高可用环境下的配置以及HBase的基本操作和编程访问方式。" HBase是Apache Hadoop生态系统中的一个分布式、面向列的NoSQL数据库,它构建在HDFS之上,提供了高度可扩展性和高性能的数据存储解决方案。HBase的设计目标是为了处理大规模数据集,通常在PB级别,并且支持实时读写操作。 在Hadoop高可用性(HA)环境中,HBase的高可用性主要体现在HMaster和HRegionServer上。HMaster负责集群的元数据管理、Region分配、故障检测和恢复等任务,而HRegionServer则是实际存储数据的地方。为了实现HA,可以启动多个HMaster实例,其中一个是活动的,其他的处于备用状态。当主HMaster失效时,ZooKeeper会监控并选举新的主HMaster。在ZooKeeper的/hbase/backup-master路径下,可以配置备用HMaster的列表。 HBase的启动脚本包括`start-hbase.sh`,这个脚本会启动HBase集群。要启动HMaster,可以使用`hbase-daemon.sh start master`,启动HRegionServer则使用`hbase-daemons.sh start regionserver`。 HBase的高可用性设置涉及ZooKeeper,ZooKeeper在故障转移和集群协调中起着关键作用。在ZooKeeper的节点下,如/hbase/backup-master,可以设置命令分组来管理备用HMaster。 HBase的数据模型基于键值对(key-value),并且不支持SQL,而是使用一种称为Nosql(Not only SQL)的非关系型数据模型。在HBase中,数据被组织成行(Row)、列族(Column Family)和列(Column Qualifier)。每个单元格(Cell)都有一个时间戳,可以存储多版本的数据。 HBase Shell是与HBase交互的命令行工具。用户可以通过以下命令进行操作: 1. `hbaseshell` 登录Shell终端。 2. `help` 查看所有命令帮助。 3. `help 'list_namespace'` 查看特定命令的帮助,如列出名字空间的命令。 4. `list_namespace` 列出所有名字空间(类似MySQL的库概念)。 5. `create_namespace 'ns1'` 创建名字空间。 6. `create 'ns1:t1', 'f1'` 在指定名字空间下创建表。 7. `put 'ns1:t1', 'row1', 'f1:id', 100` 插入数据。 8. `put 'ns1:t1', 'row1', 'f1:name', 'tom'` 插入其他列的数据。 9. `get 'ns1:t1', 'row1'` 查询指定行的数据。 10. `scan 'ns1:t1'` 扫描表,获取所有数据。 对于编程访问HBase,可以通过Java API或者其他语言的客户端库(如Python或Scala)。在创建HBase模块时,需要在Maven或Gradle的配置文件中添加HBase的相关依赖,然后可以编写代码来执行增删查改等操作。 HBase是一个强大的大数据存储系统,尤其适用于需要快速随机访问大量结构化数据的应用场景。了解和掌握HBase的基础知识和操作,对于大数据处理和分析至关重要。
----------
RM HA
----------
hbase
----------
hmaster
hregionserver
start-hbase.sh
----------------
hbase-daemon.sh start master
hbase-daemons.sh start regionserver
hbase的ha设置
----------------
启动多个master即可。
zk节点下:/hbase/backup-master
命令分组
-----------
[general]
version whoami
[ddl]
insert into
nosql : Not only SQL.
key-value
put
hbase shell操作
------------------
$>hbase shell //登录shell终端.
$hbase>help //
$hbase>help 'list_namespace' //查看特定的命令帮助
$hbase>list_namespace //列出名字空间(数据库)
$hbase>list_namespace_tables 'defalut' //列出名字空间(数据库)
$hbase>create_namespace 'ns1' //创建名字空间
$hbase>help 'create'
$hbase>create 'ns1:t1','f1' //创建表,指定空间下
$hbase>put 'ns1:t1','row1','f1:id',100 //插入数据
$hbase>put 'ns1:t1','row1','f1:name','tom' //
$hbase>get 'ns1:t1','row1' //查询指定row
$hbase>scan 'ns1:t1' //扫描表
通过编程API访问Hbase
-----------------------
1.创建hbase模块
剩余8页未读,继续阅读
- 粉丝: 0
- 资源: 14
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展