启动hive出现Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient异常
本例mysql包用的是:
mysql-connector-java-8.0.28.jar,hadoop-3.3.0,hive-3.1.2,sqoop-1.4.7
原因:mysql驱动包搞错了
解决:更换mysql驱动包
sqoop导入数据到hive表出现:FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
解决过程:网上搜索很多的原因都说是因为mapreduce内存或者是datanode内存不足,各种配置都没解决,最后检查hive建表语句发现字段对不上,还是太粗心。
原因:hive表字段指定了分区,但导入的时候没有指定分区。
解决:修改hive表字段或者指定分区。
注意在hive动态分区的字段一定要指明顺序,如:
hive表
CREATE TABLE device_action_record_2 (
id bigint,
device_id string,
)
partitioned by (action string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;
导入语句:
正确:insert into table device_action_record_2 partition(action) select id,device_id,action from device_action_record;
错误:insert into table device_action_record_2 partition(action) select * from device_action_record;