Sqoop导入数据至HDFS报错:应用因AM容器失败2次求助
Sqoop导入HDFS时AM容器失败的排查与解决
1. 修正命令语法错误
你执行的命令里-- table多了空格,这是常见的语法问题,会导致任务解析失败。修正后的命令:
sqoop import --connect "jdbc:sqlserver://192.168.26.8:1717;databasename=VMC" --table contact -m 1 --username sa --password 123456
2. 调整YARN资源配置
AM容器失败常和资源不足相关:
- 检查YARN配置文件
yarn-site.xml,确保yarn.nodemanager.resource.memory-mb、yarn.scheduler.minimum-allocation-mb等参数设置满足任务基础需求 - 执行Sqoop时可手动指定AM内存,比如添加参数
--mapreduce-am-opts "-Xmx1024m"提升内存分配
3. 验证SQL Server JDBC驱动
- 确认Hadoop集群的
$SQOOP_HOME/lib或$HADOOP_HOME/share/hadoop/common/lib目录下已放置匹配SQL Server版本的JDBC驱动包(如mssql-jdbc-*.jar) - 驱动版本不匹配会直接导致任务启动失败,需保证驱动与数据库版本兼容
4. 查看详细报错日志
通过YARN WebUI(默认端口8088)找到失败的应用,查看AM容器的日志文件,里面会包含具体报错原因(比如权限不足、网络不通、数据格式异常等),这是定位问题最直接的方式
5. 检查网络与数据库权限
- 测试Hadoop节点与SQL Server的连通性,用
telnet 192.168.26.8 1717确认端口可访问 - 验证
sa账号拥有VMC数据库中contact表的查询权限,确保能正常读取数据
内容的提问来源于stack exchange,提问作者Tien Le
相关产品推荐
相关产品推荐

