iceberg集成hive,insert失败问题排查与解决

2024-01-09

背景:

创建iceberg表成功

CREATE TABLE iceberg_test1 (i int)
STORED BY 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler';

insert数据失败

INSERT INTO iceberg_test1 values(1);

hive的hive.execution.engine为mr

报错:

FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
MapReduce Jobs Launched: 
Stage-Stage-2: Map: 1   Cumulative CPU: 10.77 sec   HDFS Read: 170682 HDFS Write: 2654 FAIL
Total MapReduce CPU Time Spent: 10 seconds 770 msec

查看hive.log无异常
查看hadoop log, resourcemanager 的日志:

org.apache.iceberg.hive.RuntimeMetaException: Failed to connect to Hive Metastore\n	
at org.apache.iceberg.hive.HiveClientPool.newClient(HiveClientPool.java:84)\n	
at org.apache.iceberg.hive.HiveClientPool.newClient(HiveClientPool.java:34)\n	
at org.apache.iceberg.ClientPoolImpl.get(ClientPoolImpl.java:125)\n	
at org.apache.iceberg.ClientPoolImpl.run(ClientPoolImpl.java:56)\n	
at org.apache.iceberg.ClientPoolImpl.run(ClientPoolImpl.java:51)\n	
at org.apache.iceberg.hive.CachedClientPool.run(CachedClientPool.java:122)\n	
at org.apache.iceberg.hive.HiveTableOperations.doRefresh(HiveTableOperations.java:158)\n	
at org.apache.iceberg.BaseMetastoreTableOperations.refresh(BaseMetastoreTableOperations.java:97)\n	
at org.apache.iceberg.BaseMetastoreTableOperations.current(BaseMetastoreTableOperations.java:80)\n	
at org.apache.iceberg.BaseMetastoreCatalog.loadTable(BaseMetastoreCatalog.java:47)\n	at org.apache.iceberg.mr.Catalogs.loadTable(Catalogs.java:124)\n	
at org.apache.iceberg.mr.Catalogs.loadTable(Catalogs.java:111)\n	
at org.apache.iceberg.mr.hive.HiveIcebergOutputCommitter.commitTable(HiveIcebergOutputCommitter.java:320)\n	
at org.apache.iceberg.mr.hive.HiveIcebergOutputCommitter.lambda$commitJob$2(HiveIcebergOutputCommitter.java:214)\n
at org.apache.iceberg.util.Tasks$Builder.runTaskWithRetry(Tasks.java:413)\n	
at org.apache.iceberg.util.Tasks$Builder.runSingleThreaded(Tasks.java:219)\n	
at org.apache.iceberg.util.Tasks$Builder.run(Tasks.java:203)\n	
at org.apache.iceberg.util.Tasks$Builder.run(Tasks.java:196)\n	
at org.apache.iceberg.mr.hive.HiveIcebergOutputCommitter.commitJob(HiveIcebergOutputCommitter.java:207)\n	
at org.apache.hadoop.mapred.OutputCommitter.commitJob(OutputCommitter.java:291)\n	
at org.apache.hadoop.mapreduce.v2.app.commit.CommitterEventHandler$EventProcessor.handleJobCommit(CommitterEventHandler.java:286)\n	
at org.apache.hadoop.mapreduce.v2.app.commit.CommitterEventHandler$EventProcessor.run(CommitterEventHandler.java:238)\n	
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n	
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n	
at java.lang.Thread.run(Thread.java:748)\nCaused by: java.lang.NoClassDefFoundError: com/facebook/fb303/FacebookService$Iface\n	at java.lang.ClassLoader.defineClass1(Native Method)\n	at java.lang.ClassLoader.defineClass(ClassLoader.java:756)\n	
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)\n	
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)\n	
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)\n	
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)\n	
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)\n	
at java.security.AccessController.doPrivileged(Native Method)\n	
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)\n	
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)\n	
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)\n	
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)\n	
at java.lang.Class.forName0(Native Method)\n	at java.lang.Class.forName(Class.java:348)\n	at org.apache.hadoop.hive.metastore.utils.JavaUtils.getClass(JavaUtils.java:52)\n	
at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:146)\n	at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:119)\n	at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:112)\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n	
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n	
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	
at java.lang.reflect.Method.invoke(Method.java:498)\n	
at org.apache.iceberg.common.DynMethods$UnboundMethod.invokeChecked(DynMethods.java:60)\n	
at org.apache.iceberg.common.DynMethods$UnboundMethod.invoke(DynMethods.java:72)\n	
at org.apache.iceberg.common.DynMethods$StaticMethod.invoke(DynMethods.java:185)\n	
at org.apache.iceberg.hive.HiveClientPool.newClient(HiveClientPool.java:63)\n	... 24 more\nCaused by: java.lang.ClassNotFoundException: com.facebook.fb303.FacebookService$Iface\n	
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)\n	
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)\n	
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)\n	
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)\n	... 50 more\n\n,totalAllocatedContainers=2

