sqoop export 到mysql踩得巨坑。。

本文介绍了使用sqoop将数据从Hive导出到MySQL的过程,强调了需要预先在MySQL中创建表,明确Hive表在HDFS中的位置,并启动MapReduce History Server以查看报错日志。特别注意MapReduce日志对于排查错误的重要性,以及正确配置字段分隔符和行终止符。
摘要由CSDN通过智能技术生成

首先把修正后的脚本放出来,然后在说说踩得那些坑!

可以直接下滑到中间从看特别注意开始看。

sqoop export 脚本:

/home/huser/sqoop-1.4.7/bin/sqoop export --connect "jdbc:mysql://localhost9:3306/analysisuseUnicode=true&characterEncoding=
utf-8" \
--username mysql \
--password Pass2020 \
--table tmp_dws_visit_source \
--columns days,visitSourceType,visitSource \
--input-fields-terminated-by '^A' \
--input-lines-terminated-by '\n' \
--input-null-string '\\N' \
--input-null-non-string '\\N' \
--export-dir "hdfs://hadooprt:9000/user/hive/warehouse/rt1.db/dws_visit_source/everyday=2020-08-06/" \
-m 1;

mysql创建表脚本:

#!/bin/bash
everyday="2020-08-06"
sql=$(cat << !EOF

use database;
drop table dws_visit_source;
create table if not exists dws_visit_source(
days string,
visitSourceType string,
visitSource string
)
partitioned by (everyday string)
row format delimited
fields terminated by '^A'
lines terminated by '\n'
stored as textfile;

insert into table dws_visit_source partition(everyday='$everyday1')
select everyday,visitSourceType,visitSource 
from cr_t_test08 where everyday='$everyday' group by visitSourceType,visitSource;

exit;

!EOF)
$HIVE_HOME/bin/hive -e "$sql"
exitCode=$?
if [ $exitCode -ne 0 ];then
         echo "[ERROR] hive execute failed!" >> tmplog.txt
         exit $exitCode
fi

mysql

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值