hive常见错误

1.动态分区表数据导入的报错

1).背景知识:静态分区表和动态分区表的概念及正确数据导入方式
静态分区表:数据导入之前分区已经存在的表格(可以load方式导入数据,也可以insert方式导入数据)
这种方式先手动添加分区:
alter table student_ptn01 add partition(age=18);
alter table student_ptn01 add partition(age=19);
alter table student_ptn01 add partition(age=20);
load方式导入数据方法:
load data local inpath ‘/home/hadoop/apps/stu’ into table student_ptn01 partition(age=18);
insert方式导入数据方法:
insert into table student_ptn01 partition(age=18) select id,name,sex,department from student01 where age=18;
静态分区数据导入的使用场景:
1)知道数据中的分区的个数的时候 并且知道分区的名
2)分区数量比较少的时候

动态分区表:可以根据数据的实际情况自动的进行创建分区 在在对应的分区中插入数据(只支持insert方式数据导入)
创建分区表:
create external table student_ptn02(id int,name string,sex string,department string) PARTITIONED BY(age int COMMENT ‘partition ziduan’) row format delimited fields terminated by ‘,’;
不需要手动添加分区的 在数据插入的同时进行添加分区
语法:
insert into table tablename partition(分区字段) select … from …
注意:这种方式进行数据插入的时候 select中必须包含分区字段
insert into table student_ptn02 partition(age) select id,name,sex,age,department from student01;

报错:
FAILED: SemanticException [Error 10096]: Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict
修改配置:
set hive.exec.dynamic.partition.mode=nonstrict 修改动态分区的模式为非严格模式

create external table student_ptn03(id int,name string,sex string,department string) PARTITIONED BY(age string COMMENT ‘partition ziduan’) row format delimited fields terminated by ‘,’;
insert into table student_ptn03 partition(age) select id,name,sex,age,department from student01;
查询的时候 默认将最后一个字段作为分区字段
所以我们的分区字段应该放在查询语句的最后几个
insert into table student_ptn03 partition(age) select id,name,sex,department,age from student01;

2.metastore未启动报错

以下两个报错均是因为未启动metastore服务

1).错误背景介绍:启动hive正常,进mysql查看hive元数据库myhive也正常,但在hive中执行show databases指令报如下错误:

在这里插入图片描述
经过报错信息分析发现是metastore服务没有启动。
启动metastore(进安装hive的bin目录下执行以下命令):
  bin/hive --service metastore &

启动metastore后再启动hive,然后就可以正常执行show databases指令,如下
在这里插入图片描述

2).执行hql指令报如下错误 同样是未启动 metastore服务的原因,启动后执行命令正常

在这里插入图片描述

3.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值