云服务器内容精选

  • 故障分析 排查客户CDM昨天日志报错发现报错:2021-09-29 10:35:32,638 ERROR LocalJobRunner Map Task #13 #loader [org.apache.sqoop.connector.hive.hiveWriter.HiveOrcWriter:83] Create file system error. java.nio.file.AccessDeniedException: obs-itotshujuruhu-bingxing-fangcongyang: doesBucketExist on obs-itotshujuruhu-bingxing-fangcongyang: com.obs.services.exception.ObsException: Error message:Request Error.OBS servcie Error Message. -- ResponseCode: 403 根据报错“hiveWriter.HiveOrcWriter:83] Create file system error”以及“Error.OBS servcie Error Message. -- ResponseCode: 403”考虑是Hive同步表到OBS目录报错。用户配置连接器时候,没有打开OBS开关。 检查连接器配置,发现没有打开开关,参数含义是“是否支持OBS存储,如果Hive表数据存储在OBS,需要打开此开关”。
  • 故障分析 根据问题现象,目的端类型不支持值为“-1”插入,检查目的端字段映射,排查映射问题。 根据上一步字段映射情况判断,进一步排查建表语句。 根据以上截图分析,INT1就是DWS字段类型TINYINT的别名,确认字段映射是对的,没有问题。进一步确认DWS TINYINT是否支持范围,为什么报错提示不支持‘-1’的原因,找到DWS字段类型介绍发现DWS TINYINT类型,支持范围为[0,255],不支持负数,Mysql的TINYINT类型支持范围是[-128,127]。 SMALLINT支持负数,建议目的端建表使用SMALLINT类型。
  • 解决方案 根据问题分析,客户映射字段为INT1就是DWS的TINYINT类型别名,映射是没问题的。 对于DWS来说,TINYINT类型,取值范围是 0 ~ 255,源端是Mysql,有“-1”这种负值,推荐客户使用 SMALLINT(取值范围:-32,768 ~ +32,767)建表。 Hive和MySQL的TINYINT类型取值范围都是[-128,127],而DWS的TINYINT类型取值范围是[0,255]。
  • 迁移时已选择表不存在时自动创表,提示“CDM not support auto create empty table with no column”怎么处理? 这是由于数据库表名中含有特殊字符导致识别出语法错误,按数据库对象命名规则重新命名后恢复正常。 例如,DWS数据仓库中的数据表命名需要满足以下约束:长度不超过63个字符,以字母或下划线开头,中间字符可以是字母、数字、下划线、$、#。 父主题: 故障处理类