针对如何在HBase上将自定义比较器与SingleColumnValueFilter一起使用?和hbase对比这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展DelphiFireDAC出现V
针对如何在HBase上将自定义比较器与SingleColumnValueFilter一起使用?和hbase对比这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展Delphi FireDAC 出现Variable length column[*] overflow. Value length - [80], column maximum length、extjs4 grid column filter 对于多层表头,不能给当前有 filter 的 column 增加 css 的解决办法、Flink SQL validation failed. From line 1, column 89 to line 1, column 111: List of column aliases、Flutter Web - 如何在 SingleChildScrollView -> Column 中使用 TabBarView?等相关知识,希望可以帮助到你。
本文目录一览:- 如何在HBase上将自定义比较器与SingleColumnValueFilter一起使用?(hbase对比)
- Delphi FireDAC 出现Variable length column[*] overflow. Value length - [80], column maximum length
- extjs4 grid column filter 对于多层表头,不能给当前有 filter 的 column 增加 css 的解决办法
- Flink SQL validation failed. From line 1, column 89 to line 1, column 111: List of column aliases
- Flutter Web - 如何在 SingleChildScrollView -> Column 中使用 TabBarView?
如何在HBase上将自定义比较器与SingleColumnValueFilter一起使用?(hbase对比)
我正在尝试使用两个SingleColumnValueFilter对象从HBase表中过滤行,以带回属于该列的长值范围内的所有记录。根据SingleColumnValueFilter的文档,除非您将其传递给自己的比较器,否则它将对列值进行字典比较。该API显示了SingleColumnValueFilter,其中采用WritableByteArrayComparable作为实现此目的的方法。
我编写了一个类,扩展了WritableByteArrayComparable并覆盖了compare方法。
public class LongWritableComparable extends WritableByteArrayComparable { public LongWritableComparable() { super(); } public LongWritableComparable(byte[] value) { super(value); } public LongWritableComparable(Long value) { super(Bytes.toBytes(value)); } @Override public int compareTo(byte[] otherValue) { byte[] thisValue = this.getValue(); long thisLong = Bytes.toLong(thisValue); long otherLong = Bytes.toLong(otherValue); if (thisLong == otherLong) { return 0; } if (thisLong < otherLong) { return -1; } return 1; }}
我正在使用以下方法设置过滤器:
SingleColumnValueFilter lowerBoundAddressResourceFilter = new SingleColumnValueFilter( graphTable.getResource().getName(), Bytes.toBytes(HBaseProperties.getInstance().getQualifierIpAdressLongRepresentation()), CompareFilter.CompareOp.GREATER_OR_EQUAL, new LongWritableComparable(lowerRangeValue));
但看到以下异常:
2010-08-25 14:24:10,034 ERROR org.apache.hadoop.hbase.regionserver.HRegionServer:org.apache.hadoop.hbase.UnknownScannerException: Name: -1 at org.apache.hadoop.hbase.regionserver.HRegionServer.next(HRegionServer.java:1880) at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:657) at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:915)2010-08-25 14:24:10,052 INFO org.apache.hadoop.ipc.HBaseServer: IPC Server handler 0 on 60020, call next(-1, 1000) from 172.16.32.215:53206: error: org.apache.hadoop.hbase.UnknownScannerException: Name: -1org.apache.hadoop.hbase.UnknownScannerException: Name: -1 at org.apache.hadoop.hbase.regionserver.HRegionServer.next(HRegionServer.java:1880) at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:657) at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:915)
在Web上查看导致此执行的原因的共识是,访问resultScanner.next()的代码花费的时间太长,导致对regionServer的租约超时,但是此异常在
ResultScanner resultScanner = table.getScanner(scan);
返回带有可迭代通过的ResultScanner。
有谁知道或知道将自定义比较器与SingleColumnValueFilter一起使用的示例,或者是否对我做错了有任何了解?
答案1
小编典典似乎具有您的自定义比较器的jar需要放置在您要查询的表所在的区域服务器上,该服务器位于$ HBASE_HOME /
lib文件夹中。放置jar之后,重新启动集群,查询应该可以工作。
Delphi FireDAC 出现Variable length column[*] overflow. Value length - [80], column maximum length
总结
以上是小编为你收集整理的Delphi FireDAC 出现Variable length column[*] overflow. Value length - [80], column maximum length全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
extjs4 grid column filter 对于多层表头,不能给当前有 filter 的 column 增加 css 的解决办法
/**
* Update the styles for the header row based on the active filters
*/
updateColumnHeadings : function() {
var me = this, headerCt = me.view.headerCt;
if (headerCt) {
headerCt.items.each(function(header) {
var filter = me.getFilter(header.dataIndex);
header[filter && filter.active ? ''addCls'' : ''removeCls''](me.filterCls);
if (header.items && header.items[''each''] ) {
header.items.each(function(header) {
var filter = me.getFilter(header.dataIndex);
header[filter && filter.active ? ''addCls'' : ''removeCls''](me.filterCls);
})
}
});
}
},
extjs4.2 grid 中的 字段增加 filter ,会给当前有选中的列,加一个 css , 表示该字段有筛选值,但是对于多层表头,这个就失败了,他没有考虑到这个情况,
修改一下,Ext.ux.grid.FiltersFeature.js 这个文件,将函数改一下,判断是否有多层表头,然后进行增加 css , 这个只做了二层表头的,三层以上的不予考虑
Flink SQL validation failed. From line 1, column 89 to line 1, column 111: List of column aliases
SQL validation failed. From line 1, column 89 to line 1, column 111: List of column aliases must have same degree as table; table has 1 columns ('f0'), whereas alias list has 3 columns
at org.apache.flink.table.planner.calcite.FlinkPlannerImpl.validate(FlinkPlannerImpl.scala:125)
解决方法: