請教, 我亦碰到類似的 error message :
Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS: hdfs://HB:9000/t1.txt, expected: hdfs://HA:9000 at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:384)
at org.apache.hadoop.hdfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:129)
at org.apache.hadoop.hdfs.DistributedFileSystem.append(DistributedFileSystem.java:175)
at org.apache.hadoop.fs.FileSystem.append(FileSystem.java:682)
at Append.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
我的Hadoop 架構
共二個hadoop 集群:
HA(NN)+A1(DN)
HB(NN)+B1(DN)
每個 node /etc/hosts 皆設定如下:
127.0.0.1 localhost
192.168.2.110 HA
192.168.2.111 A1
192.168.2.112 HB
192.168.2.113 B1
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
core-site.xml <name>fs.default.name</name>
<value>hdfs://HA:9000</value>
=== 產生 error message 所執行動作: 在 HA 對 HB 做 Append, command 如下:
hadoop@HA:/usr/local/hadoop-1.0.4/my_code$ /usr/local/hadoop-1.0.4/bin/hadoop jar output.jar Append
hdfs://HB:9000/t1.txtAppend 沒有成功, 得到一開始的 error message.
Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS: hdfs://HB:9000/t1.txt, expected: hdfs://HA:9000問題可能會是在...., 不可對其他的 hadoop 做 append ?? 只接受自己對自己?!
error message 最後一句看起來是這樣?! --> expected:
hdfs://HA:9000