首页 数据库 mysql教程 升级到hive0.13 问题记录

升级到hive0.13 问题记录

Jun 07, 2016 pm 04:37 PM
hive 分区 升级 记录 问题

hive单表分区数过多(实际上分区数越多查询越慢,应控制分区数在5000以下),执行查询报错: java.lang.OutOfMemoryError: Java heap space 参考:OOM occurs when query spans to a large number of partitions 原因: hive会在执行查询时先将元数据中的分

hive单表分区数过多(实际上分区数越多查询越慢,应控制分区数在5000以下),执行查询报错:
java.lang.OutOfMemoryError: Java heap space
参考:OOM occurs when query spans to a large number of partitions
原因:
hive会在执行查询时先将元数据中的分区信息加载到内存中,包括PARTITIONS、PARTITION_KEY_VALS、PARTITION_PARAMS等表的数据,如果分区数过多,这些表中的数据量也越大,hiveserver2默认的堆内存只有256M,因此heap不足。
如果hive-site.xml配置mapred.reduce.tasks数目较多(默认为-1,即slave个数),会导致每个查询job产生更多的map过程,同时分区数较多,加大了单个mapred加载的分区数据量。而在mapred-site.xml中的配置占用内存过低也会导致查询执行过程中报错,可适当调整:mapred.child.java.opts=-Xmx512m -XX:+UseConcMarkSweepGC
解决:按照其他规则分区,降低目标表分区数,修改hive-env.sh,加入配置:export HADOOP_HEAPSIZE=2048
hive0.12升级到0.13后启动hiveserver2,beeline登入执行任何查询均报错:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.conf.Configuration.unset(Ljava/lang/String;)V
原因:hadoop1.0.3中没有Configuration.unset(String)这个方法,对比API可知:Configuration2.2.0、Configuration1.0.4。
参考:NoSuchMethodError exception when using HIVE 0.13 with Hadoop 1.0.4
修复:以下三种方法任选其一
hiveserver2启动时加入参数:hiveserver2 –hiveconf fs.permissions.umask-mode=022
修改1.0.3源码:org/apache/hadoop/hive/ql/exec/Utilities.java,将第3417行改为:conf.set(“fs.permissions.umask-mode”, “”);
重新编译后将该类替换到hive-exec-0.13.0.jar包中。
修改hive-site.xml,加入以下配置:

fs.permissions.umask-mode
022
Setting a value for fs.permissions.umask-mode to work around issue in HIVE-6962.
It has no impact in hadoop 1.x line on hdfs operations.

