hadoop-partitioning 相关问题

Hadoop分区处理有关hadoop如何决定将哪些键/值对发送到哪个reducer(分区)的问题。

映射缩减和哈希分区

在学习MapReduce时,我遇到了这个问题: 给定的 Mapreduce 程序的 Map 阶段生成 100 个具有 10 个唯一键的键值对。 这个程序可以处理多少个Reduce任务...

回答 5 投票 0

通过控制 HDFS 中的物理文件/块位置来减少 Spark Shuffle 读/写

设置: 我们每小时在 hdfs 中接收 gzip 压缩的 csv 文件(例如每 24 小时 1k+ 个文件)。这些文件组织在文件夹结构 /data//// 中 设置: 我们每小时在 hdfs 中接收 gzip 压缩的 csv 文件(例如每 24 小时 1k+ 个文件)。这些文件组织在文件夹结构中 /data/<year>/<month>/<day>/<hour>/<unique_id>.csv.gz. 我们的 etl 流程(spark 应用程序每天运行一次。在该管道中,我们 阅读当天的所有文件, 应用一些变换, 按小时重新分区整个数据集并将结果写回 hdfs(每天产生 24 个 avro 文件)。 观察: 在监视 Spark 作业时,我可以看到很多 shuffle 操作(还涉及通过网络传输大量数据,尤其是在步骤 2 和 3 之间)。在步骤 1/2 中,为每个文件创建一个任务,该任务安排在提供最佳局部性级别 (PROCESS_LOCAL) 的执行器节点上。在步骤 3 中,我们每小时执行一个任务(总共 24 个任务),每个任务将一个 avro 文件写回 hdfs。 这些大型 shuffle 操作的原因是特定小时的输入 csv 文件物理上位于 hdfs 中的多个不同集群节点。读取/转换操作后,特定小时的所有记录都需要发送到单个执行器,该执行器在步骤 3 中运行该小时的写入任务。 优化思路: 为了优化这个过程,我们的想法是以某种方式物理定位同一节点同一小时内的所有原始 csv 文件/块。我们不会摆脱洗牌操作,但这主要需要执行器节点上的本地洗牌读/写,并最大限度地减少网络流量。在这一点上,还值得一提的是,网络带宽在我们的集群中是非常有限的资源。因此,Spark 应用程序大部分时间都在整理数据。 是否有可能在上传过程中或者通过按 cron 计划运行的单独脚本来影响/控制 hdfs 中文件的物理位置? 还有其他选项可以优化/简化此流程吗? 作为一种可能的解决方案,不要将多个 .gz 文件写入一个小时,而是尝试将数据附加到 hdfs 文件。这可能更容易实现

回答 1 投票 0

topic

通过mapPartitions类型的方法。

回答 1 投票 0

如何从在日期列上划分的配置单元表中获取最新日期?

例如如果我的日期列是load_date,则使用max(load_date)运算符将扫描配置单元中的每个数据文件,从而使其成为昂贵的操作。相反,有什么最佳方法可以从...

回答 1 投票 0

我们如何删除具有其基本文件结构的HIVE表,而又不破坏同一路径下的另一个表?

假设我们在相同的HDFS文件路径下创建了2个配置单元表。我希望能够删除具有HDFS文件路径的表,而不会破坏同一共享路径中的其他表。 ...

回答 1 投票 0

可以通过执行-mkdir在hadoop中的远程集群上创建目录吗?

我们正在逐个分区地在群集间移动数据,并且仅对此需要使用-update -skipcrccheck选项。为了通过分区在分区上运行distcp ...

回答 1 投票 0

HDFS:dfs.block.size的确切含义

在我们的集群中,dfs.block.size配置为128M,但是我已经看到很多文件,它们的大小为68.8M,这很奇怪。我对这个配置选项的准确度感到困惑...

回答 1 投票 0

如何插入配置单元表,按从临时表中读取的日期划分?

我有一个Hive临时表,没有任何具有所需数据的分区。我想选择此数据,然后插入按日期划分的另一个表中。我尝试过以下运气不好的技术。 ...

回答 1 投票 0

Spark Partitionby无法按预期缩放

输入:输入数据集包含1000万个交易,这些交易包含在作为拼花地板存储的多个文件中。包括所有文件在内的整个数据集的大小范围从6到8GB。问题陈述:分区...

回答 1 投票 2

处理Apache Spark中分区的不良文件夹结构的简单方法

[通常,数据可通过2000-01-01 / john / smith这样的文件夹结构获得,而不是Hive分区规范,date = 2000-01-01 / first_name = john / last_name = smith可获得Spark(和pyspark)可以读取...

回答 1 投票 1

蜂巢中的减速器选择

我有以下记录集要处理,例如1000、1001、1002到1999、2000、2001、2002到2999、3000、3001、3002到3999,并且我想以这种方式使用HIVE处理以下记录集。 。

回答 1 投票 1

Hive Bucketing:唯一列值的数量大于存储桶数的数量

[在配置单元中,说我有一个拥有1000条记录的表员工,并且我正在处理主题列。主题列的总不同值是20,但我的存储桶总数是6。...

回答 2 投票 0

配置日期分区表-具有混合日期的S3中的流数据

我在使用Hive分区表方面拥有丰富的经验。我使用Hive2.X。我正在面试一个大数据解决方案架构师的角色,并被问到以下问题。问题:怎么会...

回答 1 投票 1

如何删除多个HDFS目录中最新创建的文件?

我犯了一个错误,并在按日期划分的表中添加了几百个零件文件。我能够看到哪些文件是新文件(这些是我要删除的文件)。我在这里看到的大多数情况都与...

回答 1 投票 0

在hadoop的同一分区中合并多个文件的最佳选择?

我有一个在event_date上分区的表,由于某种原因,当我将数据插入到外部表中时,有些日期只有一个或两个文件,而有些则超过200个。我总是使用此代码段...

回答 2 投票 0

使用限制时如何保持火花数据集的顺序,但>>

我有一个超过40万行的数据集。我需要从35万到370 000的2万行数据。我要做的是第一个dataset.limit(370000).except(dataset.limit(350000),但是当我需要顺序时...

回答 1 投票 0

spark中的分区发现未显示正确的分区号

[Spark分区发现不是基于文件夹结构对数据进行分区,我在其中有一个名为list的目录,我在每个国家/地区都有一个文件夹,其标签类似COUNTRY = US等,...

回答 1 投票 0

Hive托管表与外部表的可维护性

在维护加载,管理或外部数据方面,哪一种更好(从性能和长期运行角度来看更好?通过维护,我的意思是这些表将具有以下操作...

回答 1 投票 0

Hadoop的命令来查找名称节点中的一个节点

我试着步骤 - 登录到特定的节点 - 并执行命令JPS结果5144 JobTracker的4953 NameNode的5079 SecondaryNameNode 5216 JPS这是工作正常,但我知道什么其他...

回答 3 投票 0

如何在Amazon EMR中运行的Presto中将分区添加到分区表?

我在EMR 5.19.0中运行Apache Presto 0.212,因为AWS Athena不支持Presto支持的用户定义函数。我正在使用配置为使用胶合模式的EMR。我有预...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.