命令行参数应该是对特殊符号做了处理, 通过sqoop操作数据库时尽量不要包括特殊符号
-- 一些测试连接命令 sqoop list-databases --connect jdbc:mysql://localhost:3306 --username Readonly --password ReadOnly sqoop list-databases --connect jdbc:mysql://服务器IP:3306 --username Readonly --password ReadOnly sqoop list-tables --connect jdbc:mysql://服务器IP:3306/sgmw --name Readonly --password ReadOnly1.2 Error: java.lang.RuntimeException: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
明明list-databases,list-tables都可以成功为什么还是会报错???
sqoop好像会将任务转换成MapReduce任务,执行到各个机器。
所以 mysql连接地址,外网IP,127.0.0.1 localhost都不能用。
处理办法: 将hadoop集群各机器配置hosts
vim /etc/hosts
修改至对应hostname名称
例如:127.0.0.1 > hadoop01
-- 修改前 sqoop list-databases --connect jdbc:mysql://localhost:3306 --username Readonly --password ReadOnly --修改后 sqoop list-databases --connect jdbc:mysql://hadoop01:3306 --username Readonly --password ReadOnly



