ashiny 发表于 2015-4-23 17:53 个人认为楼主可能玩错了 对于监听的含义没有没有搞清楚。 对于一个程序来讲,你只要顺序执行就可以了。 比如创建完文件夹之后,我接着完成什么事情。这个不需要监听的。 那么什么需要监听。比如像你说的监听文件夹。 这个跟hbase没有关系,而是你对Linux操作系统文件夹的监控。 所以在思路上就是存在问题的。 |
ashiny 发表于 2015-4-23 17:15 描述还是不清楚,加的哪个函数,为什么想加这个函数,加了这个函数是否适合分布式,监听,主要的监听的是什么 楼主先把这些问题搞清楚 |
yuwenge 发表于 2015-4-23 16:54 添加的JNotify的jar包和文件夹监听程序都测试过是可以正常使用的,但是在listener类里面加上这个函数就报错。。。把listener类也贴进来吧: public class MonitorUpload { public static void main(String[] args) { String monitedPath = "F:/nextstep"; int mask = JNotify.FILE_CREATED | JNotify.FILE_DELETED | JNotify.FILE_MODIFIED | JNotify.FILE_RENAMED; // 是否监视子目录 boolean watchSubtree = true; try { int watchID = JNotify.addWatch(monitedPath, mask, watchSubtree, new Listener()); Thread.sleep(1000000); boolean res = JNotify.removeWatch(watchID); if (!res) { // invalid } } catch (Exception e) { e.printStackTrace(); } } public static class Listener implements JNotifyListener { public void fileRenamed(int wd, String rootPath, String oldName, String newName) { print("renamed " + rootPath + " : " + oldName + " -> " + newName); } public void fileModified(int wd, String rootPath, String name) { print("modified " + rootPath + " : " + name); } public void fileDeleted(int wd, String rootPath, String name) { print("deleted " + rootPath + " : " + name); } public void fileCreated(int wd, String rootPath, String name) { print("created " + rootPath + " : " + name); try{ String newtable = String.valueOf(System.currentTimeMillis()); create(newtable,"cf"); insert(newtable,name); }catch (Exception e) { e.printStackTrace(); } } 因为做毕设才接触的hadoop、hbase什么的,现在还是新手,遇到问题感觉完全无从下手,感谢啦!~~~ |
ashiny 发表于 2015-4-23 16:43 条用了其他类,记得让开发环境和集群环境保持一致。 自己添加的第三方类,或则jar包,确保都能够引用到。 |
yuwenge 发表于 2015-4-23 16:14 已经参照这两篇改了一下,不过还是一样的报错,而且代码单独运行是可以的,在main函数里直接调用也是可以的,但是我这里用了一个JNotify的Listener类,再调用时就出问题了。 而且我单步调试了一下,貌似问题出现在admin = new HBaseAdmin(cnf);这一句,执行完这一句就直接转到catch (IOException e) {e.printStackTrace();}了。 不知道您知不知道这是什么问题?谢啦~~ |
楼主的代码有些小问题 参考这两篇吧 hbase开发环境搭建及运行hbase小实例(HBase 0.98.3新api) hbase编程:Eclipse远程连接创建hbase表以及填充列与列数据 |