其中

at java.lang.Thread.run(Thread.java:748)\nCaused by: java.lang.NoClassDefFoundError: com/facebook/fb303/FacebookService$Iface\n 

格外刺眼

想起来在部署 hive 的时候在lib中加了 libfb303-0.9.3.jar ,那么 是不是在hadoop中也要加上

解决:

随便找了个hadoop的lib文件夹 ~/hadoop-3.2.3/share/hadoop/common/lib ,把 libfb303-0.9.3.jar 加进去

ps.前提是在 mapred-site.xml mapreduce.application.classpath 配置过相关路径。

再次执行,成功
在这里插入图片描述

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

iceberg集成hive,insert失败问题排查与解决 的相关文章

随机推荐

  • VD4056H 输入高耐压30V 带OVP反接功能 适用于TYPEC口的高浪涌电压

    VD4056H是一款高集成度 高性价比的单节锂离子电池充电器 它采用恒定电流 恒定电压线性控制 只需较少的外部元件数目 使得其成为便携式应用的理想选择 同时也适合USB电源和适配器电源工作 VD4056H采用了内部P MOSFET架构 并含
  • vue使用elementui select下拉库组件鼠标hover出现下拉框

    mounted 生命周期里去监听 鼠标进入和鼠标移出事件 this refs mySelect addEventListener mouseenter function this querySelector selectel el sele
  • nohup - 后台执行

    nohup no hang up 语法 nohup Command Arg 使用示例 nohup python a py 日志将被保留在 当前文件夹下的 nohup out 将日志放到文件 不输出到终端 echo hello gt 1 tx
  • ECMAScript简介及特性介绍

    ECMAScript 简称ES 是JavaScript的规范 同时也是被广泛采用和实现的脚本语言标准 从最初的1996年推出第一版至今 ECMAScript已经经历了数十年的发展和改进 成为了互联网开发中的重要基石之一 本文将对ECMASc
  • Go、Docker、云原生学习笔记全攻略:从零开始,一步步走向精通!(2024版)

    第一章 Go语言学习宝典 一 介绍 01 Go 语言的前生今世 二 开发环境搭建 01 Go 语言开发环境搭建 三 初识GO语言 01 Go 多版本管理工具 02 第一个 Go 程序 hello world 与 main 函数 03 Go
  • 稀土是金属吗,为什么叫稀土,是用来干什么的。

    问题描述 稀土是金属吗 为什么叫 土 是用来干什么的 问题解答 是的 稀土是金属元素的一类 稀土是指一组化学元素 它们属于周期表中的镧系元素 包括镧 La 铈 Ce 钕 Pr 钷 Pm 钐 Sm 铕 Eu 钆 Gd 铽 Tb 镝 Dy 钬
  • Google Earth Engine(GEE)深度学习入门教程- GEE导出篇

    GEE导出篇 官方教程 TFRecord 和地球引擎 在GEE的JS Code Editor中 我们按照我们的需要去处理对应的遥感影像 得到处理后Image影像 为了导出后读取数据 在导出前 一定清楚每个波段的名称 不然没法读取 深度学习数
  • 服务器集群是如何提高计算性能的?

    服务器集群是一种将多台服务器连接起来协同工作的技术 通过集群配置 可以提高计算性能 可靠性和可扩展性 以下是服务器集群如何提高计算性能的详细解释 一 并行处理能力 服务器集群的核心优势在于其并行处理能力 通过将多个服务器组成一个集群 可以将
  • @WebFilter注解

    WebFilter注解是Java Servlet规范中的一种注解 用于声明一个过滤器 过滤器是Servlet规范中的一种组件 用于在请求到达Servlet之前或者响应离开Servlet之后 对请求或者响应进行一些处理 WebFilter注解
  • AntDB内存管理之内存上下文之如何使用内存上下文

    5 如何使用内存上下文 使用内存上下文之前 我们需要先对其进行创建 AntDB启动时已经创建并初始化好了部分内存上下文 例如 TopMemoryContext 这个TopMemoryContext是所有内存上下文的父节点或者祖先节点 一般我
  • 开发人员指南从以太坊迁移到 Solana

    这篇文章是关于什么的 以太坊是近期最重要的创新之一 历史上第一次 我们有了一个为社会协调而建立的去中心化全球平台 它有可能彻底改变许多行业 尽管重要 但以太坊的运行环境 以太坊虚拟机 EVM 目前的状态并不是为消费级应用而构建的 它是一个单
  • 这些专利知识你知道吗?

    专利作为一种重要的知识产权保护形式 专利不仅成为了企业核心竞争力的重要组成部分 也成为了国家创新发展的重要支撑 专利是指国家专利主管机关授予发明创造申请人的一种专有权 这种专有权具有独占性 排他性和法律强制性 能够为持有者带来经济利益和竞争
  • 如何给 unplugin-vue-components/vite 写一个简单的 resolver

    大部分工作 unplugin vue components 都已经处理好了 我们只需要接收组件名来判断是否是自己的组件 然后处理对应的导入逻辑 一共 3 个字段 as 重命名类似 import componentNameReName fro
  • The Planets:Venus

    靶场下载 The Planets Venus VulnHub 信息收集 arp scan l Interface eth0 type EN10MB MAC 00 0c 29 43 7c b1 IPv4 192 168 1 60 Starti
  • 详解Nacos和Eureka的区别

    在微服务架构中 服务发现是一个重要的环节 它能够帮助微服务实例进行相互通信 Nacos和Eureka是两种广泛使用的开源服务发现组件 它们在功能和实现上存在一些差异 本文将详细解析Nacos和Eureka在服务发现方面的主要区别 Nacos
  • MQ发送消息和监听消息

    private static List routingKey routingKey的名字 与业务关联 1 发送 rabbitTemplate convertAndSend routingKey 发送的内容 可以是业务代码定义好的实体类 2
  • 如何解读服务器的配置和架构?

    在当今数字化时代 服务器作为企业或组织的重要基础设施 其配置和架构对于保障业务的稳定运行至关重要 如何解读服务器的配置和架构 成为了一个备受关注的话题 本文将围绕服务器配置和架构的解读进行深入探讨 帮助读者更好地理解服务器的性能 扩展性和安
  • 从不同维度的调研数据,看企业数字化转型

    数字化转型逐渐成为企业增长和价值创造的新引擎 然而 在复杂的背景下 企业数字化转型也面临着前所未有的挑战和机遇 未来 我们还能做些什么 怎么做 这成为了各企业高管当前亟需厘清的问题 企业做数字化转型的原因 总体来看 大部分受访企业做数字化转
  • Java中SpringBoot组件集成接入【slf4j日志文档】

    Java中SpringBoot组件集成接入 slf4j日志文档 1 slf4j简介 2 maven依赖 3 配置 4 使用 5 展示 6 参考文章 1 slf4j简介 SLF4J Simple Logg
  • iceberg集成hive,insert失败问题排查与解决

    背景 创建iceberg表成功 CREATE TABLE iceberg test1 i int STORED BY org apache iceberg mr hive HiveIcebergStorageHandler insert数据