标签: datastax-enterprise

Datastax - PreparedStatement线程安全吗?

com.datastax.driver.core.PreparedStatement实例应该是应用程序中的单例吗?

如果是这样,如果连接丢失会发生什么?PreparedStatement是否无效并且必须采取手动操作来"重新制定"?

PreparedStatement用法的一个简单例子(除了准备+在同一方法中执行)将是辉煌的!

prepared-statement cassandra datastax-enterprise datastax-java-driver

7
推荐指数
1
解决办法
2283
查看次数

解决org.glassfish.deployment.common.DeploymentException:CDI部署失败 - Cassandra Datastax Java Driver,Maven,Glassfish 4

我只是将这个作为解决方案发布给那些在Glassfish 4上通过Maven部署使用Datastax的Java驱动程序时遇到错误的人.

正如在Datastax的网站上写的那样,驱动程序的依赖性是:

<dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>cassandra-driver-core</artifactId>
    <version>1.0.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

不幸的是,如果你通过Maven将它部署到Glassfish 4,它会抛出org.glassfish.deployment.common.DeploymentException:CDI部署失败......就像下面这样:

org.glassfish.deployment.common.DeploymentException: CDI deployment failure:WELD-001408 Unsatisfied dependencies for type [Set<Service>] with qualifiers [@Default] at injection point [[BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject com.google.common.util.concurrent.ServiceManager(Set<Service>)]
at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:225)
at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:328)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:493)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:527)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:356)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:522)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1423)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534)
at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224)
at org.glassfish.grizzly.http.server.StaticHttpHandler.service(StaticHttpHandler.java:297)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:246)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
at …
Run Code Online (Sandbox Code Playgroud)

cassandra maven datastax-enterprise glassfish-4 datastax-java-driver

7
推荐指数
0
解决办法
6407
查看次数

使用Amazon Elastic IP的Cassandra Datastax Enterprise

我想在Amazon EC2实例上运行Cassandra Datastax Enterprise,而不是使用节点专用IP地址,而是使用弹性公共IP

我目前的配置如下:

/etc/dse/cassandra/cassandra.yaml

seed_provider:
  - class_name: org.apache.cassandra.locator.SimpleSeedProvider
    parameters:
        seeds: "publicIP"

listen_address:  "publicIP"
endpoint_snitch:Ec2Snitch
rpc_address: "publicIP"
Run Code Online (Sandbox Code Playgroud)

"dse"服务无法正常启动.

/var/log/cassandra/system.log显示以下错误:

org.apache.cassandra.exceptions.ConfigurationException: Unable to bind to address /<publicIP>:7000. Set listen_address in cassandra.yaml to an interface you can bind to, e.g., your private IP address on EC2

我还尝试将broadcast_address更改为指向公共IP地址,但它不起作用.

有没有办法以某种方式运行dse服务(Cassandra),它使用弹性IP地址而不是EC2盒的私有IP?

amazon-web-services cassandra datastax-enterprise datastax

7
推荐指数
2
解决办法
3935
查看次数

Cassandra:Long Par New GC在将新节点引导到群集时暂停

我已经看到在将新节点引导到Datastax Enterprise Cassandra集群时经常发生的问题(版本:2.0.10.71)

启动要引导的新节点时,引导过程开始从群集中的其他节点流式传输数据.在短时间内(通常为一分钟或更短时间) - 群集中的其他节点显示高Par New GC暂停时间,然后节点从群集中退出,导致流会话失败.

