sqoop从mysql导数据到hive报错:Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communicat...

背景

使用sqoop从mysql导数据到hive,从本地服务器是可以访问mysql的(本地服务器是hadoop集群的一个datanode),但是sqoop导数据的时候依然连接不上mysql

报错如下:
1658823-20190911135732113-491439073.png
从报错可以看出,是数据库连接失败,很常见的问题,但是从本地是可以直连mysql的。

因为sqoop导数据的时候,默认会启动4个map task,这4个map task会随机启动在不动的datanode上,所以在想,是不是因为其他节点没有权限访问mysql导致。
但是需要先搞清楚,sqoop在抽取数据的时候,是不是会把4个map task随机启动在不动的datanode上

在官网上有如下内容:
1658823-20190911140105129-1922579601.png
虽然讲的不是我们要找到,但是可以判断出,sqoop导数据就是会把maptask随机启动在不通的datanode上。
因此,sqoop在导数据到mysql的时候,要确认,hadoop集群的每个节点都要有mysql的读权限

转载于:https://www.cnblogs.com/goldenSky/p/11505926.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值