hadoop distcp源集群如何识别目标集群名所对应的ip和host

狂热的土豆 2014-10-09 10:30:51
mycluster是源hdfs,cluster2是目标hdfs,我想要从mycluster把tmp目录下的文件复制到cluster2下

hadoop distcp hftp://mycluster/tmp hdfs://cluster2/tmp

此命令在mycluster的namenode下执行,通过本地hadoop的配置defaultFS可以识别到mycluster对应的ip主机,但是没有cluster2的配置,要如何知道cluster2对应的是哪些ip或主机呢?
...全文
577 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyWalker_ONLY 2014-10-11
  • 打赏
  • 举报
回复
楼主使用参数-i再执行一下吧
skyWalker_ONLY 2014-10-11
  • 打赏
  • 举报
回复
根据错误代码,结合源代码也没看出问题。再问楼主一句,复制的时候指定了端口号吗
狂热的土豆 2014-10-11
  • 打赏
  • 举报
回复
引用 10 楼 sky_walker85 的回复:
14/10/11 12:10:47 INFO mapred.JobClient: map 58% reduce 0% 14/10/11 12:10:55 INFO mapred.JobClient: map 59% reduce 0% 14/10/11 12:10:55 INFO mapred.JobClient: Task Id : attempt_201408081526_5067_m_000004_0, Status : FAILED java.io.IOException: Copied: 0 Skipped: 0 Failed: 2 at org.apache.hadoop.tools.DistCp$CopyFilesMapper.close(DistCp.java:582) at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:57) at org.apache.hadoop.mapred.MapTask.runOldMapper_aroundBody2(MapTask.java:455) at org.apache.hadoop.mapred.MapTask$AjcClosure3.run(MapTask.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149) at com.intel.bigdata.management.agent.HadoopTaskAspect.doPhaseCall(HadoopTaskAspect.java:166) at com.intel.bigdata.management.agent.HadoopTaskAspect.ajc$inlineAccessMethod$com_intel_bigdata_management_agent_HadoopTaskAspect$com_intel_bigdata_management_agent_HadoopTaskAspect$doPhaseCall(HadoopTaskAspect.java:1) at com.intel.bigdata.management.agent.HadoopTaskAspect.aroundMap(HadoopTaskAspect.java:38) at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:424) at org.apache.hadoop.mapred.MapTask.run_aroundBody0(MapTask.java:384) at org.apache.hadoop.mapred.MapTask$AjcClosure1.run(MapTask.ja 14/10/11 12:10:56 INFO mapred.JobClient: map 41% reduce 0% 14/10/11 12:11:00 INFO mapred.JobClient: Task Id : attempt_201408081526_5067_m_000003_1, Status : FAILED java.io.IOException: Copied: 0 Skipped: 0 Failed: 1 at org.apache.hadoop.tools.DistCp$CopyFilesMapper.close(DistCp.java:582) at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:57) at org.apache.hadoop.mapred.MapTask.runOldMapper_aroundBody2(MapTask.java:455) at org.apache.hadoop.mapred.MapTask$AjcClosure3.run(MapTask.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149) at com.intel.bigdata.management.agent.HadoopTaskAspect.doPhaseCall(HadoopTaskAspect.java:166) at com.intel.bigdata.management.agent.HadoopTaskAspect.ajc$inlineAccessMethod$com_intel_bigdata_management_agent_HadoopTaskAspect$com_intel_bigdata_management_agent_HadoopTaskAspect$doPhaseCall(HadoopTaskAspect.java:1) at com.intel.bigdata.management.agent.HadoopTaskAspect.aroundMap(HadoopTaskAspect.java:38) at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:424) at org.apache.hadoop.mapred.MapTask.run_aroundBody0(MapTask.java:384) at org.apache.hadoop.mapred.MapTask$AjcClosure1.run(MapTask.ja 14/10/11 12:11:04 INFO mapred.JobClient: map 42% reduce 0% 14/10/11 12:11:10 INFO mapred.JobClient: map 62% reduce 0% 14/10/11 12:11:13 INFO mapred.JobClient: map 63% reduce 0% 14/10/11 12:11:14 INFO mapred.JobClient: Task Id : attempt_201408081526_5067_m_000003_2, Status : FAILED java.io.IOException: Copied: 0 Skipped: 0 Failed: 1 at org.apache.hadoop.tools.DistCp$CopyFilesMapper.close(DistCp.java:582) at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:57) at org.apache.hadoop.mapred.MapTask.runOldMapper_aroundBody2(MapTask.java:455) at org.apache.hadoop.mapred.MapTask$AjcClosure3.run(MapTask.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149) at com.intel.bigdata.management.agent.HadoopTaskAspect.doPhaseCall(HadoopTaskAspect.java:166) at com.intel.bigdata.management.agent.HadoopTaskAspect.ajc$inlineAccessMethod$com_intel_bigdata_management_agent_HadoopTaskAspect$com_intel_bigdata_management_agent_HadoopTaskAspect$doPhaseCall(HadoopTaskAspect.java:1) at com.intel.bigdata.management.agent.HadoopTaskAspect.aroundMap(HadoopTaskAspect.java:38) at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:424) at org.apache.hadoop.mapred.MapTask.run_aroundBody0(MapTask.java:384) at org.apache.hadoop.mapred.MapTask$AjcClosure1.run(MapTask.ja 14/10/11 12:11:18 INFO mapred.JobClient: Task Id : attempt_201408081526_5067_m_000004_1, Status : FAILED java.io.IOException: Copied: 0 Skipped: 0 Failed: 2 at org.apache.hadoop.tools.DistCp$CopyFilesMapper.close(DistCp.java:582) at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:57) at org.apache.hadoop.mapred.MapTask.runOldMapper_aroundBody2(MapTask.java:455) at org.apache.hadoop.mapred.MapTask$AjcClosure3.run(MapTask.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149) at com.intel.bigdata.management.agent.HadoopTaskAspect.doPhaseCall(HadoopTaskAspect.java:166) at com.intel.bigdata.management.agent.HadoopTaskAspect.ajc$inlineAccessMethod$com_intel_bigdata_management_agent_HadoopTaskAspect$com_intel_bigdata_management_agent_HadoopTaskAspect$doPhaseCall(HadoopTaskAspect.java:1) at com.intel.bigdata.management.agent.HadoopTaskAspect.aroundMap(HadoopTaskAspect.java:38) at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:424) at org.apache.hadoop.mapred.MapTask.run_aroundBody0(MapTask.java:384) at org.apache.hadoop.mapred.MapTask$AjcClosure1.run(MapTask.ja 14/10/11 12:11:19 INFO mapred.JobClient: map 43% reduce 0% 14/10/11 12:11:23 INFO mapred.JobClient: Task Id : attempt_201408081526_5067_m_000001_0, Status : FAILED java.io.IOException: Copied: 0 Skipped: 0 Failed: 5 at org.apache.hadoop.tools.DistCp$CopyFilesMapper.close(DistCp.java:582) at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:57) at org.apache.hadoop.mapred.MapTask.runOldMapper_aroundBody2(MapTask.java:455) at org.apache.hadoop.mapred.MapTask$AjcClosure3.run(MapTask.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149) at com.intel.bigdata.management.agent.HadoopTaskAspect.doPhaseCall(HadoopTaskAspect.java:166) at com.intel.bigdata.management.agent.HadoopTaskAspect.ajc$inlineAccessMethod$com_intel_bigdata_management_agent_HadoopTaskAspect$com_intel_bigdata_management_agent_HadoopTaskAspect$doPhaseCall(HadoopTaskAspect.java:1) at com.intel.bigdata.management.agent.HadoopTaskAspect.aroundMap(HadoopTaskAspect.java:38) at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:424) at org.apache.hadoop.mapred.MapTask.run_aroundBody0(MapTask.java:384) at org.apache.hadoop.mapred.MapTask$AjcClosure1.run(MapTask.ja 14/10/11 12:11:24 INFO mapred.JobClient: map 23% reduce 0% 14/10/11 12:11:30 INFO mapred.JobClient: Job complete: job_201408081526_5067 14/10/11 12:11:30 INFO mapred.JobClient: Counters: 16 14/10/11 12:11:30 INFO mapred.JobClient: Job Counters 14/10/11 12:11:30 INFO mapred.JobClient: SLOTS_MILLIS_MAPS=156397 14/10/11 12:11:30 INFO mapred.JobClient: Total time spent by all reduces waiting after reserving slots (ms)=0 14/10/11 12:11:30 INFO mapred.JobClient: Total time spent by all maps waiting after reserving slots (ms)=0 14/10/11 12:11:30 INFO mapred.JobClient: Launched map tasks=11 14/10/11 12:11:30 INFO mapred.JobClient: SLOTS_MILLIS_REDUCES=0 14/10/11 12:11:30 INFO mapred.JobClient: Failed map tasks=1 14/10/11 12:11:30 INFO mapred.JobClient: File Input Format Counters 14/10/11 12:11:30 INFO mapred.JobClient: Bytes Read=6758 14/10/11 12:11:30 INFO mapred.JobClient: File Output Format Counters 14/10/11 12:11:30 INFO mapred.JobClient: Bytes Written=0 14/10/11 12:11:30 INFO mapred.JobClient: FileSystemCounters 14/10/11 12:11:30 INFO mapred.JobClient: HDFS_BYTES_READ=6915 14/10/11 12:11:30 INFO mapred.JobClient: FILE_BYTES_WRITTEN=26984 14/10/11 12:11:30 INFO mapred.JobClient: Map-Reduce Framework 14/10/11 12:11:30 INFO mapred.JobClient: Map input records=18 14/10/11 12:11:30 INFO mapred.JobClient: Spilled Records=0 14/10/11 12:11:30 INFO mapred.JobClient: Total committed heap usage (bytes)=85000192 14/10/11 12:11:30 INFO mapred.JobClient: Map input bytes=4700 14/10/11 12:11:30 INFO mapred.JobClient: Map output records=0 14/10/11 12:11:30 INFO mapred.JobClient: SPLIT_RAW_BYTES=157 14/10/11 12:11:30 INFO mapred.JobClient: Job Failed: # of failed Map Tasks exceeded allowed limit. FailedCount: 1. LastFailedTask: task_201408081526_5067_m_000003 With failures, global counters are inaccurate; consider running with -i Copy failed: java.io.IOException: Job failed! at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1327) at org.apache.hadoop.tools.DistCp.copy(DistCp.java:667) at org.apache.hadoop.tools.DistCp.run(DistCp.java:881) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79) at org.apache.hadoop.tools.DistCp.main(DistCp.java:908)
狂热的土豆 2014-10-11
  • 打赏
  • 举报
回复
引用 12 楼 sky_walker85 的回复:
[quote=引用 11 楼 u012760284 的回复:] [quote=引用 9 楼 sky_walker85 的回复:] [quote=引用 7 楼 u012760284 的回复:] map执行完后出现job fail,文件目录复制过去了,文件有很多没有复制成功的
DistCp 一般用于在集群内复制文件,而你现在的情况是跨集群了。[/quote] 是这样么…… hdfs本身就是集群,文件存储在hdfs上本身就是通过block的形式分布在各个节点上,就不存在集群内复制吧;而文件存储在local,要在集群间传输也是通过scp吧……[/quote] 你现在是不是配置了两个个hdfs集群?这两个集群共享DataNode吗?[/quote] 是两个hdfs集群,两套环境,不共享DataNode
skyWalker_ONLY 2014-10-11
  • 打赏
  • 举报
回复
引用 11 楼 u012760284 的回复:
[quote=引用 9 楼 sky_walker85 的回复:] [quote=引用 7 楼 u012760284 的回复:] map执行完后出现job fail,文件目录复制过去了,文件有很多没有复制成功的
DistCp 一般用于在集群内复制文件,而你现在的情况是跨集群了。[/quote] 是这样么…… hdfs本身就是集群,文件存储在hdfs上本身就是通过block的形式分布在各个节点上,就不存在集群内复制吧;而文件存储在local,要在集群间传输也是通过scp吧……[/quote] 你现在是不是配置了两个个hdfs集群?这两个集群共享DataNode吗?
狂热的土豆 2014-10-11
  • 打赏
  • 举报
回复
引用 9 楼 sky_walker85 的回复:
[quote=引用 7 楼 u012760284 的回复:] map执行完后出现job fail,文件目录复制过去了,文件有很多没有复制成功的
DistCp 一般用于在集群内复制文件,而你现在的情况是跨集群了。[/quote] 是这样么…… hdfs本身就是集群,文件存储在hdfs上本身就是通过block的形式分布在各个节点上,就不存在集群内复制吧;而文件存储在local,要在集群间传输也是通过scp吧……
skyWalker_ONLY 2014-10-11
  • 打赏
  • 举报
回复
引用 6 楼 u012760284 的回复:
[quote=引用 3 楼 sky_walker85 的回复:] [quote=引用 2 楼 u012760284 的回复:] [quote=引用 1 楼 sky_walker85 的回复:] cluster2应该是另一个集群中的namenode,只要在mycluster所在主机的hosts中配置cluster2及其对应的ip地址就行了
cluster2是HA的,有多个namenode,这要怎么配[/quote] 可以配置为HA下处于active的namenode,楼主试试吧,我没有你这样的环境,所以没法替你试[/quote] 我换成active的namenode,可以走map了,只是在map的时候又会反复出现这个错误,查了很久也没有找到解决的办法: java.io.IOException: Copied: 0 Skipped: 0 Failed: 1 at org.apache.hadoop.tools.DistCp$CopyFilesMapper.close(DistCp.java:582) at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:57) at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372) at org.apache.hadoop.mapred.Child$4.run(Child.java:255) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059) at org.apache.hadoop.mapred.Child.main(Child.java:249)[/quote] 楼主把完整的错误信息贴出来吧
skyWalker_ONLY 2014-10-11
  • 打赏
  • 举报
