问题解决-Hive创建汉字字段表时,报错org.apache.hadoop.hive.ql.exec.DDLTask. MetaException

Hive 报错 FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaExce FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server ve 阅读详情

项目场景:

在大数据集群场景中,需求方(客户)会给你提出很多奇葩问题,让一个大数据职场小白的我为之抓狂,在一顿挠心之后,还得想办法去满足需求方提出的需求


前不久我的需求方就是我们CDH集群的使用方-数据应用开发团队给我出了个难题,说业务部门想要使用汉语字段的表使用,也就是表结构中字段名称必须是汉语,俗话说,中国文化博大精深,汉语最为精髓。

汉语考试:
1.“小明,今晚有思修课,你去不去?”,“我去!我不去!”,问小明到底去不没去?
2.“小明,窗台上落了鸟屎,去擦一下好吗?”,“我擦,我不擦”,问小明到底擦不擦?
不瞎扯了,进入正题
环境描述
CDH6.2.0
Hive2.1.1
MySQL5.7.19
需求,用户想要使用以汉语为字段的表;
例如

姓名年龄性别住址
小明19男北京
小红17女上海
小李20男广州
小王18男深圳

问题描述:

我们知道Hive是可以使用中文作为字段名的,使用符号``进行处理就可以实现。以下为创建表的语句:

CREATE EXTERNAL TABLE stu(
`姓名` STRING,
`年龄` INT,
`性别` STRING,
`地址` STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE
LOCATION 'hdfs://hadoop01:9000/dome'

在hive shell中执行以上语句报错信息如下:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Add request failed : INSERT INTO `COLUMNS_V2` (`CD_ID`,`COMMENT`,`COLUMN_NAME`,`TYPE_NAME`,`INTEGER_IDX`) VALUES (?,?,?,?,?) )

原因分析:

从报错信息中分析,推断是在执行建表语句时,hive的元数据进行更新时,需要向元数据存储数据库MySQL中插入表结构信息。报错信息中说明:在向MySQL中的表COLUMNS_V2中插入字段名称时出现的问题。
通过命令查看COLUMNS_V2表的字符集信息

show create table COLUMNS_V2\G;

查询表的字符集会发现,COLUMNS_V2表中COLUMN_NAME字段的字符集为默认字符集,latin1字符集,所以中文无法识别,因此需要使用utf8字符集。


解决方案:

分析了一波之后,基本定位到问题的根本原因,对症下药即可。
通过SQL命令将字段字符集修改为utf8

alter table COLUMNS_V2 modify column COLUMN_NAME  varchar(128) character set utf8; 

结语:如若文章有何不妥之处欢迎指正,谢谢!

Hive创建数据库时报错【Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException】(已解决) Hive创建数据库时报错【Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException】(已解决) 版本信息 hive : 2.3.4 mysql: 5.7.25 mysql驱动包:5.11 系统:centos6.5 前置操作 输入show databases;无异常,输入create datab... 阅读详情

相关推荐

Hive学习笔记 --- 用中文创建表名和字段

Hive学习笔记 --- 用中文创建表名和字段

杨鑫newlife的专栏 1万+

hive 中文字段解决方法

