Hive Map join:内存不足异常

2024-01-23

我正在尝试使用一个大表(10G)和一个小表(230 MB)来执行地图端。对于较小的情况,在连接关键列后,我将使用所有列来生成输出记录

我使用了以下设置

设置 hive.auto.convert.join=true;

设置 hive.mapjoin.smalltable.filesize=262144000;

Logs :

**2013-09-20 02:43:50     Starting to launch local task to process map join;      maximum       memory = 1065484288

2013-09-20 02:44:05     Processing rows:        200000  Hashtable size: 199999  Memory usage:   430269904       rate:0.404

2013-09-20 02:44:14     Processing rows:        300000  Hashtable size: 299999  Memory usage:   643070664       rate:0.604

Exception in thread "Thread-0" java.lang.OutOfMemoryError: Java heap space
        at java.util.jar.Manifest$FastInputStream.<init>(Manifest.java:313)
        at java.util.jar.Manifest$FastInputStream.<init>(Manifest.java:308)
        at java.util.jar.Manifest.read(Manifest.java:176)
        at java.util.jar.Manifest.<init>(Manifest.java:50)
        at java.util.jar.JarFile.getManifestFromReference(JarFile.java:168)
        at java.util.jar.JarFile.getManifest(JarFile.java:149)
        at sun.misc.URLClassPath$JarLoader$2.getManifest(URLClassPath.java:696)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:228)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        at org.apache.hadoop.util.RunJar$1.run(RunJar.java:126)
Execution failed with exit status: 3
Obtaining error information
Task failed!
Task ID:
  Stage-7
Logs:
FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.MapredLocalTask
ATTEMPT: Execute BackupTask: org.apache.hadoop.hive.ql.exec.MapRedTask**

但我仍然面临 OOM 异常,集群中设置的堆大小为 1 GB。 请协助我需要考虑和调整哪些属性才能使此地图侧连接工作


处理行数:300000 哈希表大小:299999 内存使用量:643070664 速率:0.604

在 300k 行时,HT 已经使用了堆的 60%。要问的第一个问题:您确定表顺序正确吗?连接中的小表真的是数据中较小的表吗?编写查询时,大表应该是 JOIN 子句中的最后一个。您使用的是 0.9 还是 0.11 哪个 Hive 版本?

