Ubuntu终端执行Hive数据插入操作失败,请求技术支持
Hive插入数据失败问题排查与解决
问题详情
执行的插入语句
hive> INSERT INTO my_table (id, name, age, email) > VALUES > (1, 'John Doe', 25, 'john.doe@example.com'), > (2, 'Jane Smith', 30, 'jane.smith@example.com');
错误信息
查询ID:qossay_20230509170006_1097a8a7-49b9-4ad3-a521-47ca9432311d
总作业数3,启动第1个作业后报错:
Hadoop job information for Stage-1: number of mappers: 0; number of reducers: 0 2023-05-09 17:00:21,436 Stage-1 map = 0%, reduce = 0% Ended Job = job_1683629689937_0009 with errors Error during job, obtaining debugging information... FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
MapReduce作业执行失败,HDFS读写量均为0。
表结构
CREATE TABLE test (id INT,name STRING, age INT,email STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE LOCATION '/home/qossay/Documents' TBLPROPERTIES ('serialization.format'='1');
解决步骤
修正表名一致性问题
插入语句中使用的表名是my_table,但建表语句创建的是test表,这是明显的笔误。执行插入时需使用正确表名:INSERT INTO test (id, name, age, email) VALUES (1, 'John Doe', 25, 'john.doe@example.com'), (2, 'Jane Smith', 30, 'jane.smith@example.com');验证HDFS路径权限与存在性
- 建表时指定的
LOCATION是HDFS路径,而非本地Ubuntu文件系统路径。先检查路径是否存在并设置正确权限:hdfs dfs -ls /home/qossay/ hdfs dfs -mkdir -p /home/qossay/Documents hdfs dfs -chmod 755 /home/qossay/Documents - 若必须使用本地路径,需在
LOCATION前添加LOCAL关键字,但Hive优先推荐使用HDFS路径。
- 建表时指定的
切换Hive执行引擎
若MapReduce引擎持续报错,可切换到Tez或Spark引擎规避问题:SET hive.execution.engine=tez; -- 或执行 SET hive.execution.engine=spark;切换后重新执行插入语句。
检查Hadoop集群状态
确认HDFS和YARN核心服务正常运行,执行以下命令查看进程:jps需确保
NameNode、DataNode、ResourceManager、NodeManager进程均处于运行状态。查看作业详细日志定位根因
通过YARN命令获取作业的完整日志,从中提取具体报错细节:yarn logs -applicationId job_1683629689937_0009
内容的提问来源于stack exchange,提问作者Qossay jawad Zeinelddin
相关产品推荐
相关产品推荐

