问题标签 [datastax-enterprise]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hadoop - datastax cqlsh alter table add column,但在hive中看不到该列,怎么办?
t
在 hive 中看不到新列。dse 版本是 3.1.3。
我需要做什么?
hadoop - 工作跟踪器的未知协议
我正在尝试在 DataStax 3.1 中运行 Hadoop mapreduce 作业并收到此错误。关于原因的任何想法?
引起:org.apache.hadoop.ipc.RemoteException:java.io.IOException:作业跟踪器的未知协议:org.apache.hadoop.mapred.JobTracker.getProtocolVersion(JobTracker)上的 org.apache.hadoop.hdfs.protocol.ClientProtocol .java:347) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcc
solr - Cassandra 的二级索引 Vs DSE solr 索引
我想知道 Cassandra 的二级索引与 DSE 放在 CF 上的 solr 索引的性能差异。
我们有一些没有放置二级索引的 CF,因为我们的印象是二级索引会(最终)导致重读/写 CF 的重大性能问题。我们正试图转向 Solr 以允许搜索这些 CF,但看起来加载索引模式会修改 CF 以在感兴趣的列上具有二级索引。
想知道 Solr 索引是否不同于 Cassandra 的二级索引?并且,它最终是否会导致带有大型数据集和大量读/写的 CF 的缓慢查询(插入/读取)?如果是这样,您会建议自定义索引(我们想避免)吗?顺便说一句——我们也在使用(尝试使用)Solr 进行空间搜索。
感谢您提供的任何建议/链接。
更新:为了更好地理解我为什么要问这些问题,并看看我是否在问正确的问题——我们用例的描述:
我们正在收集传感器事件——很多!我们将它们存储在时间序列 CF (EventTL) 和瘦 CF (Event) 中。因为我们在 Event CF 中大量写入(插入和更新),所以我们没有放置任何二级索引。我们现在的查询仅限于通过 Event 的单个事件或通过 EventTL 的事件时间范围(除非我们创建额外的胖 CF 以允许对事件的其他属性进行范围查询)。
这就是 DSE (Solr+Cassandra) 可以帮助我们的地方。我们认为利用 Solr 搜索将允许我们避免创建额外的胖 CF 以允许搜索事件的其他属性,并允许我们一次搜索多个属性(位置 + 文本/属性)。但是,通过 Solr 添加 Event 的索引模式后,查看 Event CF 的定义如何变化表明二级索引已创建。这导致了这些索引是否会为在 Event 中插入/更新行(最终)产生问题的问题。我们需要能够“快速”插入新事件——因为事件可能以每秒 1000+ 的速度进入。
hadoop - 热点使用 hive 插入 Cassandra
使用EC2 datastax ami评估 DSE 3.1.3 Cassandra 。
测试设置
- 5 x m1.xlarge 一次测试:4vcpus、15G、4x420G 实例存储。
- 另一个 5 x hi1.4xlarge:16vcpus、60G、2x1TB SSD 实例存储。
数据
- 5000+ apache 日志文件,约 60GB,60MM 行。
工作流程
- 通过 dse hadoop fs -put 加载到 CFS
- 使用 RegexSerDe 从 CFS 加载到 Hive。
- 通过键空间日志中的 CQL 在 Cassandra 中创建事件表。
- 通过 INSERT INTO logs.event 从 hive 插入 Cassandra。
总体而言,前两个步骤的性能以及基本查询与其他 hadoop 堆栈相当。并且能够直接从 hive 中简单地引用 Cassandra 表而无需显式定义外部表非常棒。
但是,INSERT 操作比其他常见的 hadoop 堆栈要长 3-4 倍。我一定是设置错误,正在寻求帮助或建议。
从初步的角度来看,很明显,我运行 hive INSERT 命令的节点的 cpu 运行在 12-16,而其他 4 个节点显示 1-2 cpu。此外,所有写入请求都将发送到同一个节点,而没有发送到其他节点。
我的假设是 hive 会将工作分配(下推)到每个节点,这似乎与常见的 hadoop 堆栈有关。
否则,密钥是随机的,数据负载在节点间以均衡的方式增长。键空间是通过以下方式创建的:
查看 jobtracker/task 详细信息,作业在节点之间拆分。但是从状态列中,似乎所有对 cfs 的调用都通过启动作业的节点进行路由。
我希望这是一个配置问题。我也愿意接受其他建议。但是,如果它可以像在其他堆栈上一样工作,那么这种方法肯定非常简单。
java - 如何对 Solr 中的多个字段执行嵌套聚合?
我正在尝试以嵌套方式按多个字段执行搜索结果聚合(计数和总和)分组。
例如,使用本文末尾显示的架构,我希望能够获得按“类别”分组并按“子类别”进一步分组的“大小”总和,并得到如下内容:
我一直主要关注 Solr 的 Stats 组件,据我所知,它不允许嵌套聚合。
如果有人知道使用或不使用 Stats 组件的某种方式来实现这一点,我将不胜感激。
这是目标模式的精简版本:
nosql - 使用流利的 cassandra api 插入复合行
我在 cassandra 中创建了一个复合主键列族
我正在尝试通过 Fluent cassandra api 创建记录。
上面的代码返回错误“没有足够的字节来读取组件 0 的值”。我不知道为什么。
我尝试了以下方法,但仍然收到相同的错误“没有足够的字节来读取组件 0 的值”。
感谢帮助。
hadoop - Cassandra/Hadoop 重复尝试消息
在 Pig 中发出转储后,我在控制台上看到以下消息。我之前已经从有超过 1500 万条记录的 Cassandra 表中将数据加载到猪关系中。
我正在运行一个 5 节点 Hadoop 集群,所有节点都显示如下相同的消息;
信息14:16:22,225企图
有人可以对此有所了解吗?
在网络浏览器中查看作业详细信息,我可以看到 map 和 reduce 任务的数量设置为 1。我的印象是 map 和 reduce 任务分散在 5 个节点上,而不是让一个节点完成所有工作工作?
更新:
我已经按照建议在一个 Hadoop 节点(500 万个项目)上运行了测试,在 Pig 中发出 Dump 后我仍然看到相同的消息......
INFO 15:55:15,448 JVM with ID: jvm_201310141552_0001_m_-2064359790 given task: attempt_201310141552_0001_m_000002_0 INFO 15:55:20,395 attempt_201310141552_0001_m_000002_0 0.0% setup INFO 15:55:20,397 Task attempt_201310141552_0001_m_000002_0 is done. 信息15:55:20,398报告的und_201310141552_0001_m_000002_0的输出大小为-1信息15:55:20,398 addfreeslot:当前免费插槽:1信息15:55:55:55:21,021任务' 信息15:55:21,031添加任务(地图)' :21,035 LaunchTaskAction (registerTask): 尝试_201310141552_0001_M_0000_0任务状态:未分配的信息15:55:21,035尝试启动:from_2013101415522_0001_m_000000_0哪个需要1个插槽信息15:55:55:21,035:21,035 toss_000 000 000; attempt_201310141552_0001_m_000000_0 which needs 1 slots INFO 15:55:21,036 About to purge task: attempt_201310141552_0001_m_000002_0 INFO 15:55:21,037 Map ID attempt_201310141552_0001_m_000002_0 not found in cache INFO 15:55:21,050 No new JVM spawned for jobId/taskid: job_201310141552_0001/attempt_201310141552_0001_m_000000_0. 尝试重用:jvm_201310141552_0001_m_-2064359790 INFO 15:55:21,421 JVM,ID:jvm_201310141552_0001_m_-2064359790 给定任务:attempt_201310141552_0001_m_0005:21,421, ParNew 的 865 GC:1 个集合 216 毫秒,使用了 89930816;max is 3200253952 INFO 15:55:27,708 attempt_201310141552_0001_m_000000_0 NaN% INFO 15:55:30,759 attempt_201310141552_0001_m_000000_0 NaN% INFO 15:55:33,801 attempt_201310141552_0001_m_000000_0 NaN% INFO 15:55:36,860 attempt_201310141552_0001_m_000000_0 NaN% INFO 15:55:39,940 attempt_201310141552_0001_m_000000_0 NaN% INFO 15 :55:42,989 attempt_201310141552_0001_m_000000_0 NaN% INFO 15:55:46,043 attempt_201310141552_0001_m_000000_0 NaN% INFO 15:55:49,836 attempt_201310141552_0001_m_000000_0 NaN% INFO 15:55:52,874 attempt_201310141552_0001_m_000000_0 NaN% INFO 15:55:55,913 attempt_201310141552_0001_m_000000_0 NaN% INFO 15:55:58,958 attempt_201310141552_0001_m_000000_0 NaN% 信息 15:56:02,068 尝试_201310141552_0001_m_000000_0 NaN% 信息 15:56:05,
为什么会这样?
谢谢马吉德
cassandra - 语法错误:“@”没有可行的替代方案
我正在尝试使用 datastax 驱动程序将地图插入 cassandra。地图有价值
Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
如果我尝试使用查询生成器插入值,我会收到语法错误,指出“@”没有可用的字符。
如果我直接使用 insert 语句构造 cql3 注释并将映射构造为字符串,它将被插入。关于这个问题的任何想法
solr - Cassandra 和堆大小
我正在运行一个 5 节点 Cassandra 集群,它也恰好在 5 个节点上运行 Solr。我已经摄取并索引了超过 10 亿个项目,目前此消息一直在控制台上打印;
INFO 10:55:54,360 无法减少堆使用量,因为没有脏列族 INFO 10:56:03,897 ConcurrentMarkSweep 的 GC:1 个集合 538 毫秒,使用 2733064112;最大值为 3158310912 WARN 10:56:03,898 堆已满 0.865356257870536。您可能需要减少 memtable 和/或缓存大小。Cassandra 现在将刷新到两个最大的内存表以释放内存。如果您不希望 Cassandra 自动执行此操作,请调整 cassandra.yaml 中的 flush_largest_memtables_at 阈值
我每个节点有 8G,我在 Cassandra-env.sh 中将 MAX_HEAP_SIZE 设置为 3G。
有人可以解释一下我该如何解决这个问题吗?
谢谢马吉德
java - Datastax solr:Cassandra 现在将刷新到两个最大的内存表以释放内存
我正在使用 4Go RAM 的单个节点上使用 datastax 3.1。我没有更改 cassandra-en.sh 和 cassandra.yaml 中的任何内容,除了“--Xss”(因为我的 java 版本需要更多)所以默认情况下,Cassandra 设置为 1Go 我的 -Xms 和 -Xmx 参数:- Xms1024M -Xmx1024M
但是,在大约 200 000 行(在 3 个不同的 column_families 中)之后插入我的数据时,Solr 和 cassandra 日志不断重复这种警告:
WARN StorageService Flushing CFS(Keyspace='OpsCenter',ColumnFamily='rollups60') 缓解内存压力 17:58:07
警告 GCInspector 堆已满 0.8825103486201678。您可能需要减少 memtable 和/或缓存大小。Cassandra 现在将刷新到两个最大的内存表以释放内存。如果您不希望 Cassandra 自动执行此操作,请调整 cassandra.yaml 中的 flush_largest_memtables_at 阈值
所以,好吧,我的堆是满的,但是为什么在刷新之后,我的堆还是满的?
如果我此时停止插入数据。警告不断重复。如果我停止并重新启动 cassandra。提升没问题
看起来像内存泄漏问题对吗?那么我应该看哪里呢?
感谢您的未来帮助。