回复
引用 7 楼 u012760284 的回复:
map执行完后出现job fail,文件目录复制过去了,文件有很多没有复制成功的
DistCp 一般用于在集群内复制文件,而你现在的情况是跨集群了。
狂热的土豆 2014-10-11
  • 打赏
  • 举报
回复
引用 4 楼 wulinshishen 的回复:
mycluster 和 cluster2 都是NameNode吧 <property> <name>dfs.nameservices</name> <value>mycluster</value> </property> <property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>machine1.example.com:8020</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>machine2.example.com:8020</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>machine1.example.com:50070</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>machine2.example.com:50070</value> </property> hadoop distcp hdfs://nn1:8020/src hdfs://nn2:8020/dest 是要这样使用吗?
不是的,是两个集群环境,想通过distcp在两个环境间传输文件
狂热的土豆 2014-10-11
  • 打赏
  • 举报
回复
map执行完后出现job fail,文件目录复制过去了,文件有很多没有复制成功的
狂热的土豆 2014-10-11
  • 打赏
  • 举报
回复
引用 3 楼 sky_walker85 的回复:
[quote=引用 2 楼 u012760284 的回复:] [quote=引用 1 楼 sky_walker85 的回复:] cluster2应该是另一个集群中的namenode,只要在mycluster所在主机的hosts中配置cluster2及其对应的ip地址就行了
cluster2是HA的,有多个namenode,这要怎么配[/quote] 可以配置为HA下处于active的namenode,楼主试试吧,我没有你这样的环境,所以没法替你试[/quote] 我换成active的namenode,可以走map了,只是在map的时候又会反复出现这个错误,查了很久也没有找到解决的办法: java.io.IOException: Copied: 0 Skipped: 0 Failed: 1 at org.apache.hadoop.tools.DistCp$CopyFilesMapper.close(DistCp.java:582) at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:57) at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372) at org.apache.hadoop.mapred.Child$4.run(Child.java:255) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059) at org.apache.hadoop.mapred.Child.main(Child.java:249)
skyWalker_ONLY 2014-10-11
  • 打赏
  • 举报
回复
引用 20 楼 u012760284 的回复:
[quote=引用 19 楼 sky_walker85 的回复:] [quote=引用 18 楼 u012760284 的回复:] [quote=引用 16 楼 sky_walker85 的回复:] 楼主使用参数-i再执行一下吧
加了-i好像成功执行了,看了一下文件也都复制成功了,好神奇![/quote] 这是因为distcp 实际执行的是MapReduce作业,而如果一个map任务失败后,会导致后面任务不执行,而实际失败的任务却不会影响最终结果[/quote] 如果是这样的话,究竟是什么导致的第一个失败的map任务呢……而且加上-i只是忽略第一个失败的map任务保证后面的任务执行,仍旧是会有一个失败的map任务[/quote] 失败一个map不一定会导致整个作业失败,并且失败的原因可能很多,从错误信息中我没有看出原因。MapReduce的特点不就是在失败一个任务的情况下能确保整个作业正确执行吗
狂热的土豆 2014-10-11
  • 打赏
  • 举报
回复
引用 19 楼 sky_walker85 的回复:
[quote=引用 18 楼 u012760284 的回复:] [quote=引用 16 楼 sky_walker85 的回复:] 楼主使用参数-i再执行一下吧
加了-i好像成功执行了,看了一下文件也都复制成功了,好神奇![/quote] 这是因为distcp 实际执行的是MapReduce作业,而如果一个map任务失败后,会导致后面任务不执行,而实际失败的任务却不会影响最终结果[/quote] 如果是这样的话,究竟是什么导致的第一个失败的map任务呢……而且加上-i只是忽略第一个失败的map任务保证后面的任务执行,仍旧是会有一个失败的map任务
skyWalker_ONLY 2014-10-11
  • 打赏
  • 举报