升级到hive0.13后,hue3.5无法正常工作,hue提示如下:
Bad status for request TFetchResultsReq(operationHandle=TOperationHandle(hasResultSet=False, modifiedRowCount=None, operationType=0
hive.log中报错类似如下:
org.apache.hive.service.cli.HiveSQLException: Invalid SessionHandle: SessionHandle [64b07190-9db8-43c8-a600-b93453be887b]
参考:hue 3.5.0 not work with hive 0.13、HUE-2095 [beeswax] Do not fetch statements without a resultset
原因:查看patch提供的TCLIService.thrift,第504行结构体TOperationHandle的定义中有说明,布尔值hasResultSet如果为true,则operation回调会生成一个可获取的结果集,注意这个结果集不为None但是可能size=0,若为false,则返回的结果集为None,这时再去遍历就会抛异常。
修复:下述方法由难到易任选其一
升级hue到3.6版本,下载地址:hue.zip,或使用git下载后重新安装:git clone http://go.rritw.com/github.com/cloudera/hue.git
将现有的hue3.5合并分支到3.6版本(风险较大,未经测试),查看分支:git branch -l
或者直接修改python文件:hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py

class HiveServerDataTable(DataTable):
   def __init__(self, results, schema, operation_handle):
     self.schema = schema and schema.schema
     self.operation_handle = operation_handle
     if results is not None:
         self.row_set = HiveServerTRowSet(results.results, schema)
         self.has_more = not self.row_set.is_empty()    # Should be results.hasMoreRows but always True in HS2
         self.startRowOffset = self.row_set.startRowOffset    # Always 0 in HS2
-----------------------------------------------------------------------------------------
   def fetch_result(self, operation_handle, orientation=TFetchOrientation.FETCH_NEXT, max_rows=1000): 
     if operation_handle.hasResultSet:
       meta_req = TGetResultSetMetadataReq(operationHandle=operation_handle)
       schema = self.call(self._client.GetResultSetMetadata, meta_req)
       fetch_req = TFetchResultsReq(operationHandle=operation_handle, orientation=orientation, maxRows=max_rows)
       res = self.call(self._client.FetchResults, fetch_req)
     else:
       schema = None
       res = None 
     return res, schema
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Conda升级Python版本的几种方法 Conda升级Python版本的几种方法 Feb 18, 2024 pm 08:56 PM

Conda升级Python版本的几种方法,需要具体代码示例概述:Conda是一个开源的包管理器和环境管理系统,用于管理Python包和环境。在使用Python开发过程中,为了使用新版本的Python,我们可能需要从较旧的Python版本升级。本文将介绍使用Conda升级Python版本的几种方法,并提供具体的代码示例。方法一:使用condainstall命

拼多多买过的东西在哪里查看记录 查看买过的商品记录的方法 拼多多买过的东西在哪里查看记录 查看买过的商品记录的方法 Mar 12, 2024 pm 07:20 PM

  拼多多软件内提供的商品好物非常多,随时随地想买就买,而且每一件商品质量都是严格把关的,件件商品都是正品,不同还有非常多优惠的购物折扣,让大家网购根本停不下来。输入手机号在线登录,在线添加多个收货地址和联系方式,可以随时查看最新的物流动态,不同品类的商品板块都是开放的,搜索上下滑动选购下单,足不出户轻松体验便捷的网购服务,还能查看所有的购买记录,包括自己买过的商品,数十个购物红包、优惠券免费领取使用,现在小编在线详细为拼多多用户们带来查看买过的商品记录的方法。  1.打开手机,点击拼多多图标,

升级numpy版本:详细易学的指南 升级numpy版本:详细易学的指南 Feb 25, 2024 pm 11:39 PM

如何升级numpy版本:简单易懂的教程,需要具体代码示例引言:NumPy是一个重要的Python库,用于科学计算。它提供了一个强大的多维数组对象和一系列与之相关的函数,可用于进行高效的数值运算。随着新版本的发布,不断有更新的特性和Bug修复可供我们使用。本文将介绍如何升级已安装的NumPy库,以获取最新特性并解决已知问题。步骤1:检查当前NumPy版本在开始

win10系统升级后不能上网的处理教程 win10系统升级后不能上网的处理教程 Mar 27, 2024 pm 02:26 PM

1、使用win+x快捷键打开菜单,选择【命令提示符(管理员)(A)】,如下图所示:2、进入到命令提示符界面后,输入【ipconfig/flushdns】命令按回车,如下图所示:3、接着输入【netshwinsockresetcatalog】命令按回车,如下图所示:4、最后输入【netshintipreset】命令按回车,重启电脑就可以上网了,如下图所示:

小艺升级为智能体!HarmonyOS NEXT鸿蒙原生智能开启全新AI时代 小艺升级为智能体!HarmonyOS NEXT鸿蒙原生智能开启全新AI时代 Jun 22, 2024 am 01:56 AM

6月21日,华为开发者大会2024(HDC2024)再聚东莞松山湖。本届大会上,最令人关注的莫过于HarmonyOSNEXT正式面向开发者和先锋用户启动Beta,并全方位展示了HarmonyOSNEXT全场景、原生智能和原生安全三大“王炸”级创新特性。HarmonyOSNEXT原生智能:开启全新AI时代放弃安卓框架之后,HarmonyOSNEXT成为真正独立于安卓、iOS的操作系统,堪称是一场史无前例的脱胎换骨。在其众多新特性中,原生智能无疑是最能带给用户直观感受和体验升级的新特性

详解荣耀手机升级到鸿蒙系统的方法 详解荣耀手机升级到鸿蒙系统的方法 Mar 25, 2024 am 11:51 AM

在一片新的科技领域中,新的操作系统总是备受关注。近日,荣耀手机宣布将会升级到华为开发的全新操作系统——鸿蒙系统。对于许多荣耀手机用户来说,这无疑是一大利好消息。但是,很多用户或许对如何升级到鸿蒙系统还存在疑惑。本文将详细解释荣耀手机升级到鸿蒙系统的方法,帮助用户更好地了解并操作。首先,要升级荣耀手机到鸿蒙系统,用户需要保证手机已经连接到网络,并且电量充足。此

怎么升级wps版本?wps office怎么更新版本? 怎么升级wps版本?wps office怎么更新版本? Mar 14, 2024 am 08:43 AM

  wps是很多用户必备的电脑软件,定期更新新版本可以让用户获取更好的使用体验和更多的功能特性。那么wps要怎么升级版本呢?wpsoffice升级主要分为三种方法,下面一起来看看吧。  方法一:从官网下载新版本  你可以在WPSOffice官网上下载最新版本的安装包。进入WPSOffice官网(https://www.wps.cn/)后,点击「下载」按钮,选择你需要下载的版本,然后按照提示安装即可。  注意:安装新版本时,需要卸载旧版本,否则会导致软件冲突,无法正常使用。  方法二:在WPSOf

小红书如何升级为专业号 小红书如何升级为专业号 Mar 01, 2024 pm 04:00 PM

很多朋友表示想知道在小红书里怎样去升级成为专业号,下面为大家介绍一下操作方法,感兴趣的朋友和我一起来看看吧。打开手机上的“小红书”APP,进入后点击右下方的“我的”选项,接着在我的页面中找到左上角的“三条横线”图标并点击打开。2.这时会弹出一个菜单页,在其中点击选择“创作中心”这一项进入。3.接下来在进入的页面里“创作服务”下的选项中找到“更多服务”,并在上面点击进入。4.页面跳转后,在“作者能力”下方的选项里点击“开通专业号“这一项。5.最后在进入的页面里会对小红书专业号进行介绍,在底部点击“

See all articles