问题标签 [apache-crunch]
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 - Apache Crunch PTable collectValues 如何在内部工作
我正在阅读一些与 HDFS 架构和 Apache crunch PTable 相关的文档。根据我的理解,当我们生成 PTable 时,数据内部存储在 HDFS 中的数据节点之间。
这意味着,如果我在 HDFS 中有<K1,V1>,<K2,V2>,<K1,V3>,<K3,V4>,<K2,V5>
两个数据节点 D1 和 D2 的 PTable。假设每个数据节点都可以容纳 3 对。所以 D1 将举行<K1,V1>,<K2,V2>,<K1,V3>
, D2 将举行<K3,V4>,<K2,V5>
。
如果我在此 PTable 上执行 collectValues,我将在内部运行另一个 map-reduce 作业以从 PTable 获取这些值并生成成对的<K,Collection<V>>
. 所以最后我会有,<K1,Collection<V1,V3>>, <K2,Collection<V2,V5>> and <K3,Collection<V4>>
. 再次,这些对将分布到不同的数据节点。
现在,我怀疑 Collection 值(V1,V3 of K1)
将如何存储在生成的 PTable 中?这些数据是否也会分布在节点上,即,将
V1 存储在 D1 中
V3 存储在 D2 中
或者,V1 和 V3 将仅存储在一个节点中。
如果一个key的所有collection值都存储在一个节点中(非分布式),那么对于大数据集,每个key的collection值的处理会不会变慢?
java - 使用 crunch MemPipeline 编写时出现 java.lang.UnsatisfiedLinkError
我正在使用 com.cloudera.crunch 版本:'0.3.0-3-cdh-5.2.1'。
我有一个小程序可以读取一些 AVRO 并根据某些标准过滤掉无效数据。我正在使用 pipeline.write(PCollection, AvroFileTarget) 写入无效的数据输出。它在生产运行中运行良好。
为了对这段代码进行单元测试,我使用 MemPipeline 实例。但是,在这种情况下写入输出时它会失败。
我得到错误:
知道有什么问题吗?
hadoop - java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/mapreduce/MultiTableInputFormat
在 Hadoop minicluster 上运行 mapReduce 作业测试时,出现错误:
java.lang.NoClassDefFoundError:在 org.apache.crunch.io.hbase.HBaseSourceTarget 的 org/apache/hadoop/hbase/mapreduce/MultiTableInputFormat。(HBaseSourceTarget.java:98)在 org.apache.crunch.io.hbase.HBaseSourceTarget。 (HBaseSourceTarget.java:72)
这在集群上运行得非常好,但是在测试时抛出了这个错误。
这是我专门用来在本地微型集群上测试它的测试依赖项:
hadoop - 在 Apache crunch 中为特定 Dofn 配置减速器的数量
我知道有像 CRUNCH_BYTES_PER_REDUCE_TASK 或 mapred.reduce.tasks 这样的属性来设置减速器的数量。
任何人都可以建议配置/覆盖特定 Dofn 的默认减速器,这需要更多时间来执行。
mapreduce - 在 Apache Crunch 中编写 Parquet 文件
我是 apache crunch 的新手,正在寻找在 apache crunch 中读写 Parquet 文件。我遵循了文档和 API,但没有得到直接的方法/方法来做同样的事情。
提前致谢。
java - 如何根据大小拆分 ORC 文件?
我有一个要求,我想将 5GB ORC 文件拆分为 5 个文件,每个文件大小为 1 GB。ORC 文件是可拆分的。这是否意味着我们只能逐条分割文件条带?但我有一个要求,我想根据大小拆分 orc 文件。例如,将 5GB ORC 文件拆分为 5 个文件,每个文件大小为 1 GB。如果可能,请分享示例。
apache-spark - 以 SparkSession 实例开头的 Spark 应用程序链接 Crunch Spark 管道
Crunch 管道可以将 Java spark 上下文作为参数,但如果 spark 应用程序以 SparkSession 实例启动(因为 spark Java 程序包含 Datasets 并需要 sparkSQL)。在这种情况下,如何在 spark 应用程序上添加另一层抽象(紧缩管道)?
mapreduce - Scaling Oozie Map Reduce Job:拆分成更小的作业会减少整体运行时间和内存使用吗?
我有一个 Oozie 工作流,它在集群上的特定队列中运行 Map-reduce 作业。
我必须为这项工作添加更多的输入源/客户端,所以这项工作将处理比现在多 n 倍的数据。
我的问题是,如果不是让一项大工作来处理所有数据,而是将其分解为多个工作,每个来源一个,我会减少完成这些工作所需的总时间吗?
我知道 Mapreduce 无论如何都会将一项工作分解为较小的工作并将它们分散到整个网格中,因此一个大工作应该与多个小工作相同。
此外,队列中的容量分配是在“每个用户”的基础上完成的[1],因此无论在一个用户下提交多少作业,分配给该用户的容量都是相同的。还是我缺少什么?
那么,如果分解成更小的工作,我的工作真的会运行得更快吗?
谢谢。
[1] https://hadoop.apache.org/docs/r1.2.1/capacity_scheduler.html#Resource+allocation
hadoop - 将数据读取为“流媒体时尚”是什么意思?
我正在阅读Apache Crunch documentation
并发现以下句子:
数据以流方式从文件系统中读取,因此不需要 PCollection 的内容适合内存,即可使用物化将其读入客户端。
我想知道什么read in from the filesystem in a streaming fashion
意思,如果有人能告诉我与其他读取数据的方式有什么区别,我将不胜感激。
我想说这个概念也适用于其他工具,例如 Spark。
apache-crunch - 在 Apache Crunch 中是否有将 PCollection 转换为 PTable 的通用方法?
我在 util 类中有这些方法,它们将特定的 PCollection 转换为特定的 PTable。
如何实现上述方法的一种通用方法?