如果您使用的是 Hive 0.11 并且正确指定了连接,那么首先要尝试的是增加堆大小。从上面的数据(300k 行 ~> 650Mb 堆)你可以算出你需要多少堆。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hive Map join:内存不足异常 的相关文章

  • CouchDB“加入”两个文档

    我有两个看起来有点像这样的文档 Doc id AAA creator id data DataKey id credits left 500 times used 0 data id AAA 我想要做的是创建一个视图 它允许我传递 Data
  • 如何读取 RCFile

    我正在尝试将一个小的 RCFile 约 200 行数据 读入 HashMap 中以进行 Map Side 连接 但是在将文件中的数据变为可用状态时遇到了很多麻烦 这是我到目前为止所拥有的 其中大部分来自这个例子 http sumit1001
  • Hive Full Outer Join为相同的Join Key返回多行

    我正在对同一列上的 4 个表进行完全外连接 我想为连接列中的每个不同值仅生成 1 行 输入是 employee1 employee1 personid employee1 name 111 aaa 222 bbb 333 ccc
  • 如果没有可用的指定分区路径,SPARK SQL 会失败

    我在 EMR 中使用 Hive Metastore 我可以通过 HiveSQL 手动查询表 但是当我在 Spark Job 中使用同一个表时 它说输入路径不存在 s3 导致 org apache hadoop mapred InvalidI
  • Hadoop YARN 作业陷入映射 0% 并减少 0%

    我正在尝试运行一个非常简单的作业来测试我的 hadoop 设置 所以我尝试使用 Word Count Example 它陷入了 0 所以我尝试了一些其他简单的作业 并且每个作业都陷入了困境 52191 0003 14 07 14 23 55
  • 如何获取hive中的数据库用户名和密码

    正在编写jdbc程序来连接hive数据库 我希望在连接 url 中提供用户名和密码 我不知道如何使用 hive QL 获取用户名和密码 有人可以帮我吗 Exception in thread main java sql SQLNonTran
  • Hive:转换“yyyy-MM-dd'T'HH:mm:ss.SSS'Z'”中缺少秒数的字符串日期时间

    我使用以下代码将字符串日期时间变量转换为日期时间 但转换后的字符串缺少 SSS 部分 使用的代码 cast FROM UNIXTIME UNIX TIMESTAMP oldtime yyyy MM dd T HH mm ss SSS Z y
  • hive中每行的百分比计算

    我在配置单元中有一个具有以下架构的表 差值 int 计数值 int 值为 5 2 30 1 90 1 100 1 现在我想找到每个 count value 与 count value 总和的百分比 每行的值类似于 count value s
  • 使用 Hadoop MapReduce 的计算语言学项目构想

    我需要做一个关于计算语言学课程的项目 是否有任何有趣的 语言 问题 其数据密集程度足以使用 Hadoop MapReduce 来解决 解决方案或算法应尝试分析并提供 语言 领域的一些见解 但是它应该适用于大型数据集 以便我可以使用 hado
  • java.io.IOException:无法获取 LocationBlock 的块长度

    我正在使用 HDP 2 1 对于集群 我遇到了以下异常 并且 MapReduce 作业因此失败 实际上 我们定期使用 Flume 版本的数据创建表 1 4 我检查了映射器尝试读取的数据文件 但我找不到任何内容 2014 11 28 00 0
  • 将多个前缀行过滤器设置为扫描仪 hbase java

    我想创建一台扫描仪 它可以为我提供带有 2 个前缀过滤器的结果例如 我想要其键以字符串 x 开头或以字符串 y 开头的所有行 目前我知道只能使用一个前缀 方法如下 scan setRowPrefixFilter prefixFiltet 在
  • Hive 中字符串数据类型是否有最大大小?

    谷歌了很多 但没有在任何地方找到它 或者这是否意味着只要允许集群 Hive 就可以支持任意大字符串数据类型 如果是这样 我在哪里可以找到我的集群可以支持的最大字符串数据类型大小 提前致谢 Hive 列表的当前文档STRING作为有效的数据类
  • Hive 中 Sortby 和 orderby 查询的区别

    Hive sort by and order by命令用于按排序顺序获取数据 例如 Sort by hive gt SELECT E EMP ID FROM Employee E SORT BY E empid Order by hive
  • 在 mongo 中,如何使用 Map Reduce 来按最近排序来获取组

    我看到的 MapReduce 示例使用了诸如 count 之类的聚合函数 但是使用 MapReduce 来获取每个类别中前 3 个项目的最佳方法是什么 我假设我也可以使用 group 函数 但很好奇 因为他们声明分片环境不能使用 group
  • AWS Athena 扁平化来自嵌套 JSON 源的数据

    我想从 Athena 中的嵌套 JSON 创建一个表 描述的解决方案here http docs aws amazon com athena latest ug json html使用 hive Openx JsonSerDe 等工具尝试在
  • Hadoop:读取ORC文件并放入RDBMS中?

    我有一个以 ORC 文件格式存储的配置单元表 我想将数据导出到 Teradata 数据库 我研究了 sqoop 但找不到导出 ORC 文件的方法 有没有办法让 sqoop 为 ORC 工作 或者有什么其他工具可以用来导出数据 Thanks
  • 为 Presto 和 AWS S3 设置独立 Hive Metastore 服务

    我工作的环境中使用 S3 服务作为数据湖 但没有 AWS Athena 我正在尝试设置 Presto 以便能够查询 S3 中的数据 并且我知道我需要通过 Hive Metastore 服务将数据结构定义为 Hive 表 我正在 Docker
  • 如何在蜂巢中的每个组中按计数 desc 进行排序?

    这是 HQL select A B count as cnt from test table group by A B order by cnt desc 示例输出如下 a1 b1 5 a2 b1 3 a1 b2 2 a2 b2 1 但我想
  • Riak 在 MapReduce 查询中失败。使用哪种配置?

    我正在与 riak riak js 结合开发一个 nodejs 应用程序 并遇到以下问题 运行此请求 db mapreduce add logs run 正确返回存储在存储桶日志中的所有 155 000 个项目及其 ID logs 1GXt
  • 如何创建 HIVE 表来读取分号分隔值

    我想创建一个 HIVE 表 该表将以分号分隔的值读取 但我的代码不断给出错误 有没有人有什么建议 CREATE TABLE test details Time STRING Vital STRING sID STRING PARTITION

