2

Windows で Hadoop を試してみたいと思っています。Windows 7 ノートブックに Windows Azure HDInsight プレビューを単一ノードとしてインストールしました。ダッシュボードとノードが稼働中で、HDFS が機能しています。ただし、MapReduce ジョブを実行すると、「有効な Inet アドレスではありません」というエラー メッセージが表示されて失敗します。

c:\Hadoop\GettingStarted>powershell -ExecutionPolicy unrestricted /F runSamples.
ps1 w3c small java totalhits
Moved to trash: hdfs://localhost:8020/w3c/out
12/12/10 13:50:16 WARN mapred.JobClient: Use GenericOptionsParser for parsing th
e arguments. Applications should implement Tool for the same.
12/12/10 13:50:16 WARN util.NativeCodeLoader: Unable to load native-hadoop libra
ry for your platform... using builtin-java classes where applicable
12/12/10 13:50:16 WARN snappy.LoadSnappy: Snappy native library not loaded
12/12/10 13:50:16 INFO mapred.FileInputFormat: Total input paths to process : 1
12/12/10 13:50:17 INFO mapred.JobClient: Running job: job_201212101301_0001
12/12/10 13:50:18 INFO mapred.JobClient:  map 0% reduce 0%
12/12/10 13:50:27 INFO mapred.JobClient: Job complete: job_201212101301_0001
12/12/10 13:50:27 INFO mapred.JobClient: Counters: 0
12/12/10 13:50:27 INFO mapred.JobClient: Job Failed: Job initialization failed:
java.net.UnknownHostException: Marc_Red_Data is not a valid Inet address
        at org.apache.hadoop.net.NetUtils.verifyHostnames(NetUtils.java:569)
        at org.apache.hadoop.mapred.JobInProgress.initTasks(JobInProgress.java:7
12)
        at org.apache.hadoop.mapred.JobTracker.initJob(JobTracker.java:4214)
        at org.apache.hadoop.mapred.JobInitializationPoller$JobInitializationThr
ead.initializeJobs(JobInitializationPoller.java:137)
        at org.apache.hadoop.mapred.JobInitializationPoller$JobInitializationThr
ead.run(JobInitializationPoller.java:108)

Exception in thread "main" java.io.IOException: Job failed!
        at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1265)
        at microsoft.hadoop.w3c.TotalHitsForPage.main(TotalHitsForPage.java:79)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)

ジョブログを見ると、次のプロパティに Marc_Red_Data が存在することがわかります。

<property><name>mapreduce.job.submithost</name><value>Marc_Red_Data</value></property>

なんとなく名前がついたのですが、どうすれば解決できるのか途方に暮れています。これを解決する方法を知っている人はいますか?

4

1 に答える 1

4

マシンのホスト名にアンダースコアがあると、Hadoop はそれを好まない。/etc/hostname と /etc/hosts を編集し、Marc_Red_data の両方のインスタンスを MarcRedData に変更してから再起動します。

私は同じ問題に頭を悩ませていました.あなたの投稿を見つけたとき、私のようなあなたのホスト名にアンダースコアがあることに気付きました. マシンのホスト名を変更したところ、正常に動作するようになりました。Hadoop は、ホスト名を URL と同じように解決しようとするライブラリを使用していると思われ、URL にアンダースコアを含めることはできないため、エラーになります。

[編集] あなたが Windows を実行しているということに以前は気がつきませんでした。そのため、ホスト名を変更するプロセスが異なります。 http://www.howtogeek.com/howto/windows-vista/change-your-computer-name-in-windows-vista/

于 2012-12-13T20:59:53.977 に答える