DataWorks运行报错,请问如何排查?

he specified bucket is not valid.我在maxcompute集成数据的时候接入oss数据,数据预览已经成功,运行报错,请问如何排查?

展开
收起
wenti 2023-02-14 15:10:19 392 分享 版权
2 条回答
写回答
取消 提交回答
  • 十分耕耘,一定会有一分收获!

    楼主你好,看看这个: 1、排查: Bucket是否存在 账号是否有Bucket的读写权限 配置的OSS是否属于公有云 2、解决方案 通过检查发现Bucket实际存在的,而且AK已经设置为admin账号了,同步任务还是失败,通过日志发现该OSS数据源配置的Endpoint是有问题的,和我们文档中提供的OSS公共云Endpoint格式不一致。该Endpoint是专有云OSS的Endpoint,由于Dataphin集成任务目前不支持专有云OSS,所以任务报错:The specified bucket is not valid. 在代码任务中,创建Shell任务来调JSON文件的方式去实现OSS->ODPS的数据同步,JSON结构体中cname参数的值就是用来区分公有云和专有云的地方,加上这个配置就可以正常进行数据同步了。

    2023-02-15 08:06:20
    赞同 展开评论
  • 可能创建OSS实例时,需要初始化ClientConfiguration配置,手动关闭CNAME选项。这里,就要换一个OSS构造方法啦,一个支持config的方法:

    public static void streamingDownload() {
        try {
            // 创建ClientConfiguration实例,按照您的需要修改默认参数
            ClientConfiguration config = new ClientConfiguration();
            // 关闭支持 CNAME 选项
            config.setSupportCname(false);
     
            // 1. 创建OSSClient实例
            OSSClient oss = new OSSClient(endpoint, accessKeyId, accessKeySecret, config);
     
            // 2.判断 要下载的文件 是否存在
            if (!ossClient.doesBucketExist(bucketName)) return;            // bucket 不存在
            // 3.判断 要下载的文件 是否存在
            if (!ossClient.doesObjectExist(bucketName, fileName)) return;  // fileName 不存在
     
            // 4.获取下载对象
            OSSObject ossObject = ossClient.getObject(bucketName, fileName);
            // 5.按行读取文件内容
            BufferedReader reader = new BufferedReader(new InputStreamReader(ossObject.getObjectContent()));
            while(true){
                String line = reader.readLine();
                if (line == null) break;
                // ... 结构化数据,业务逻辑
            }
     
            // 6.数据读取完成后,获取的流必须关闭,否则会造成连接泄漏,导致请求无连接可用,程序无法正常工作
            reader.close();
            // 7.关闭oss
            ossClient.shutdown();
        } catch (IOException e) {
            e.fillInStackTrace();
        }
    }
    
    2023-02-15 08:06:17
    赞同 展开评论

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

收录在圈子:
+ 订阅
还有其他疑问?
咨询AI助理