群启后查看服务进程,发现多了一个master进程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EteyEUXe-1665312413397)(image-20221009125044450.png)]
打开页面测试另一台master显示其为备用的Master,主master还是ckserver1也即是hadoop1 , 查看http://hadoop2:16010
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IePncDF4-1665312413398)(image-20221009125144397.png)]
手动kill -9 杀死ckserver1也即是hadoop1上的HMaster进程,再次查看http://hadoop2:16010,发现主master已经成功的切换为ckserver2也即是hadoop2
![大数据技术之HBase原理与实战归纳分享-上](http://img.zhejianglong.com/231018/05494V3L-5.png)
文章插图
然后再单独启动ckserver1也即是hadoop1上的HMaster , 执行bin/hbase-daemon.sh start master , 这时访问http://hadoop1:16010,发现hadoop1为备用master 。
![大数据技术之HBase原理与实战归纳分享-上](http://img.zhejianglong.com/231018/05494R526-6.png)
文章插图
Shell操作基础操作# 进入 HBase 客户端命令行hbase shell# 查看帮助命令够展示 HBase 中所有能使用的命令,主要使用的命令有 namespace 命令空间相关 , DDL 创建修改表格,DML 写入读取数据 。help命令空间# 使用特定的 help 语法能够查看命令如何使用 。help 'create_namespace'# 创建命名空间 testcreate_namespace 'test'# 查看所有的命名空间list_namespace
![大数据技术之HBase原理与实战归纳分享-上](http://img.zhejianglong.com/231018/05494VB5-7.png)
文章插图
DDL# 创建表,在test命名空间中创建表格 student,两个列族 。info 列族数据维护的版本数为 5 个, 如果不写默认版本数为 1 。create 'test:student', {NAME => 'info', VERSIONS => 5}, {NAME => 'msg'}# 如果创建表格只有一个列族 , 没有列族属性,可以简写 。如果不写命名空间 , 使用默认的命名空间 default 。create 'student1','info'# 查看表查看表有两个命令:list 和 describe,list:查看所有的表名,describe:查看一个表的详情listdescribe 'student1'
![大数据技术之HBase原理与实战归纳分享-上](http://img.zhejianglong.com/231018/05494V325-8.png)
文章插图
# 修改表表名创建时写的所有和列族相关的信息,都可以后续通过 alter 修改 , 包括增加删除列族 。增加列族和修改信息都使用覆盖的方法alter 'student1', {NAME => 'f1', VERSIONS => 3} # 删除信息使用特殊的语法alter 'student1', NAME => 'f1', METHOD => 'delete' hbase:016:0> alter 'student1', 'delete' => 'f1'# shell 中删除表格,需要先将表格状态设置为不可用 。disable 'student1' drop 'student1'DML# 写入数据在 HBase 中如果想要写入数据,只能添加结构中最底层的 cell 。可以手动写入时间戳指 定 cell 的版本 , 推荐不写默认使用当前的系统时间,如果重复写入相同 rowKey , 相同列的数据,会写入多个版本进行覆盖 。put 'test:student','1001','info:name','zhangsan' put 'test:student','1001','info:name','lisi' put 'test:student','1001','info:age','18' #读取数据,读取数据的方法有两个:get 和 scan 。get最大范围是一行数据,也可以进行列的过滤,读取数据的结果为多行 cell 。get 'test:student','1001' get 'test:student','1001' , {COLUMN => 'info:name'} # 也可以修改读取 cell 的版本数,默认读取一个 。最多能够读取当前列族设置的维护版本数 。get 'test:student','1001' , {COLUMN => 'info:name', VERSIONS => 6} # scan 是扫描数据,能够读取多行数据,不建议扫描过多的数据,推荐使用 startRow 和 stopRow 来控制读取的数据,默认范围左闭右开 。scan 'test:student',{STARTROW => '1001',STOPROW => '1002'} # 删除数据,删除数据的方法有两个:delete 和 deleteall;delete 表示删除一个版本的数据,即为 1 个 cell,不填写版本默认删除最新的一个版本 。delete 'test:student','1001','info:name'deleteall 'test:student','1001','info:name'
推荐阅读
- 真我GT Neo2和大师探索版哪个好_怎么选择
- 这些不知道,别说你熟悉 Spring
- 07 ClickHouseClickHouse数据库引擎解析
- Java核心技术阅读笔记 java中的自动拆装箱与缓存
- 一文讲清楚 JVM Safe Point
- 使用EF Core更新与修改生产数据库
- Jupyter,Matplotlib,Pandas 【机器学习】利用 Python 进行数据分析的环境配置 Windows
- 咸鱼之王大乱斗怎么玩
- 原神大未来星地点位置在哪
- levis、lee、wrangler 世界三大牛仔品牌,李维斯是牛仔裤鼻祖