hadoop - PIG 和 HIVE 连接到运行大量 map 的 Datastax Cassandra

标签 hadoop mapreduce cassandra hive datastax-enterprise

我正在使用 DSE3.2.4 我创建了三个表,其中一个表有 1000 万行,另一个表有 50k 行,其他表只有 10 行 当我对这些表运行一个简单的 PIG 或 Hive 查询时,它会为这两个表运行相同数量的映射器。

在 Pig 中,默认情况下 pig.splitCombinationtrue 其中它只运行一个 map 如果我将其设置为 false,它现在运行 513 张 map 。

在 Hive 中默认运行 513 个映射

我尝试设置以下属性

mapred.min.split.size=134217728 in `mapred-site.xml` now running 513 maps for all 

在 pig shell 中设置 pig.splitCombination=false 现在所有表只运行 1

但没有运气

最后我在 job.xml 中找到了 mapred.map.tasks = 513

我试图在 mapred-site.xml 中更改它,但它没有反射(reflect)

请帮帮我

最佳答案

映射器由分割大小管理,所以不要通过 hadoop 设置配置它,尝试将 &split_size= 传递给你的 pig url。为配置单元设置“cassandra.input.split.size”

默认为64M

如果你的Cassandra使用v-node,它会产生很多 split ,所以如果你的数据不够大,那么为hadoop节点关闭v-node

关于hadoop - PIG 和 HIVE 连接到运行大量 map 的 Datastax Cassandra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25094951/

相关文章:

node.js - 通过node.js命令行界面报告ozt_prehh过滤器创建azure hdinsight,未定义”

hadoop - 在 Hadoop 中,如何验证我是否对 DFS 传输进行了数据加密?

hadoop - 从任何节点列出集群的名称节点和数据节点?

ssl - 在 Cassandra 上使用单个证书进行节点间加密

kubernetes - 将Cassandra迁移到GCP

没有输入文件的 Hadoop 流作业

java - 从Java API获取mapreduce作业结果,而无需在HDFS上永久存储

java - 每个文件计数的 WordCount 示例

java - Hadoop 单节点集群 - 进程未运行

cassandra - Apache Cassandra 如何与 Infinispan 融合?