使用Impala在kudu中创建含中文字段名的表 Impala版本: 2.7.0+cdh5.10.2+0 Kudu版本:1.4.0+cdh5.12.0+0 Hue版本:3.9.0+cdh5.10.2+4153 因业务需要,需要在kudu中创建含有中文字段的表。原来的方案是直接在Hue中Impala查询界面执行建表脚本,但是表中含有中文字段时,就会执行出错,建表脚本和出错信息如下: INSERT INTO `COLUMNS_V2` (`CD_ID`,`COMMENT`,`COLU...

qq_33290422的博客 5560

第四届“网鼎杯”网络安全大赛 - 青龙组

第四届“网鼎杯”网络安全大赛 - 青龙组

lpppp小公主的博客 1315

Hive建表报错org.apache.hadoop.hive.ql.exec.DDLTask

Hive建表报错:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask 解决方案:在MySQL中执行一下的命令 之后在hive中建表就会成功:

qq_39821336的博客 3513

SAP FICO 银企直连

银企直联或者自动付款的目的是和银行做一个接口,把SAP中的到期应付款(也包括预付款)按照一定格式(银行要求的)在审批后发送给银行,请银行按照这个付款指定进行付款,并跟踪付款状态的过程,这个过程在SAP中如何实现呢?根据个人项目经验,客户需求可分为如下三种: 1. 第一种是完全不自动方式,仅批量生成付款凭证,实际的付款还是通过原来的流程执行,和银行没有任何接口; 2. 第二种是半自动方式,这种方式下需要按照银行的要求的格式生成付款条件,然后把付款文件下载下来,通过企业版的网银接口把付款文件进行上载,提交后

IamRunjiang的博客 9291

Kali Linux下Havoc框架编译避坑指南:从环境配置到成功运行的全流程

本文提供了在Kali Linux系统上成功编译和运行Havoc开源框架的详细指南。文章重点解析了从Go语言环境配置、系统依赖库安装到交叉编译环境搭建的全流程,并针对编译过程中常见的Qt、Boost及mingw-w64等依赖问题给出了具体的解决方案,帮助安全研究人员绕过常见陷阱,顺利完成环境部署。

weixin_29230865的博客 96

org.apache.hadoop.hive.ql.exec.DDLTask. AlreadyExistsException(message:Table stuinfos already exists

报错:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. AlreadyExistsException(message:Table stuinfos already exists)表明这个表已经创建,我尝试删除hdfs系统下的/user/hive/warehouse/stuinfos ,使用目录dfs -rm -r -f stuinfos 后仍然不行,最后发现。在hive命令行输入。

weixin_51912767的博客 1840

【gateway nc adapter虚拟网卡 win11 联想】问题的解决

由于需要登录公司内网,于是启用奇安信VPN。但启动后报出网关未连接的问题,于是我检查了我的网络适配器,并尝试解决,以下给出几种我实践过程中的行动,并附带最后成功的解决方法。

m0_73602417的博客 6554

Hive查询数据时怎么使用中文别名?

使用中文别名时,需要将中文别名用反单引号括起来(tab键上面的那个键可以敲出来) --例如把“ar”改为中文别名“通过率” select prod_name, ar as `通过率` from table_name; 注意:上传csv文件建表时,不能使用中文的字段名称。使用命令建表时,也不要使用中文来命名字段名称。使用中文来命名字段,虽然不报错,但是建表后的字段名称是乱码的。因此,建表时注意使用英文名称来命名字段。 ...

baidu_38432186的博客 6848

基于STC8G1K08A单片机的7位PWM输出程序(PCA功能实现呼吸灯效果)

摘要:本文展示了基于STC8G单片机的PWM占空比控制实现。通过定时器0中断每5ms调整占空比(0-127范围),实现呼吸灯效果。关键代码包括:1)PWM初始化(7位PWM模式);2)定时器配置(1ms中断);3)主循环根据标志位动态调整占空比。硬件采用P5.4引脚输出PWM信号,通过direction标志实现占空比自动增减循环。该方案适用于LED亮度调节等场景,系统时钟24MHz,采用12T模式。

weixin_74013772的博客 867

uniApp微信小程序:error: 60001 request:fail errcode:-101 cronet error code:-101error_msg:net::ERR CONNECTI

uni-app微信小程序域名访问报error 60001 request:fail errcode:-101,解决Uniapp微信小程序报600001错误,uni.request()接口请求报错,服务器更换SSL证书后,uniapp微信小程序出现`request:fail errcode:-101`问题分析与解决,服务器更换ssl证书后,手机访问微信小程序异常,微信小程序更换SSL证书后出现请求报错,服务器更换SSL证书,微信小程序报600001,小程序反应偶尔出现request:fail errcode:

✅ 精选推荐文章 4583

CDH集群数据迁移时报错:org.apache.hadoop.hive.ql.exec.DDLTask (state=08S01,code=1)

CDH集群中做hive数据迁移,通过hdfs dfs -put将本地数据文件上传到hdfs的路径中,然后通过beeline执行create table命令,在执行msck repair table命令做分区修复时出现如下报错: 报错关键字: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask Error while processing statement: FAILED: Execution

sun_luming的博客 3545

Python无法拒绝的表白界面(完整代码)

Python制作一个无法拒绝的表白界面的完整代码。

AIGC 5万+

hive创表中文字段报错:Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaExcepti

1、详细报错信息 ERROR : FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Add request failed : INSERT INTO `COLUMNS_V2` (`CD_ID`,`COMMENT`,`COLUMN_NAME`,`TYPE_NAME`,`INTEGER_IDX`) VALUES (?,?,?,?,?) ) 运行作业出

weixin_46122692的博客 2676

基于点云数据的统计滤波算法改进

随着三维视觉和点云处理技术的发展,点云数据在机器人、自动驾驶、增强现实等领域得到了广泛应用。而点云数据中常常包含着各种噪声和异常点,这些噪声和异常点会影响后续的数据处理和分析任务。因此,对点云数据进行滤波处理是必不可少的一步。在点云滤波算法中,统计滤波(Statistical Filtering)是一种常见且有效的方法。它通过对点云数据进行统计分析,将噪声和异常点剔除或修复,从而得到更为准确和可靠的点云数据。本文将介绍一种改进的统计滤波算法,并提供相应的源代码实现。

QfcaLinux的博客 292

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

org.apache.hadoop.hive.ql.exec.DDLTask. MetaException

hive结合mysql

口袋里的小龙的专栏 6970

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

hive中文分区字段设置

hive存数据是中文分区字段,需要设置 查看是否都是utf-8 show variables like '%char%'; 如不是需配置my.cnf(/etc/my.cnf或/usr/my.cnf) [mysqld] character-set-server=utf8 重启mysql service mysql restart #修改hive database编码 alter database hive default character set utf8; #修改table编码...

qq_41458071的博客 2333

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Hive创建表格报Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException的错误...

在启动Hive之后感慨这次终于没有出现Bug了,满怀信心地打了长长的创建表格的命令,结果现实再一次给了我一棒,报了以下的错误Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException,看了一下错误之后,先是楞了一下,接着我就发出感慨,自从踏上编程这条不归路之后,就没有一天不是在找Bug的路...

weixin_30492601的博客 540

Hive建表出现中文字段报错解决办法

遇到这个问题大家可能都会想到去修改字符编码,出发思路是对的 问题 : 修改哪里字符编码 大家都知道hive建表的元数据会存储在Mysql数据库中,具体的字段相关的对应元数据表COLUMNS_V2 我就会想到去改表COLUMNS_V2的字符编码为utf8,如下mysql命令行执行: alter table COLUMNS_V2 modify column COMMENT varchar(256) ...

Mage的博客 4304

Hive drop table时出现 Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException

在使用Hive的时候一直小心翼翼,因为对Hive掌握不够好,每次出错都要找半天才能找到错误所在,这次在删除一个表的时候,报了一个错: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:You have an error in your ...

qq_41725214的博客 1084

hive使用时,表格元数据中文出现乱码的情况解决方法

问题提出: hive的元数据保存在Mysql中,使用的是latin1编码方式,如果添加列名的解释为中文会造成乱码的问题. 解决方法一: 读取时将元数据库的metastore编码方法给为UTF-8, 结果: 会造成hive无法读取元数据的问题,不能影响到元数据其他字段的编码格式 解决方法二: 单独修改中文注释的字段,修改的sql如下: #修改字段注释字符集 alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;

LastYHM的博客 910

Hive创建表格报【Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException】

Hive创建表格报【Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException】 在成功启动Hive之后感慨这次终于没有出现Bug了,满怀信心地打了长长的创建表格的命令,报了以下的错误Error, return code 1 from org.apache.Hadoop.hive.ql.exec.DDLTask. MetaException, 第一步:查看配置文件 确保没有出错 第二步:上网找找同是天涯落人,

qq_42448606的博客 811

Hive删除外部分区表,报错:org.apache.hadoop.hive.ql.exec.DDLTask

hive中删除外部分区表后,又在另一个库中创建相同的外部分区表,都是从hdfs上的相同目录上读取数据,结果报错org.apache.hadoop.hive.ql.exec.DDLTask返回代码1 解决方法: set hive.msck.path.validation=ignore; MSCK REPAIR TABLE table_name; 其中的原理:待续 ...

sunqingok的博客 993

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask错误的解决办法(图文详解)

hbase迁移数据到hive中 hive创建表关联hbase表时报错 CREATE EXTERNAL TABLE test01 (key string, name string, age string, sex string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIE...

ReyzeLamp的博客 7463

hive FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.

错误提示: hive> drop table java_file; FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:java.lang.IllegalArgumentException: java.net.UnknownHostException: myhadoop) 原因: 1.因为更改了主机名称,将myhadoop修改为dw.

u010031813的博客 2536

hive启动失败READ COMMITTED, hive创建表失败org.apache.hadoop.hive.ql.exec.DDLTask. MetaException问题总结

hive元数据使用mysql,发现hive启动和在hive中创建表失败的BUG。 启动失败报错提示: Caused by: java.sql.SQLException: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. Inn

zhouben12的博客 1060
上一篇: 问题解决-hive使用spark引擎执行SQL时,yarn报错:java.lang.NoClassDefFoundError: org/antlr/runtime/tree/CommonTree
software_student
博客等级 码龄12年 27粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值