我目前正在使用免费版的Teradata Hadoop连接器teradata-connector 1.3.4将数据加载到Teradata。我正在使用internal.fastload来加载数据。
数据库版本是14.10
jdbc驱动程序版本是15.0
有时我在运行作业时遇到 Connection refused exception
,但在重置负载作业2-3次时此问题就会消失。这也与teradata数据库上的负载无关,因为负载非常正常。抛出的异常如下:
15/10/29 22:52:54 INFO mapreduce.Job: Running job: job_1445506804193_290389
com.teradata.connector.common.exception.ConnectorException: Internal fast load socket server time out
at com.teradata.connector.teradata.TeradataInternalFastloadOutputFormat$InternalFastloadCoordinator.beginLoading(TeradataInternalFastloadOutputFormat.java:642)
at com.teradata.connector.teradata.TeradataInternalFastloadOutputFormat$InternalFastloadCoordinator.run(TeradataInternalFastloadOutputFormat.java:503)
at java.lang.Thread.run(Thread.java:745)
15/10/29 23:39:29 INFO mapreduce.Job: Job job_1445506804193_290389 running in uber mode : false
15/10/29 23:39:29 INFO mapreduce.Job: map 0% reduce 0%
15/10/29 23:40:08 INFO mapreduce.Job: Task Id : attempt_1445506804193_290389_m_000001_0, Status : FAILED
Error: com.teradata.connector.common.exception.ConnectorException: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
at com.teradata.connector.teradata.TeradataInternalFastloadOutputFormat.getRecordWriter(TeradataInternalFastloadOutputFormat.java:301)
at com.teradata.connector.common.ConnectorOutputFormat$ConnectorFileRecordWriter.<init>(ConnectorOutputFormat.java:84)
at com.teradata.connector.common.ConnectorOutputFormat.getRecordWriter(ConnectorOutputFormat.java:33)
at org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.<init>(MapTask.java:624)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:744)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1591)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)
这方面的任何指示肯定会有所帮助。
提前致谢。
答案 0 :(得分:2)
根本原因:com.teradata.connector.common.exception.ConnectorException: Internal fast load socket server time out
内部快速加载服务器套接字超时
使用&#34; internal.fastload&#34;运行导出作业时方法,可能会出现以下错误:内部快速加载套接字服务器超时
发生此错误是因为当前可用的地图任务数少于命令行中按&#34; -nummappers&#34;参数指定的地图任务数。
在以下情况下可能会发生此错误:
(1)在Hadoop集群中还有一些其他map / reduce作业同时运行,因此没有足够的资源为导出作业分配指定的map任务。
(2)最大地图任务数小于现有地图任务,增加了Hadoop集群中导出作业的预期地图任务。
发生上述错误时,请尝试增加Hadoop群集的最大映射任务数,或减少导出作业的地图任务数 < / p>
@ teradata
提供了很好的射手PDF如果您遇到任何类型的错误,请查看以上PDF并将其修复。
如果您需要对其进行微调,请查看其他地图缩小properties。