Tag: nosql

Couchbase Bucket身份validation错误

使用Couchbase 5.0及其Java客户端2.0.3,我有以下错误。 只需按照这些说明打开一个桶: https://developer.couchbase.com/documentation/server/current/sdk/java/managing-connections.html 如上所述,使用基本的本地配置,只需两行代码: Cluster cluster = CouchbaseCluster.create(); Bucket bucket = cluster.openBucket(“hero”); 这应该打开localhost集群(实际上是这样),然后打开一个名为“hero”的存储桶,它实际存在于我的Couchbase服务器中。 不过,我一直收到以下错误: 2017-11-08 00:40:25.546 ERROR 1077 — [nio-8080-exec-1] oaccC[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.couchbase.client.java.error.InvalidPasswordException: Passwords for bucket “hero” do not match.] with root cause com.couchbase.client.java.error.InvalidPasswordException: Passwords for bucket […]

如何避免Hbase put操作中的InterruptedIOException

在使用HTable.put方法将数据放入Hbase ,我偶尔会HTable.put以下exception。 但是当我检查该特定rowkey的get操作时,数据实际上已写入rowkey 。 同时我搜索了HMaster和HRegionservers的日志来识别问题。 但无法找到。 请帮助微调Hbase配置以避免InterruptedIOException。 Hadoop Distribution: Apache Version: HBase 1.2.6 Cluster size: 12nodes java.io.InterruptedIOException: #17209, interrupted. currentNumberOfTask=1 at org.apache.hadoop.hbase.client.AsyncProcess.waitForMaximumCurrentTasks(AsyncProcess.java:1764) at org.apache.hadoop.hbase.client.AsyncProcess.waitForMaximumCurrentTasks(AsyncProcess.java:1734) at org.apache.hadoop.hbase.client.AsyncProcess.waitForAllPreviousOpsAndReset(AsyncProcess.java:1810) at org.apache.hadoop.hbase.client.BufferedMutatorImpl.backgroundFlushCommits(BufferedMutatorImpl.java:240) at org.apache.hadoop.hbase.client.BufferedMutatorImpl.flush(BufferedMutatorImpl.java:190) at org.apache.hadoop.hbase.client.HTable.flushCommits(HTable.java:1434) at org.apache.hadoop.hbase.client.HTable.put(HTable.java:1018) 请帮忙解决 某人遇到了同样的例外。 但是在该线程中,没有解释为了避免它需要检查哪些配置 https://groups.google.com/forum/#!topic/nosql-databases/UxfrmWl_ZnM

提高Cassandra和Java集合的性能

我们在项目中使用NoSQL(Cassandra)。 我们有一个表A(5000条记录),这是一个主表。 我们有另一张表B(2000条记录)。 表B有4列,表A有25列。 我们公开了一个REST服务来获取B的所有记录; 喜欢/ service / getB。 此服务将返回6列作为响应 – { “result”: [ { “col1FromB”: “1B”, “col2FromB”: “2B”, “col3FromB”: “3B”, “col4FromB”: “4B”, “col1FromA”: “1A”, “col2FromA”: “2A” }, { “col1FromB”: “11B”, “col2FromB”: “12B”, “col3FromB”: “13B”, “col4FromB”: “14B”, “col1FromA”: “11A”, “col2FromA”: “12A” } ] } 因此,对于表B中的每个项目,都会查询表A.这就是我这样做的方式 – //Get all from Table B (took 90 ms in […]

只有日期范围扫描Cassandra CQL时间戳