回复
引用 18 楼 u012760284 的回复:
[quote=引用 16 楼 sky_walker85 的回复:] 楼主使用参数-i再执行一下吧
加了-i好像成功执行了,看了一下文件也都复制成功了,好神奇![/quote] 这是因为distcp 实际执行的是MapReduce作业,而如果一个map任务失败后,会导致后面任务不执行,而实际失败的任务却不会影响最终结果
狂热的土豆 2014-10-11
  • 打赏
  • 举报
回复
引用 16 楼 sky_walker85 的回复:
楼主使用参数-i再执行一下吧
加了-i好像成功执行了,看了一下文件也都复制成功了,好神奇!
  • 打赏
  • 举报
回复
hadoop distcp hdfs://cluser1:9200/user/user1/log hdfs://cluster2:54310/user/user2/log 楼主把端口号加上试试
skyWalker_ONLY 2014-10-09
  • 打赏
  • 举报
回复
引用 2 楼 u012760284 的回复:
[quote=引用 1 楼 sky_walker85 的回复:] cluster2应该是另一个集群中的namenode,只要在mycluster所在主机的hosts中配置cluster2及其对应的ip地址就行了
cluster2是HA的,有多个namenode,这要怎么配[/quote] 可以配置为HA下处于active的namenode,楼主试试吧,我没有你这样的环境,所以没法替你试
狂热的土豆 2014-10-09
  • 打赏
  • 举报
回复
引用 1 楼 sky_walker85 的回复:
cluster2应该是另一个集群中的namenode,只要在mycluster所在主机的hosts中配置cluster2及其对应的ip地址就行了
cluster2是HA的,有多个namenode,这要怎么配
skyWalker_ONLY 2014-10-09
  • 打赏
  • 举报
回复
cluster2应该是另一个集群中的namenode,只要在mycluster所在主机的hosts中配置cluster2及其对应的ip地址就行了
skyWalker_ONLY 2014-10-09
  • 打赏
  • 举报
回复
cluster2 应该也是个集群吧,里面有多个NameNode
加载更多回复(1)

20,811

社区成员

发帖
与我相关
我的任务
社区描述
Hadoop生态大数据交流社区,致力于有Hadoop,hive,Spark,Hbase,Flink,ClickHouse,Kafka,数据仓库,大数据集群运维技术分享和交流等。致力于收集优质的博客
社区管理员
  • 分布式计算/Hadoop社区
  • 涤生大数据
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