利用sqoop导入MySQL数据的时候出现
- ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: java.net.Con
- nectException: Call From hadoop/172.16.59.90 to hadoop:10020 failed on connection exception: java.n
- et.ConnectException: Connection refused; For more details see: https://wiki.apache.org/hadoop/ConnectionRefused
- at org.apache.hadoop.mapred.ClientServiceDelegate.invoke(ClientServiceDelegate.java:337)
- at org.apache.hadoop.mapred.ClientServiceDelegate.getJobStatus(ClientServiceDelegate.java:422)
- at org.apache.hadoop.mapred.YARNRunner.getJobStatus(YARNRunner.java:575)
- at org.apache.hadoop.mapreduce.Job$1.run(Job.java:325)
- at org.apache.hadoop.mapreduce.Job$1.run(Job.java:322)
- at java.security.AccessController.doPrivileged(Native Method)
- at javax.security.auth.Subject.doAs(Subject.java:421)
- at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
- at org.apache.hadoop.mapreduce.Job.updateStatus(Job.java:322)
- at org.apache.hadoop.mapreduce.Job.isSuccessful(Job.java:622)
- at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1329)
- at org.apache.sqoop.mapreduce.ImportJobBase.doSubmitJob(ImportJobBase.java:196)
- at org.apache.sqoop.mapreduce.ImportJobBase.runJob(ImportJobBase.java:169)
- at org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:266)
- at org.apache.sqoop.manager.SqlManager.importTable(SqlManager.java:673)
- at org.apache.sqoop.manager.MySQLManager.importTable(MySQLManager.java:118)
- at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:497)
- at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605)
- at org.apache.sqoop.Sqoop.run(Sqoop.java:143)
- at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
- at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179)
- at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218)
- at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227)
- at org.apache.sqoop.Sqoop.main(Sqoop.java:236)
- Caused by: java.net.ConnectException: Call From hadoop/172.16.59.90 to hadoop:10020 failed on
- connection exception: java.net.ConnectException: Connection refused; For more details see:
- https://wiki.apache.org/hadoop/ConnectionRefused
- at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
- at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
- at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
- at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
- at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:791)
- at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:731)
- at org.apache.hadoop.ipc.Client.call(Client.java:1472)
- at org.apache.hadoop.ipc.Client.call(Client.java:1399)
- at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:232)
- at com.sun.proxy.$Proxy14.getJobReport(Unknown Source)
- at org.apache.hadoop.mapreduce.v2.api.impl.pb.client.MRClientProtocolPBClientImpl.ge
- tJobReport(MRClientProtocolPBClientImpl.java:133)
- at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:606)
- at org.apache.hadoop.mapred.ClientServiceDelegate.invoke(ClientServiceDelegate.java:323)
- ... 23 more
- Caused by: java.net.ConnectException: Connection refused
- at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
- at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:744)
- at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
- at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:530)
- at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:494)
- at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:607)
- at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:705)
- at org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:368)
- at org.apache.hadoop.ipc.Client.getConnection(Client.java:1521)
- at org.apache.hadoop.ipc.Client.call(Client.java:1438)
- ... 31 more
复制代码
错误说明DataNode 需要访问 MapReduce JobHistory Server,而我已经配置了
{hadoop_home}/etc/hadoop/mapred-site.xml
配置如下
- <property>
- <name>mapreduce.jobhistory.address</name>
- <!-- 配置实际的主机名和端口-->
- <value>{namenode}:10020</value>
- </property>
复制代码
配置完成之后要启动
- {hadoop_dir}/sbin/mr-jobhistory-daemon.sh start historyserver
复制代码
而我没有启动JobHistory 服务。
所以发生了此错误,如果启动JobHistory服务后还发生如下错误;
- ERROR org.apache.hadoop.mapreduce.v2.hs.HistoryFileManager: Error w
- hile trying to scan the directory hdfs://namenode:9000/tmp/had
- oop-yarn/staging/history/done_intermediate/hadoop
复制代码
那么修改${HADOOP_DIR}/etc/hadoop/mapred-env.sh这个配置文件的heap大小
- export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=2000
复制代码
然后在重新启动JobHistory服务,问题解决!