我有一张如下表所示的表格。 CREATE TEST( HOURLYTIME TIMESTAMP, FULLTIME TIMESTAMP, DATA TEXT, PRIMARY KEY(HOURLYTIME,FULLTIME) ) 我插入了记录(2014-12-12 00:00:00,2014-12-12 00:00:01,’Hello World’) 我想根据HOURLYTIME字段中的日期时间范围进行搜索,该字段包含每小时记录。当我尝试使用token()时 select * from TEST where token(HOURLYTIME)=token(‘2014-12-12’) 获取该日期的所有记录,它只返回一小时的记录,即 2014-12-12 **00:00:00** 如果我添加日期范围 select * from TEST where token(HOURLYTIME)>=token(‘2014-12-12’) AND token(HOURLYTIME)<=token('2014-12-14'); 它给出了错误: 找到了一个以上的起始限制限制 。 如何解决此问题。 我能够使用FULLTIME扫描,但我需要提供ALLOW FILTERING,它将扫描整个记录并且效率低下。

HBase:primefaces’检查行不存在并创建’操作

我建议这应该是常见的情况之一,但可能在谷歌搜索时使用错误的关键字。 我只需要用完全随机的密钥创建新的表记录。 假设我获得了具有良好随机性的密钥(几乎是随机的)。 但是,我不能100%确定没有行存在。 所以我需要primefaces地做什么: 有行键检查还没有行。 如果行存在则拒绝操作。 如果没有退出,请创建行。 我在这个主题上找到的最有用的信息是关于HBase行锁的文章。 我认为HBase行锁是合适的解决方案,但我想在没有显式行锁定的情况下更好地做到这一点。 ICV看起来不合适,因为我确实希望密钥是随机的。 如果他们可以在“行不存在”条件下工作,那么CAS会很棒,但看起来他们不能。 显式行锁具有区域拆分问题等缺点。 有人可以加入有用的建议吗? 优选的API是基于Java的,但实际上它更多的是概念而不是实现。

使用Cassandra的Java最好的api /库是什么?

我正在寻找具有以下要求的API 它使用简单,简洁。 它并不臃肿。 使用Spring的做事方式,或者至少很容易使它与Spring一起使用 有一个Maven存储库,最好它已经存在于主存储库中 经过生产测试,意味着有相当多的人在生产应用中使用它。 帮帮我? 谢谢!

更新(递增)MongoDB中子文档中的值

如果我有一个包含文档和子文档的MongoDB集合,如图所示: 并且,如果我想在每次调用方法时将“损坏”增加1: private final static void incrementCount(String docID, String subDocID) { BasicDBObject query = new BasicDBObject(); query.put(“_id”, docID); query.put(“items.id”, subDocID); BasicDBObject incValue = new BasicDBObject(“damage”, 1); // or “items.damage” ??? BasicDBObject intModifier = new BasicDBObject(“$inc”, incValue); badgesCollection.update(query, intModifier, false, false, WriteConcern.SAFE); } 问题:我是指“损坏”还是“items.damage”?

Redis / Jedis没有单点故障和自动故障转移

在一个简单的情况下,有3个服务器,1个主服务器和2个从服务器,没有分片。 是否有经过validation的解决方案,java和Jedis没有单点故障,并且会自动处理单个服务器,即主服务器或从服务器(自动故障转移)。 例如,在没有任何数据丢失的情况下促进主人和重置。 在我看来,它应该是一个已解决的问题,但我找不到任何代码,只是对可能的方法进行高级描述。 实际上是谁覆盖并在生产中工作?

寻找一个轻量级的java兼容的内存键值存储

Berkeley DB可能是最好的选择,但由于许可问题我无法使用它。 还有其他选择吗?

Lucene作为数据存储

是否可以将Lucene用作完整的数据存储(就像其他(mongo,couch)nosql变体一样)。 我知道有一些限制,比如一个索引器的新更新文档不会在其他索引器中显示。 所以我们需要重新启动索引器才能获得更新。 但我最近偶然发现了solr ,似乎某些快照复制可以避免这些问题。 所以我认为我可以使用lucene作为数据存储,因为它还使用mongo和couch内部用于管理文档的相同类型的文档(基于JSON),并且其经过validation的索引算法可以超快速地获取记录。 但我很好奇有没有人尝过这个…? 如果没有选择这种方法的原因是什么。