Phoenix -修复表索引
- 索引的修复可以通过2种方式,(关于pehoenix的索引的生命周期可以参考 https://community.hortonworks.com/articles/58818/phoenix-index-lifecycle.html
- 一 手工执行修复命令
- 依赖phoenix的自动修复命令
- 自动修复
- Phoenix 对于索引状态异常的情况,按照设计会自动进行修复的,也就是autorebuild,不过发现在HDP2.2 下,不能正常修复,后台(regionserver)提示找不到schema

针对这个bug,社区已经反馈为HDP2.2的bug,在2.3版本已经修复.可以参考 https://community.hortonworks.com/questions/66446/phoenix-index-becom-unavaiable.html#comment-67349
- Phoenix 对于索引状态异常的情况,按照设计会自动进行修复的,也就是autorebuild,不过发现在HDP2.2 下,不能正常修复,后台(regionserver)提示找不到schema
- 手工修复
- 当数据量比较小的时候,正常的修复命令可以正常执行,但是由于数据量较大,出现了修复超时、修复错误等问题
- 当数据量较大的时候,采用修复命令的时候,比较曲折,由于各方面原因最终没有修复成功,
- 下面的一个场景为修复我们的一个数据库表原始数据800G,索引数据70个G左右,regionserver 是3台,8core 14g
- 修复流程如下
- 查看当前索引的状态
select TABLE_NAME,DATA_TABLE_NAME,INDEX_TYPE,INDEX_STATE,INDEX_DISABLE_TIMESTAMP from system.catalog where INDEX_TYPE is not null
;

验证sql 是否走索引 发现没有走
.修复索引
- ALTER INDEX IF EXISTS SysActionLog_idx ON "SysActionLog" REBUIL3
- 执行出现超时
Error: org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=36, exceptions: - Wed Nov 16 11:06:26 GMT 2016, null, java.net.SocketTimeoutException: callTimeout=60000, callDuration=73626: row '' on table 'SYSACTIONLOG_IDX' at region=SYSACTIONLOG_IDX,,1463835204579.ce4eb5993504052a305c8807d6234d93., hostname=workernode2.reddog.microsoft.com,16020,1479228656092, seqNum=1438608 (state=08000,code=101)
- 再次查询。
- 此时索引的状态已经 变为正在进行修复
修改phoenix 的执行超时(index.phoenix.querytimeout) ,后执行 再次 仍然出现错误6/11/16 11:40:40 WARN client.ScannerCallable: Ignore, probably already closed(region server 的日志对应的为超时)
- org.apache.hadoop.hbase.UnknownScannerException: org.apache.hadoop.hbase.UnknownScannerException: Name: 5, already closed?
- at org.apache.hadoop.hbase.regionserver.HRegionServer.scan(HRegionServer.java:3186)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:29994)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2080)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:108)
at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:114
at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:94)
at java.lang.Thread.run(Thread.java:74
5修改超时时间
针对上面的错误,分析regionserve的日志,发现是由于一些超时时间导致,在每个regionserver 的节点上增加如下参数
<property>
<name>hbase.client.scanner.timeout.period</name>
<value>9200000</value>
</property>
<property>
<name>hbase.rpc.timeout</name>
<value>9200000</value>
</property>
<property>
<name>hbase.regionserver.lease.period</name>
<value>9200000</value>
</property>
<property>
<name>phoenix.query.timeoutMs</name>
<value>9200000</value>
</property>
目前 怀疑 应该在HDInsight 节点下的phoenix 目录下的hbase-site.xml 增加上面的几个参数,但是原生的HDP下phoenix的目录下没有这个hbase-site.xml。 有时间进一步验证....
- 在Hdp 原生的集群执行时,也出现了超时,由于时微软的azure windows 平台上 不知HDP在window上是否有问题,同样的操作和参数配置 在测试的HDP liux集群出现了如下错误,需要进一步解决,(调整zk的时间)

- 未完 待续
Phoenix -修复表索引的更多相关文章
- mysql之repair table 修复表札记
REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name[,tbl_name] ... [QUICK] [EXTENDED] [USE_FRM] REP ...
- myisamchk命令修复表操作
myisamchk命令使用总结 myisamchk实用程序可以用来获得有关你的数据库表的统计信息或检查.修复.优化他们 1.常用于myisamchk的检查选项--information, -i打印所检 ...
- mysql 优化修复表
OPTIMIZE TABLE `table_name` 优化表 MyISAM 引擎清理碎片 OPTIMIZE语法: OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABL ...
- mysql下优化表和修复表命令使用说明(REPAIR TABLE和OPTIMIZE TABLE)
随着mysql的长期使用,可以修复表来优化,优化时减少磁盘占用空间.方便备份. REPAIR TABLE `table_name` 修复表 OPTIMIZE TABLE `table_name` 优化 ...
- mysql 修复表和优化表
REPAIR TABLE `table_name` 修复表 OPTIMIZE TABLE `table_name` 优化表
- mysql下优化表和修复表命令使用说明(REPAIR TABLE和OPTIMIZE TABLE)
REPAIR TABLE `table_name` 修复表 OPTIMIZE TABLE `table_name` 优化表 show create table tablename 表结构 REPA ...
- PostgreSQL查看表、表索引、视图、表结构
-- 表索引select * from pg_indexes where tablename='person_wechat_label';select * from pg_statio_all_ind ...
- 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
题目描述 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出. 输入描述: 先输入键值对的个数然后输入成对的index和value值 ...
- (转)Mysql技术内幕InnoDB存储引擎-表&索引算法和锁
表 原文:http://yingminxing.com/mysql%E6%8A%80%E6%9C%AF%E5%86%85%E5%B9%95innodb%E5%AD%98%E5%82%A8%E5%BC% ...
随机推荐
- LINUX各目录用处
目录 应放置档案内容 / 根目录 /bin 放置可执行文件 /usr/bin 用户可执行文件 /usr/local/bin 用户本地可执行文件 /boot 开机需用文件,文件下vmlinuz为kern ...
- gulp监听文件变化,并拷贝到指定目录
暂时不支持目录修改.创建.删除var gulp = require('gulp'); var fs = require('fs'); var path = require('path'); var l ...
- 彩票号码OC呈现
+(NSArray*)splitCode:(NSString*)code backzoneIndex:(NSInteger*)outIndex { /* 01 0102|0304 0102030405 ...
- win7系统.LNK类型文件打开方式的修复办法
1.首先 win+r 2.打开运行程序 3.输入: regedit 4.找到: 计算机\HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\currentvers ...
- EXTJS4.2中neptune主题的使用
原文地址:http://blog.csdn.net/xieguojun2013/article/details/8880519 最近在在sencha.com官网了解到EXTJS的最新版本里增加了新的主 ...
- bash获取properties文件资源
#!/bin/sh prop_value="" function getProperty() { file=$ prop_key=$ prop_value=`cat $file | ...
- bzoj2441 小W的问题
bzoj2441 按照纵坐标排序,从小到大插入数列中,每个点i维护一个data[i]表示未插入序列中横坐标小于i的数的个数(用线段树)其实点i就是“W”中第一个极小点,那么f[j]就等于1到j-1中所 ...
- 打算从oschina的博客搬运到cnblog了
如题,感觉cnblog似乎要更加专业一点,顺便也禁水.提高下文章质量 以后就都是干货了 oschina原址 顺便庆祝一下Windows Live Writer配置成功
- [BZOJ 3123]森林
这题和 COT1 一定有 JQ 喵~ 线段树的启发式合并,每次要连接两个点时就对比较小的那棵树暴力 DFS 一边 然后均摊时间依旧是 logn 的,均摊真是世界上最邪恶的东西了…… 然后这题的数据是要 ...
- NewQuant的设计(一)——整体的领域设计
NewQuant的设计思路——整体的领域分析 “领域驱动设计(DDD)”是著名软件工程建模专家Eric Evans提出的一个重要概念,是“面向对象分析设计(OOAD)”的深化.当业务逻辑变得复杂,系统 ...