INFO [main] 2015-04-27 16:59:58,644 StreamResultFuture.java(第91行)[Stream#d42dfef0-ecfe-11e4-8099-5be75b0950b8]使用/10.1.214.186开始流会话

INFO [GossipTasks:1] 2015-04-27 17:01:06,342 Gossiper.java(第890行)InetAddress /10.1.214.186现在已关闭

INFO [HANDSHAKE-/10.1.214.186] 2015-04-27 17:01:21,400 OutboundTcpConnection.java(第386行)握手版本/10.1.214.186

INFO [RequestResponseStage:11] 2015-04-27 17:01:23,439 Gossiper.java(第876行)InetAddress /10.1.214.186现已启动

然后在另一个节点上:

10.1.214.186错误[STREAM-IN-/10.1.212.233] 2015-04-27 17:02:07,007 StreamSession.java(第454行)[Stream#d42dfef0-ecfe-11e4-8099-5be75b0950b8]发生流错误

还可以查看日志中的内容:

10.1.219.232 INFO [ScheduledTasks:1] 2015-04-27 18:20:19,987 GCInspector.java(第116行)用于ParNew的GC:2个集合118272 ms,使用980357368; 最大值是12801015808

10.1.221.146 INFO [ScheduledTasks:1] 2015-04-27 18:20:29,468 GCInspector.java(第116行)用于ParNew的GC:154911 ms用于1个集合,1287263224使用; 最大值是12801015808`

每次我们尝试引导新节点时,它似乎都发生在不同的节点上.

我找到了这张相关的票. https://issues.apache.org/jira/browse/CASSANDRA-6653

我唯一的猜测是,当新节点出现时,很多压缩都会启动并且可能导致GC暂停时间,我考虑过设置 concurrent_compactors = 1/2 my total CPU

有人有想法吗?

编辑:有关GC设置的更多详细信息在EC2上使用i2.2xlarge节点:

MAX_HEAP_SIZE = "12G"

HEAP_NEWSIZE = "800M"

JVM_OPTS ="$ JVM_OPTS -XX:+ UseParNewGC"

JVM_OPTS ="$ JVM_OPTS -XX:+ …

cassandra datastax-enterprise datastax

7
推荐指数
1
解决办法
1213
查看次数

如何在同一分区中保留2个Cassandra表

我尝试阅读有关数据存储博客和文档但未找到任何具体内容

有没有办法让Cassandra中的2个表属于同一个分区?例如:

CREATE TYPE addr (
  street_address1 text,
  city text,
  state text,
  country text,
  zip_code text,
);

CREATE TABLE foo (
  account_id timeuuid,
  data text,
  site_id int,
  PRIMARY KEY (account_id)
};

CREATE TABLE bar (
  account_id timeuuid,
  address_id int,
  address frozen<addr>,
  PRIMARY KEY (account_id, address_id)
);
Run Code Online (Sandbox Code Playgroud)

在这里,我需要确保这两个表/ CF都将存在于同一个分区,对于同一个account_id,这两组数据都可以从同一个节点获取

任何指针都非常感谢.

此外,如果有人在使用UDT(用户定义类型)方面有一些经验,我想了解向后兼容性如何工作.如果我修改"addr"UDT以获得更多属性(例如zip_code2 int和name text),具有这些属性的旧行如何工作?它甚至兼容吗?

谢谢

cassandra datastax-enterprise cql3 datastax-java-driver datastax

7
推荐指数
1
解决办法
971
查看次数

Cassandra Node.js ORM 最佳实践

目前,我们使用 cassandra 和 cassandra-driver,执行标准查询并访问 DAL 和 BL 层中的“原始”结果。我们的应用程序应该支持数百万用户,每个请求平均从数据库读取 3 次,我们有大约 30 个模型。

我们正在考虑使用某种 ORM 库,映射我们自己的模型并处理代表性对象中的每个原始数据,或者简单的函数来处理每个模型(原始数据)的获取、设置和创建。我们的用例主要用于封装“原始”数据结构的处理,避免代码重复,防止模式结构错误并强制验证。我们非常想知道对性能、未来灵活性的影响以及 ORM lib/frameworks 流行度的缺乏。

获得本主题的最佳实践(和参考)将会很有帮助,因为我们并不真正知道使用 ORM 层对 cassandra 有何影响。

orm cassandra node.js datastax-enterprise

6
推荐指数
1
解决办法
6423
查看次数

当 Cassandra 中的所有种子节点都关闭时会发生什么?此时新节点可以加入集群吗?

当 Cassandra 中的所有种子节点都关闭时会发生什么?此时新节点可以加入集群吗?

cassandra datastax-enterprise datastax

6
推荐指数
1
解决办法
2298
查看次数

Cassandra允许过滤

我有一张桌子如下

CREATE TABLE test (
 day int,
 id varchar,  
 start int,
 action varchar,  
 PRIMARY KEY((day),start,id)
);
Run Code Online (Sandbox Code Playgroud)

我想运行此查询

Select * from test where day=1 and start > 1475485412 and start < 1485785654 
and action='accept' ALLOW FILTERING
Run Code Online (Sandbox Code Playgroud)

这是否允许过滤有效?

我期待cassandra将按此顺序过滤

1. By Partitioning column(day)
2. By the range column(start) on the 1's result
3. By action column on 2's result. 
Run Code Online (Sandbox Code Playgroud)

所以allow筛选对于这个查询来说不是一个糟糕的选择.

如果where子句上的多个过滤参数和非索引列是最后一个,过滤器将如何工作?请解释.

cql cassandra datastax-enterprise datastax

6
推荐指数
2
解决办法
8453
查看次数

如何解决此错误org.apache.spark.sql.catalyst.errors.package $ TreeNodeException

我有两个过程,每个过程都要做1)连接oracle db读取特定表2)形成数据框并对其进行处理。3)将df保存到cassandra。

如果我同时运行两个进程,则两者都尝试从oracle读取,而第二个进程读取数据时却出现错误提示

 ERROR ValsProcessor2: org.apache.spark.sql.catalyst.errors.package$TreeNodeException: execute, tree:
Exchange SinglePartition
+- *(1) HashAggregate(keys=[], functions=[partial_count(1)], output=[count#290L])
   +- *(1) Scan JDBCRelation((SELECT * FROM BM_VALS WHERE ROWNUM <= 10) T) [numPartitions=2] [] PushedFilters: [], ReadSchema: struct<>
at org.apache.spark.sql.catalyst.errors.package$.attachTree(package.scala:56)
at org.apache.spark.sql.execution.exchange.ShuffleExchangeExec.doExecute(ShuffleExchangeExec.scala:119)
at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$1.apply(SparkPlan.scala:131)
at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$1.apply(SparkPlan.scala:127)
at org.apache.spark.sql.execution.SparkPlan$$anonfun$executeQuery$1.apply(SparkPlan.scala:155)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
at org.apache.spark.sql.execution.SparkPlan.executeQuery(SparkPlan.scala:152)
at org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:127)
at org.apache.spark.sql.execution.InputAdapter.inputRDDs(WholeStageCodegenExec.scala:371)
at org.apache.spark.sql.execution.aggregate.HashAggregateExec.inputRDDs(HashAggregateExec.scala:150)
at org.apache.spark.sql.execution.WholeStageCodegenExec.doExecute(WholeStageCodegenExec.scala:605)
at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$1.apply(SparkPlan.scala:131)
at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$1.apply(SparkPlan.scala:127)
at org.apache.spark.sql.execution.SparkPlan$$anonfun$executeQuery$1.apply(SparkPlan.scala:155)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
at org.apache.spark.sql.execution.SparkPlan.executeQuery(SparkPlan.scala:152)
at org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:127)
at org.apache.spark.sql.execution.SparkPlan.getByteArrayRdd(SparkPlan.scala:247)
at org.apache.spark.sql.execution.SparkPlan.executeCollect(SparkPlan.scala:294)
at org.apache.spark.sql.Dataset$$anonfun$count$1.apply(Dataset.scala:2770)
at org.apache.spark.sql.Dataset$$anonfun$count$1.apply(Dataset.scala:2769)
at org.apache.spark.sql.Dataset$$anonfun$52.apply(Dataset.scala:3254)
at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:77)
at …
Run Code Online (Sandbox Code Playgroud)

datastax-enterprise apache-spark cassandra-3.0 databricks

6
推荐指数
1
解决办法
1万
查看次数

DataStax Cassandra核心驱动器依赖于易受攻击的Guava-19

DataStax cassandra核心 Java驱动器对guava-19(包括最新的DataStax)具有传递性依赖关系,而guava-19具有安全漏洞(CVE-2018-10237)。

为了解决这个问题,当我尝试从DataStax驱动器中排除guava-19.0依赖项并替换为guava-27.1-jre时,在运行时出现以下错误,并通过反编译最新的guava驱动程序进行了确认;好像从guava-20.0中删除了FutureFallback类,并且与最新的cassandra驱动器没有向后兼容性。

java.lang.NoClassDefFoundError: com/google/common/util/concurrent/FutureFallback
Run Code Online (Sandbox Code Playgroud)

任何帮助或快速修复或替代都是非常可取的。

security cassandra datastax-enterprise datastax-java-driver datastax

6
推荐指数
1
解决办法
248
查看次数