关于ODPS错误NoSuchObjectException的踩坑经历

简介: 背景:正在做一个odps查询相关的工具,使用sofaboot引入odps的sdk,一切都很顺利,之前技术验证的代码都是跑通的;然后,引入配置文件获取配置信息,再启动。。。就出现了下列的错误:Exception in thread "main" com.aliyun.odps.ReloadException: No such object.    at com.aliyun.od

背景:

正在做一个odps查询相关的工具,使用sofaboot引入odps的sdk,一切都很顺利,之前技术验证的代码都是跑通的;

然后,引入配置文件获取配置信息,再启动。。。

就出现了下列的错误:

Exception in thread "main" com.aliyun.odps.ReloadException: No such object.

    at com.aliyun.odps.LazyLoad.lazyLoad(LazyLoad.java:65)

    at com.aliyun.odps.Table.isVirtualView(Table.java:476)

    at com.aliyun.odps.Table.isPartitioned(Table.java:1314)

    at com.wjh.test002.main(test002.java:31)

Caused by: [404] com.aliyun.odps.NoSuchObjectException: No such object.

    at com.aliyun.odps.rest.RestClient.handleErrorResponse(RestClient.java:391)

    at com.aliyun.odps.rest.RestClient.request(RestClient.java:330)

    at com.aliyun.odps.rest.RestClient.request(RestClient.java:284)

    at com.aliyun.odps.rest.RestClient.request(RestClient.java:238)

    at com.aliyun.odps.rest.RestClient.request(RestClient.java:179)

    at com.aliyun.odps.Table.reload(Table.java:257)

    at com.aliyun.odps.LazyLoad.lazyLoad(LazyLoad.java:63)

    ... 3 more

Process finished with exit code 1

排查过程:

debug 内容:

Connected to the target VM, address: '127.0.0.1:52094', transport: 'socket'

Exception in thread "main" com.aliyun.odps.ReloadException: No such object.

    at com.aliyun.odps.LazyLoad.lazyLoad(LazyLoad.java:65)

    at com.aliyun.odps.Table.isVirtualView(Table.java:476)

    at com.aliyun.odps.Table.isPartitioned(Table.java:1314)

    at com.wjh.test002.main(test002.java:31)

Caused by: [404] com.aliyun.odps.NoSuchObjectException: No such object.

    at com.aliyun.odps.rest.RestClient.handleErrorResponse(RestClient.java:391)

    at com.aliyun.odps.rest.RestClient.request(RestClient.java:330)

    at com.aliyun.odps.rest.RestClient.request(RestClient.java:284)

    at com.aliyun.odps.rest.RestClient.request(RestClient.java:238)

    at com.aliyun.odps.rest.RestClient.request(RestClient.java:179)

    at com.aliyun.odps.Table.reload(Table.java:257)

    at com.aliyun.odps.LazyLoad.lazyLoad(LazyLoad.java:63)

    ... 3 more

Disconnected from the target VM, address: '127.0.0.1:52094', transport: 'socket'

无有效信息

重新写个最简单的测试代码:

Account account = new AliyunAccount(accessId2, accessKey2);
Odps odps = new Odps(account);
odps.setEndpoint(endPoint2);
odps.setDefaultProject(project2);
Boolean rt = false;
try {
    odps.tables().get("tmp_wjh_test001").isPartitioned();

} catch (OdpsException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

还是一样的错误

关键词搜索:odps.ReloadException: No such object 、ReloadException、odps.LazyLoad、odps.NoSuchObjectException: No such object、odps.NoSuchObjectException、RestClient.handleErrorResponse

还是找不到有效的参考信息,odps的这种错误记录内网基本没有找到

之前的关注点 一直在 reload Exception 那里,找不到方向,盲目测试耽误了很多时间;

第二天早上再次分析报错信息,RestClient.handleErrorResponse  再次让我开始怀疑网络问题,因为之前是可以跑通的,所以引发网络问题的只有一个地方,odps 的 endpoint 地址,会不会是地址配置错误了。。。 

虽然不想接受,但还是换成集团内的一个常用地址再测试,通了,一句歌词飘过:千言万语 只能无语。。。

解决方法:

阿里云的odps endpoint地址有多个,特别是集团统一使用的 地址有一些是被限制的,所以并不会爆出明确的地址错误信息;

换成 公网endpoint或者vpc网络endpoint就可以了 

反思:

相信已验证的代码的合理性,不要长时间怀疑自己写的有问题;

不要被一些不相关的报错信息干扰,用最小case验证,对比测试找出问题点;

这次把错误信息贴出来,希望再有同学遇到的时候可以搜索看到这里

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
12天前
|
SQL 分布式计算 监控
Sqoop数据迁移工具使用与优化技巧:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入解析Sqoop的使用、优化及面试策略。内容涵盖Sqoop基础,包括安装配置、命令行操作、与Hadoop生态集成和连接器配置。讨论数据迁移优化技巧,如数据切分、压缩编码、转换过滤及性能监控。此外,还涉及面试中对Sqoop与其他ETL工具的对比、实际项目挑战及未来发展趋势的讨论。通过代码示例展示了从MySQL到HDFS的数据迁移。本文旨在帮助读者在面试中展现Sqoop技术实力。
26 2
|
6月前
|
Dubbo Java 应用服务中间件
项目中引进这玩意,排查日志又快又准
随着微服务盛行,很多公司都把系统按照业务边界拆成了很多微服务,在排错查日志的时候,因为业务链路贯穿着很多微服务节点,导致定位某个请求的日志以及上下游业务的日志会变得有些困难。
|
4月前
|
数据采集 关系型数据库 MySQL
Kettle教程[2] 程序员小姐姐的第二次邂逅——JOB(作业)开发
Kettle教程[2] 程序员小姐姐的第二次邂逅——JOB(作业)开发
30 0
|
4月前
|
前端开发 Java 数据库连接
如何顺利完成毕业项目看完这篇文章有你想要的!
如何顺利完成毕业项目看完这篇文章有你想要的!
|
7月前
|
存储 JSON 算法
新手避坑:盘点使用ClickHouse最容易犯的12个错误
在这篇文章中,我们突出了新手用户遇到的最常见的12个问题,这些问题是由于在使用ClickHouse的过程中,不遵循最佳实践,甚至反最佳实践而导致的。对于每一个问题,我们都推荐了一个解决方案或正确的使用方法。
2573 18
新手避坑:盘点使用ClickHouse最容易犯的12个错误
|
9月前
|
运维 Java 关系型数据库
spug上线服务踩坑记
spug是一款优秀的自动化运维平台, 这让我们想自动化又向前迈了一步.
314 0
|
10月前
|
存储 人工智能
【一】曾经那些错误,你又踩坑了吗?(一)
【一】曾经那些错误,你又踩坑了吗?
40 0
|
10月前
|
存储 编译器 C++
【一】曾经那些错误,你又踩坑了吗?(二)
【一】曾经那些错误,你又踩坑了吗?
56 0
|
10月前
|
JavaScript 前端开发 API
每个 Bug 都值得认真对待:分享一个 debug 的案例,推荐给前端实习生参考
每个 Bug 都值得认真对待:分享一个 debug 的案例,推荐给前端实习生参考
214 0
|
11月前
|
前端开发 JavaScript ice
flexiwan项目踩坑实践
flexiManage是以色列一家初创公司flexiWAN开源的基于SD-WAN平台的应用层的框架,包括flexiManage服务端框架以及硬件侧的flexiAgent框架,然而其并没有开源前端框架,为了验证其SD-WAN方案的可行性,需要快速搭建一个前端应用
182 0

热门文章

最新文章