我有6个节点,1个Solr,5个Spark节点,使用数据传输.我的群集位于与Amazon EC2类似的服务器上,具有EBS卷.每个节点有3个EBS卷,使用LVM组成逻辑数据磁盘.在我的OPS中心,同一节点经常无响应,这导致我的数据系统连接超时.我的数据量约为400GB,包含3个副本.我有20个流媒体作业,每分钟有一个批处理间隔.这是我的错误消息:
/var/log/cassandra/output.log:WARN 13:44:31,868 Not marking nodes down due to local pause of 53690474502 > 5000000000
/var/log/cassandra/system.log:WARN [GossipTasks:1] 2016-09-25 16:40:34,944 FailureDetector.java:258 - Not marking nodes down due to local pause of 64532052919 > 5000000000
/var/log/cassandra/system.log:WARN [GossipTasks:1] 2016-09-25 16:59:12,023 FailureDetector.java:258 - Not marking nodes down due to local pause of 66027485893 > 5000000000
/var/log/cassandra/system.log:WARN [GossipTasks:1] 2016-09-26 13:44:31,868 FailureDetector.java:258 - Not marking nodes down due to local pause of 53690474502 > 5000000000
Run Code Online (Sandbox Code Playgroud)
编辑:
这些是我更具体的配置.我想知道我做错了什么,如果是的话,我怎么能详细了解它是什么以及如何解决它?
out heap设置为
MAX_HEAP_SIZE="16G"
HEAP_NEWSIZE="4G"
Run Code Online (Sandbox Code Playgroud)
当前堆:
[root@iZ11xsiompxZ ~]# jstat …Run Code Online (Sandbox Code Playgroud) 当我尝试运行datastax spark-sql-thriftserver时,我收到这些错误:
dse spark-sql-thriftserver start \
--conf spark.cores.max=10 \
--conf spark.executor.memory=2g \
--hiveconf hive.server2.thrift.port=10001
Run Code Online (Sandbox Code Playgroud)
Spark命令:/opt/jdk1.8.0_112/jre//bin/java -cp
/etc/dse/spark/:/usr/share/dse/spark/jars/*:/etc/dse/hadoop2-client/ -Djava.library.path=/usr/share/dse/hadoop2-client/lib/native:/usr/share/dse/cassandra/lib/sigar-bin: -Dcassandra.logdir=/var/log/cassandra -XX:MaxHeapFreeRatio=50 -XX:MinHeapFreeRatio=20 -Dguice_include_stack_traces=OFF -Ddse.system_memory_in_mb=32174 -Dcassandra.config.loader=com.datastax.bdp.config.DseConfigurationLoader -Dlogback.configurationFile=/etc/dse/spark/logback-spark.xml -Dcassandra.logdir=/var/log/cassandra -Ddse.client.configuration.impl=com.datastax.bdp.transport.client.HadoopBasedClientConfiguration -Dderby.stream.error.method=com.datastax.bdp.derby.LogbackBridge.getLogger -Xmx1024M org.apache.spark.deploy.SparkSubmit --conf spark.executor.memory=2g --conf spark.cores.max=10 --class
org.apache.spark.sql.hive.thriftserver.HiveThriftServer2
spark-internal --hiveconf hive.server2.thrift.port=10001
======================================== WARN 2017-05-07 22:21:55 org.apache.spark.SparkContext: Use an existing SparkContext, some
configuration may not take effect. ERROR 2017-05-07 22:22:04
org.apache.spark.deploy.DseSparkSubmitBootstrapper: Failed to start or submit Spark application java.lang.NoSuchMethodError:
org.apache.hive.service.cli.operation.LogDivertAppender.setWriter(Ljava/io/Writer;)V at
org.apache.hive.service.cli.operation.LogDivertAppender.(LogDivertAppender.java:166) ~[spark-hive-thriftserver_2.11-2.0.2.6.jar:2.0.2.6] at
org.apache.hive.service.cli.operation.OperationManager.initOperationLogCapture(OperationManager.java:85) ~[spark-hive-thriftserver_2.11-2.0.2.6.jar:2.0.2.6] at
org.apache.hive.service.cli.operation.OperationManager.init(OperationManager.java:63) ~[spark-hive-thriftserver_2.11-2.0.2.6.jar:2.0.2.6] at
org.apache.spark.sql.hive.thriftserver.ReflectedCompositeService$$anonfun$initCompositeService$1.apply(SparkSQLCLIService.scala:79) ~[spark-hive-thriftserver_2.11-2.0.2.6.jar:2.0.2.6] at …
是否可以从Cassandra表中删除整个分区,而无需编写逻辑删除并等待gc_grace_period并运行压缩?
我刚刚安装了DataStax DevCenter。但是,在加载时,将弹出“自动更新和使用情况”页面。但是,“确定”按钮被禁用并且不可单击。因此,我无法通过应用程序的启动加载。我该如何绕过呢?
设置:
我们有3个节点Cassandra集群,每个节点上的数据大约为850G,我们为Cassandra数据目录设置LVM(目前包含3个驱动器800G + 100G + 100G),并为cassandra_logs提供单独的卷(非LVM)
版本:
Cassandra v2.0.14.425
DSE v4.6.6-1
问题:
在每个节点上的LVM中添加第三个(100G)卷后,所有节点的磁盘I/O都非常高,而且它们经常停机,服务器也无法访问,我们需要重启服务器,服务器不要t稳定,我们需要每隔10-15分钟重新启动一次.
其他信息:
我们
在每个节点上的所有节点RAM上配置了DSE推荐的服务器设置(vm.max_map_count,文件描述符):每个节点上24G
CPU:每个节点上有6个核心/ 2600MHz
磁盘:1000G(数据目录)/ 8G(日志) )
cassandra datastax-enterprise datastax cassandra-2.0 datastax-startup
这是在Datastax Cassandra(dse)版本:4.8.5-1
这对应于(我相信)Cassandra:2.1.x
从我们的应用程序查询时,我收到了很多以下错误:
ReadTimeout: code=1200 [Coordinator node timed out waiting for replica nodes' responses] message="Operation timed out - received only 0 responses." info={'received_responses': 0, 'data_retrieved': False, 'required_responses': 1, 'consistency': 1}
进一步深入研究; 示例查询(在每个节点上使用本地cqlsh运行)返回环中的3个节点,但在其余节点上失败并显示ReadTimeout.似乎只有包含副本的节点返回响应,而其他节点根本不知道如何找到它们.
是否有一些配置或已知问题我应该考虑解决此问题?
当其他节点发生故障时,我在日志中看到此错误:
ERROR [MessagingService-Outgoing-/10.0.10.14] 2016-04-25 20:46:46,818 CassandraDaemon.java:229 - Exception in thread Thread[MessagingService-Outgoing-/10.0.10.14,5,
main]
java.lang.AssertionError: 371205
at org.apache.cassandra.utils.ByteBufferUtil.writeWithShortLength(ByteBufferUtil.java:290) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131]
at org.apache.cassandra.db.composites.AbstractCType$Serializer.serialize(AbstractCType.java:393) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131]
at org.apache.cassandra.db.composites.AbstractCType$Serializer.serialize(AbstractCType.java:382) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131]
at org.apache.cassandra.db.filter.ColumnSlice$Serializer.serialize(ColumnSlice.java:271) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131]
at org.apache.cassandra.db.filter.ColumnSlice$Serializer.serialize(ColumnSlice.java:259) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131]
at org.apache.cassandra.db.filter.SliceQueryFilter$Serializer.serialize(SliceQueryFilter.java:503) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131]
at org.apache.cassandra.db.filter.SliceQueryFilter$Serializer.serialize(SliceQueryFilter.java:490) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131]
at org.apache.cassandra.db.SliceFromReadCommandSerializer.serialize(SliceFromReadCommand.java:168) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131]
at org.apache.cassandra.db.ReadCommandSerializer.serialize(ReadCommand.java:143) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131]
at org.apache.cassandra.db.ReadCommandSerializer.serialize(ReadCommand.java:132) ~[cassandra-all-2.1.13.1131.jar:2.1.13.1131]
at org.apache.cassandra.net.MessageOut.serialize(MessageOut.java:121) …Run Code Online (Sandbox Code Playgroud) 我有一个集群,我正在考虑启用增量修复.如果出现任何问题,我想在每个节点上禁用增量修复.我怎么做?
cassandra datastax-enterprise datastax cassandra-2.1 datastax-startup
似乎在该表上有已定义的物化视图时,无法从表中删除列。例如,假设我们有此表:
> CREATE TABLE healthera.users (
> user_id timeuuid PRIMARY KEY,
> address text,
> birthday int,
> forename text,
> user_password text,
> username text
> );
Run Code Online (Sandbox Code Playgroud)
我们在下面定义实例化视图:
> CREATE MATERIALIZED VIEW users_by_username AS
> SELECT * FROM users
> WHERE user_id IS NOT NULL AND username IS NOT NULL
> PRIMARY KEY (username, user_id);
Run Code Online (Sandbox Code Playgroud)
然后,我们更改用户表并添加一列:
> ALTER TABLE users ADD last_name text;
Run Code Online (Sandbox Code Playgroud)
当我们尝试从用户表中删除此列或任何其他列时,我们会返回此错误:
> ALTER TABLE users DROP last_name ;
> InvalidRequest: Error from server: code=2200 [Invalid query] …Run Code Online (Sandbox Code Playgroud) 我正在关注Django 教程。相比之下,我有两个数据库——MySql 和 Cassandra。因此,我还需要使用包含UUID类型的 Cassandra 模型。UUID 的形式为 32 个字母数字字符和四个连字符 (8-4-4-12)。因此,我的 urls.py 中有相当复杂的正则表达式:
^([A-Fa-f0-9]{8}))(-[A-Fa-f0-9]{4}){3}-[A-Fa-f0-9]{12}
Run Code Online (Sandbox Code Playgroud)
在polls/templates/polls/detail.htmlteplate 中是以下行:
<form action="{% url 'polls:vote' question.question_id %}" method="post">
Run Code Online (Sandbox Code Playgroud)
然后将 UUID 类型question.question_id转换为:
/polls/UUID('47de663a-57f2-4ca1-9ad9-81df9ae25973')/
代替
/polls/47de663a-57f2-4ca1-9ad9-81df9ae25973/
因此,我收到了错误消息:
使用参数 '(UUID('47de663a-57f2-4ca1-9ad9-81df9ae25973'),)' 和关键字参数 '{}' 未找到反向'投票'。尝试了 1 个模式:[u'polls/(?P^([A-Fa-f0-9]{8})(-[A-Fa-f0-9]{4}){3}-[ A-Fa-f0-9]{12})/vote/$'
如何处理 UUID 类型?
我想我不能在{% url}标签中使用 str(question.question_id) 函数。
根网址 - mysite/urls.py:
from django.conf.urls import url
from . import views
app_name= 'polls'
urlpatterns = [
#ex: /polls/
url(r'^$',views.index, name='index'),
#ex: /polls/uuid …Run Code Online (Sandbox Code Playgroud) 如果架构已满或无架构,我感到困惑DataStax graph .
我问这个问题,因为 入门教程 告诉创建架构.但我key-value在边缘属性上插入随机并DSE graph接受它而没有错误.
如果我在DSE-Graph上插入随机Vertex或edge属性(键值)会有问题吗?
datastax-enterprise datastax-java-driver datastax datastax-startup datastax-enterprise-graph
我们正在为我们的社交网络使用 Datastax Cassandra,我们正在设计/数据建模我们需要的表,这让我们感到困惑,我们不知道如何设计一些表,我们有一些小问题!
正如我们对每个查询的理解,我们必须有不同的表,例如用户 A 跟随用户 C 和 B。
现在,在 Cassandra 中,我们有一个表posts_by_user:
user_id | post_id | text | created_on | deleted | view_count
likes_count | comments_count | user_full_name
Run Code Online (Sandbox Code Playgroud)
我们有一个根据用户关注者的表,我们将帖子的信息插入到表中,称为user_timeline当关注者用户访问第一个网页时,我们从user_timeline表中的数据库中获取帖子。
这是user_timeline表:
follower_id | post_id | user_id (who posted) | likes_count |
comments_count | location_name | user_full_name
Run Code Online (Sandbox Code Playgroud)
首先,这个数据建模对于关注基础(关注者,关注行为)社交网络是否正确?
现在我们要计算帖子的点赞数,正如您看到的,我们在两个表中都有点赞数( user_timeline, posts_by_user),并假设一个用户有 1000 个关注者,然后通过每个点赞操作,我们必须更新所有 1000 行user_timeline和 1 行posts_by_users; 这不合逻辑!
然后,我的第二个问题是它应该如何?我的意思是(最喜欢的)桌子应该如何?
datastax-startup ×11
cassandra ×7
datastax ×7
apache-spark ×2
amazon-ec2 ×1
django ×1
django-urls ×1
java ×1