随机推荐

  • 如何修复 Xcode“DTAssetProviderService 无法启动..”错误?

    我已经升级了 macOS Sierra Developer Preview 但是我的Xcode 7 3 1尝试在模拟器上运行我的项目时出现以下错误 此外 Generic to archieve 还给出了另一个错误 例如 此外 对于存档 发生
  • 如何将此 SQL 查询转换为 LINQ 或 Lambda 表达式?

    我有以下 SQL 查询 SELECT C ID C Name FROM Category C JOIN Layout L ON C ID L CategoryID JOIN Position P ON L PositionID LIKE C
  • 无法使用 Desktop Docker 设置通过节点端口访问 Kubernetes 服务

    我在 Windows 10 上使用 Docker Desktop 我生成 kubernetes NodePort 服务以从客户端 Web 浏览器访问 http 10 110 201 24 30008 hello praveen http 1
  • 停留在基本的 Linq to XML 查询上

    我正在尝试从 namecheap 沙箱 api 中提取信息 但无法弄清楚为什么我的 linq 查询不起作用 这是一个示例响应 XML
  • php 中的文件锁定

    我有一个新人 隔壁的少年 编写了一些 php 代码来跟踪我网站上的一些使用情况 我不熟悉 php 所以我想问一些关于并发文件访问的问题 我的本机应用程序 在 Windows 上 偶尔会通过点击包含我的 php 脚本的 URL 来将一些数据记
  • 从地图外部将对象拖放到 Google 地图中:标记未放置在正确的纬度/经度处

    我想从地图外部将一个对象拖到我的 Google 地图 API V3 中 经过一番研究 我发现这个非常有帮助的帖子 https stackoverflow com a 5921814 1866810我尝试将其适应我的项目 主要思想是在地图上拖
  • MVC路由问题

    我想按如下方式设置路由 Profile Edit gt 编辑操作的路由 Profile Add gt 添加操作的路由 Profile username gt 使用参数 username 路由到 Index 操作 因为操作用户名不存在 所以我
  • EventBus 和 RxJava 有什么区别? [复制]

    这个问题在这里已经有答案了 我对 android 中的 EventBus 和 RxJava 之间的区别感到困惑 我需要实现其中之一来解决我的问题 即在完成某些更改后通知某些组件 以便它们可以更新其状态 另外 我读到 EventsBus 已因
  • Java 禁用 dpi 感知不起作用

    我正在尝试运行 Java 应用程序 Dsun java2d dpiaware false争论但什么也没发生 我希望有一个模糊的用户界面 但对于正常大小的图标和字体 这个标志似乎不起作用 我在 Windows 8 1 上使用 JDK 1 8
  • 从 pySpark SQL 写入远程 mysql 数据库 (JDBC) 获取新行 id

    我正在使用 pyspark sql 使用 JDBC 在远程 mysql 数据库中创建行 我有两张桌子 parent table id value and child table id value parent id 所以每一行parent
  • 如何关闭颜色并删除 Git 日志中的时间?

    正如标题所说 如何关闭颜色并去除时间 因为我需要将输出复制到pbcopy 但颜色模式会使输出包含特殊字符 我已将以下内容添加到 gitconfig文件 以删除大部分颜色 color ui false branch false diff fa
  • 为什么 ConcurrentSkipListSet 升序迭代器比降序迭代器“更快”?

    我在 ConcurrentSkipListSet 上使用 DescendingIterator 方法 我刚刚检查了文档并注意到以下评论 升序视图及其迭代器比降序视图及其迭代器更快 See https docs oracle com java
  • 如何通用地创建从泛型类型继承的存储库?

    我目前正在尝试实施存储库模式在我的 DbContext 之上 问题是 我最终遇到了一种情况 我必须将多个存储库注入到一个UnitOfWork构造函数 像这样 public class UnitOfWork private DbContext
  • 我可以找到最后一次值更改的时间戳吗

    给定一个时间序列 是否可以找到最后一个值变化的时间戳 例如 一个 cron 作业每晚运行 它首先运行 rsync 作业 然后计算目标目录的大小 实际的指标值并不是那么重要 但我想验证它实际上每天晚上都会发生变化 是否可以创建一个返回标量值以
  • 反转多对多字典>

    实际上我之前的问题 https stackoverflow com questions 1324912 convert dictionaryint enumerable to dictionaryint enumerable inverti
  • 使用 Linux、iOS、蓝牙、Bonjour、GameKit 进行 PAN —— 可能吗?

    所以我读了关于这个问题的不同看法 我想我读了所有相关的问题 我可以在 PAN 中连接吗 我可以编写一个应用程序来通过蓝牙连接我的 Linux 机器和我的 iOS 设备吗 使用或不使用 Bonjour 或 GameKit 几个必备条件 iOS
  • 通用数组创建错误

    我正在尝试创建一个具有通用顶点和邻接列表的 Graph 类 并且在以下代码的第 10 行处收到通用数组创建错误 早些时候我在第 11 行遇到了同样的错误 但它通过强制转换解决了 但这个错误仍然存 在 代码中有什么问题 import java
  • 为什么这段 Python 代码运行了两次? [复制]

    这个问题在这里已经有答案了 我有一个 Python 脚本 只有这两行 import requests print len dir requests 它打印 12 48 当我打印实际列表时dir requests 我明白了 author bu
  • 我如何识别通用类?

    我怎样才能识别 NET2 一个泛型类 Class A Of T End Class not work If TypeOf myObject Is A Then 如果用 c 的话会是这样的 public class A
  • Hive Map join:内存不足异常

    我正在尝试使用一个大表 10G 和一个小表 230 MB 来执行地图端 对于较小的情况 在连接关键列后 我将使用所有列来生成输出记录 我使用了以下设置 设置 hive auto convert join true 设置 hive mapjo