您现在的位置是:首页 > Javascript
当前栏目
Phoenix表重建流程
2023-04-18 14:26:17 时间
问题需求:
hbase表,通过phoeix建表映射,创建phoenix表时,使用的主键字段为rowkey。所以查询时不能使用rowkey字段。
解决方法:
phoenix表需要重建,主键字段名称换成rowid就可以了。
但是由于在phoenix中是建立的表映射,不是视图映射,所以删除phoenix表的时候,会自动将hbase中的表删除掉。因此,需要停止写程序操作,完整步骤如下:
1. Hbase操作
(1)停止写表服务,flush缓存到磁盘中。
flush 'DB:T_TEST'
(2)在hbase中创建原表快照
snapshot 'DB:T_TEST','SNAP_T_TEST'
(3) 通过快照创建测试表
clone_snapshot 'SNAP_T_TEST','DB:T_TEST_NEW'
还有一种可以测试:
(3.1) 基于快照恢复原表(未测试)
restore_snapshot 'SNAP_T_TEST'
2. Phoenix操作
创建DB.T_TEST_NEW到hbase的映射表。
注意:建表语句最后一定要加column_encoded_bytes=0,否则会查询不到已有的数据。
create table DB.T_TEST_NEW (
"rowid" varchar primary key,
"info"."name" varchar,
"info"."age" varchar
)column_encoded_bytes=0;
3. 新表数据检查
select * from DB.T_TEST_NEW
以上2.(3)开始是做的测试。
也可以直接在2.(2)之后开始,直接删除旧的phoenix表。
然后再重复2.(3)之后的操作即可。
4.其他操作(仅做记录):
(1)将快照数据迁移到另一个集群的机器上:
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot 'table_snapshot' -copy-to file:/home/hadoop/king/bakdata/ -mappers 16
(2)将快照数据迁移到另一个集群的hdfs上
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot 'table_snapshot' -copy-to hdfs:///hbase/bakdata/mytable_snapshot -mappers 16
相关文章
- 前端面试 【JavaScript】— typeof 是否能正确判断类型?
- 前端面试 【JavaScript】— instanceof 能否判断基本数据类型?
- 前端面试 【JavaScript】— 能不能手动实现一下 instanceof 的功能?
- 前端面试 【JavaScript】— Object.is和=== 有什么区别?
- 前端面试 【JavaScript】— JS中类型转换有哪几种?
- 前端面试 【JavaScript】— == 和 ===有什么区别?
- 前端面试 【JavaScript】— 对象转原始类型是根据什么流程运行的?
- JavaScript 的 parseInt() 函数
- javascript实现两个数字进行组合
- JS监听键盘按键
- 大前端开发中的路由管理之五:Flutter篇
- Javascript的DOM操作
- 在Vue项目中使用WebSocket技术
- 新手向:前端程序员必学基本技能——调试JS代码
- React 毁了 Web 开发!
- 「JS 逆向百例」cnki 学术翻译 AES 加密分析
- 商标注册域名后缀用什么?商标和域名有哪些区别?
- 网站建设流程是怎样的?需要看重哪些细节?
- 网站域名商标注册流程是什么?网站域名商标有什么用?
- 如何建设一个实用性强的网站 网站上线后如何运营