Kudu入库报错Kudu Row Error1 Row error x bytes, maximum is 65536 byte
问题现象
客户使用MRS的Kudu,将数据写入kudu中入到如下的报错信息:
kudu 入库报错了Kudu Row Error1: Row error for primary key=xxxxx, tablet=null, server=xxxxxxxxx, status=Invalid argument: value too large for column ‘xxx’ (xxxxxx bytes, maximum is 65536 bytes)。
问题分析
查看报错信息中的字段类型为默认的string类型,string类型在kudu中默认为UTF-8字符集,改类型字符集下最大为64kb,即为65536 bytes。需要扩展可存储的大小。可以设置参数max_cell_size_bytes进行解决。
解决方案
1:登录MRS Manager页面,进入Kudu服务,点击配置,选择全部配置,点击KuduTserver(角色),点击自定义,如下图顺序所示:
2:在 tserver.customized.configs 的配置项中增加自定义配置项,增加的配置项如下:
配置项1: --unlock_unsafe_flags true
配置项2: --max_cell_size_bytes 131072(根据实际调整,但不建议过大)
如下图所示:
3:点击保存,重启Kudu组件。如下图所示:
如过保存按钮是灰色,鼠标点击下空白处即可。
重启示意图如下:
注意事项
1:很多用户遇到该类型错误,从网上找到相应的解决方案,解决方案中提到修改 --max_cell_size_bytes 参数的配置值,MRS集群中默认没有改配置,需要在自定义中增加。
2:除了增加 --max_cell_size_bytes 配置外,还需要增加 --unlock_unsafe_flags 为true,否则kudu 会启动失败。kudu启动失败,可以查看 KuduTserver 的日志,日志路径: /var/log/Bigdata/kudu/ ,该目录下 startlog代表改实例的启动日志,runninglog目录下为该实例的运行日志。
3:增加参数时,需要注意配置项前面有两个中划线 - ;且与配置项不要有空格。
- 点赞
- 收藏
- 关注作者
评论(0)