我正在尝试使用sqoop从HDFS传输数据到MSSQL服务器。但由于某些原因,sqoop挂起
tool.BaseSqoopTool: Enabled debug logging.
sqoop.ConnFactory: Added factory com.microsoft.sqoop.SqlServer.MSSQLServerManagerFactory specified by /usr/lib/sqoop/conf/managers.d/mssqoop-sqlserver
DEBUG sqoop.ConnFactory: Loaded manager factory: com.microsoft.sqoop.SqlServer.MSSQLServerManagerFactory
DEBUG sqoop.ConnFactory: Loaded manager factory: com.cloudera.sqoop.manager.DefaultManagerFactory
DEBUG sqoop.ConnFactory: Trying ManagerFactory: com.microsoft.sqoop.SqlServer.MSSQLServerManagerFactory
INFO SqlServer.MSSQLServerManagerFactory: Using Microsoft's SQL Server - Hadoop Connector
INFO manager.SqlManager: Using default fetchSize of 1000
DEBUG sqoop.ConnFactory: Instantiated ConnManager com.microsoft.sqoop.SqlServer.MSSQLServerManager@45db05b2
INFO tool.CodeGenTool: Beginning code generation
DEBUG manager.SqlManager: No connection paramenters specified. Using regular API for making connection.
我检查防火墙,它允许连接没有任何限制。 Sqoop经过身份验证,但在获得身份验证后不会启动map reduce工作。以前有人遇到过类似的问题吗?
答案 0 :(得分:0)
尝试使用--verbose
打印更多信息。
答案 1 :(得分:0)
您的SQL Server是否在虚拟机上运行?我和Oracle有类似的问题。我在具有静态IP和桥接网络适配器的VM上运行Oracle。与Oracle服务器位于同一网络中的服务器可以很好地连接,但网络外的服务器显示出相同的症状。解决方案是从桥接接口更改为NAT'd接口。然后,您需要在主机上为数据库服务器设置端口转发规则,并使您的Sqoop连接到主机IP而不是VM的IP。我花了好几天的时间才弄明白这一点。希望它有所帮助。
答案 2 :(得分:0)
我们的机器上运行了MsSQL服务器。问题是特定版本的JVM(Java(TM)SE运行时环境(版本1.6.0_29-b11))有错误并导致客户端挂起在getconnection方法中。 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7103725 我们升级到更新的版本,一切正常。