【问题标题】:Connection Refused Exception while using Teradata Hadoop Connector使用 Teradata Hadoop 连接器时出现连接被拒绝异常
【发布时间】:2016-01-30 20:18:41
【问题描述】:

我目前正在使用免费版本的 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)

这方面的任何指针肯定会有所帮助。

提前致谢。

【问题讨论】:

  • 检查服务是否在您尝试连接的端口上运行,并且您有足够的权限连接到该端口(例如,防火墙可能会阻止您访问特定端口上的服务)
  • 嗨。服务正在运行。该作业在重置后成功完成。唯一的问题是我不确定为什么会出现间歇性故障

标签: hadoop jdbc teradata


【解决方案1】:

根本原因:com.teradata.connector.common.exception.ConnectorException: Internal fast load socket server time out

内部快速加载服务器套接字超时

使用“internal.fastload”方法运行导出作业时,可能会出现以下错误:Internal fast load socket server time out

出现此错误是因为当前可用的map任务数小于命令行中“-nummappers”参数指定的map任务数。

此错误可能发生在以下情况:

(1) Hadoop 集群中还有一些其他的 map/reduce 作业同时运行,因此没有足够的资源为导出作业分配指定的 map 任务。

(2)map任务的最大数量小于Hadoop集群中导出作业的预期map任务添加的现有map任务。

出现上述错误时,请尝试增加Hadoop集群的最大map任务数,或者减少导出作业的map任务数

@teradata 提供了很好的故障排除 PDF 文件

如果您遇到任何类型的错误,请查看上面的 PDF 并进行修复。

如果您需要对它们进行微调,请查看其他 map reduce properties

【讨论】:

  • 请注意,PDF 链接不再有效最新的 PDF 可用here 您关心的 PDF 部分称为“6.7.2 Internal FastLoad Server Socket Time-out”
【解决方案2】:

ravindra-babu 的答案是正确的,因为答案隐藏在 pdf 文档中。 support.teradata.com 知识库文章 KB0023556 还提供了有关原因的更多详细信息。

分辨率

  1. 所有映射器应同时运行。如果他们不是 同时运行,尽量减少TDCH中的mapper数量 通过 -nummappers 参数工作。
  2. 之后重新提交 TDCH 作业 更改 -nummappers

老实说,这是一个非常令人困惑的错误,可以更好地显示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 2012-03-04
    • 2019-01-20
    • 2014-10-13
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多