hbase 自定义过滤器问题

Liang4 2017-10-31 11:09:46
hbase自带的原有过滤器,调用都没问题
但是自己写的过滤器却始终报错,显示找不到类
CLASSPATH已经设置,指向 hbase/lib 文件夹下, 自定义过滤器也打包jar 拷贝到每台服务端 hbase/lib文件夹下
hbase也重新启动。
请问谁知道怎么回事?
报错日志:
Exception in thread "main" java.lang.NoClassDefFoundError: hadoop/FlowFilter
at hadoop.shellcom.filterHbase(shellcom.java:471)
at hadoop.shellcom.main(shellcom.java:511)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:197)
Caused by: java.lang.ClassNotFoundException: hadoop.FlowFilter
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)

自定义过滤器代码:(拷贝的RowFilter源码)
package hadoop;

import org.apache.hadoop.hbase.filter.*;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.Scan;

import java.util.List;

public class FlowFilter extends CompareFilter {

private boolean filterOutRow = false;

/**
* Writable constructor, do not use.
*/
public FlowFilter() {
super();
}

/**
* Constructor.
* @param rowCompareOp the compare op for row matching
* @param rowComparator the comparator for row matching
*/
public FlowFilter(final CompareOp rowCompareOp,
final WritableByteArrayComparable rowComparator) {
super(rowCompareOp, rowComparator);
}

@Override
public void reset() {
this.filterOutRow = false;
}

@Override
public ReturnCode filterKeyValue(KeyValue v) {
if(this.filterOutRow) {
return ReturnCode.NEXT_ROW;
}
return ReturnCode.INCLUDE;
}

@Override
public boolean filterRowKey(byte[] data, int offset, int length) {
if(doCompare(this.compareOp, this.comparator, data, offset, length)) {
this.filterOutRow = true;
}
return this.filterOutRow;
}

@Override
public boolean filterRow() {
return this.filterOutRow;
}
}
...全文
363 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Liang4 2017-10-31
  • 打赏
  • 举报
回复
求各位大神帮忙呀
当数据量达到TB或PB级的时候,传统关系型数据型已力不从心。在大数据热潮中,推出了NoSQL数据库,这种天生就为分布式存储而设计的技术,尤其以Apache HBase为代表,占领海量数据存储技术的大半壁江山。本教视从实战角度出来,向学员们手把手掌握HBase使用精髓,让学员达到如下目标: 1. 了解分布式存储的原理及架构。 2. 掌握如何使用HBase实现海量数据存储与检索。 3. 掌握HBase在开发中常见的技术大坑与调优技术。 课时1:HBase简介与部署 课时2:HBase架构与索引算法剖析 课时3:HBase建库建表与CRUD实战 课时4:基于HBase Client API的CRUD实战 课时5:批处理与扫描器实战 课时6:使用Ganglia监控HBase 课时7:过滤器实战之比较过滤器 课时8:过滤器实战之专用过滤器与FilterList 课时9:过滤器实战之自定义过滤器 课时10:Observer协处理器实战之Master级别原理剖析 课时11:Observer协处理器实战之Region级别原理剖析 课时12:Observer协处理器实战之表复制应用实战 课时13:Endpoint协处理器实战之原理剖析 课时14:Endpoint协处理器实战之数据统计应用实战 课时15:使用API管理HBase之核心理论 课时16:使用API管理HBase之编程实战 课时17:使用API管理HBase之编程实战(续) 课时18:搭建分布式HBase集群之Hadoop部署 课时19:搭建分布式HBase集群之HBase部署 课时20:sqoop2部署 课时21:使用sqoop2将mysql数据导入到HBase 课时22:集群管理之节点管理与数据任务 课时23:Rowkey设计与集群常见故障处理 课时24:集群调优经验分享 课时25:项目介绍与Solr环境搭建 课时26:数据层设计与中文分词器配置 课时27:Spring集成HBase之核心操作 课时28:Spring集成HBase之核心操作(续) 课时29:基于dom4j进行数据文件解析 课时30:数据层设计与实现之二级索引开发 课时31:数据层设计与实现之二级索引开发(续) 课时32:Spring集成Solrj之入门操作 课时33:Spring集成Solrj之高级操作 课时34:高亮查询功能开发之一 课时35:高亮查询功能开发之二 课时36:课程总结

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