0

私は最近Hadoopを始めましたが、最初の瞬間にいくつかの問題が発生しました。これまでのところ解決できましたが、克服できていないものがあります. 問題は、すべてが正常に機能しているように見えるのですが、Hadoop ジョブを起動しようとするとハングアップするだけで、これを機能させる方法がわかりません。実行フレームは次のようになります。

13/05/22 20:02:43 INFO support.ClassPathXmlApplicationContext: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@3fe9029b: startup date [Wed May 22 20:02:43 CEST 2013]; root of context hierarchy
13/05/22 20:02:43 INFO xml.XmlBeanDefinitionReader: Loading XML bean definitions from class path resource [hadoop-configuration.xml]
13/05/22 20:02:43 INFO config.PropertyPlaceholderConfigurer: Loading properties file from class path resource [hadoop.properties]
13/05/22 20:02:43 INFO support.DefaultListableBeanFactory: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@2d062bb6: defining beans [org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,hadoopConfiguration,foundation-job,JulianSchJobRunner]; root of factory hierarchy
13/05/22 20:02:44 INFO config.PropertiesFactoryBean: Loading properties file from class path resource [hadoop.properties]
13/05/22 20:02:44 INFO mapreduce.JobRunner: Starting job [foundation-job]

また、Cloudera の CDH4 と Hadoop の Spring を使用していると言わざるを得ません。

最後の行で言ったように、停止して実行を進めません。よろしくお願いします

わかりました、ログを調べてみましたが、いくつかの例外が発生します:

2013-05-22 21:01:36,254 WARN org.apache.hadoop.mapred.JobTracker: Writing to file hdfs://localhost.localdomain:8020/tmp/mapred/system/jobtracker.info failed!
2013-05-22 21:01:36,254 WARN org.apache.hadoop.mapred.JobTracker: FileSystem is not ready yet!
2013-05-22 21:01:36,262 WARN org.apache.hadoop.mapred.JobTracker: Failed to initialize recovery manager. 
org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes instead of minReplication (=1).  There are 1 datanode(s) running and no node(s) are excluded in this operation.

この問題は、HDFS のアクセス許可に関連している可能性がありますか、それ以外の場合は関係ありませんか?

4

1 に答える 1

0

わかりました、解決しました。将来のルックアップのために、これらのディレクトリファイルパスを、より多くのメモリが割り当てられたマウントポイントに変更することで問題が解決したと言わざるを得ません(問題はNNがメモリ不足でした):

dfs.name.dir=${HOME}/path-to-desired-location instead of the basepath stated by default:
dfs.name.dir=/dfs/nn

また、datanode と secondarynamenode の両方でまったく同じことを行う必要があり、namenode をフォーマットして HDFS サービスを再起動するだけです。

hdfs namenode -format

これが他の誰かに役立つことを願っています、乾杯

于 2013-05-25T10:57:57.137 に答える