2017-02-21 8 views
0

私はHadoopの初心者ですが、MRを使用してHBaseにデータをインポートしようとしましたが失敗しました。コンソールにはエラー情報を示しています。私はグーグルとstackoverflowのことで、いくつかの解決策を見つけたMapReduceタスクを開始できません。メインクラスを見つけることができません。org.apache.hadoop.mapreduce.v2.app.MRAppMaster

Container exited with a non-zero exit code 1. Last 4096 bytes of stderr : 
Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster 

Here is the screenshot of the whole error log page

を、ほとんどのソリューションは、それがmapred-site.xmlの糸-site.xmlのの構成に関連していると述べましたしかし、私は私に何も間違ったものは見つけませんでした。 mapreduce.application.classpathに問題がありますか?

mapred-site.xmlの

<configuration> 
     <property> 
       <name>mapreduce.framework.name</name> 
       <value>yarn</value> 
     </property> 
     <property> 
       <name>mapreduce.jobhistory.address</name> 
       <value>master:10020</value> 
     </property> 
     <property> 
       <name>mapreduce.jobhistory.webapp.address</name> 
       <value>master:19888</value> 
     </property> 
     <property> 
       <name>mapreduce.application.classpath</name> 
       <value> 
        /usr/local/hadoop/etc/hadoop, 
        /usr/local/hadoop/share/hadoop/common/*, 
        /usr/local/hadoop/share/hadoop/common/lib/*, 
        /usr/local/hadoop/share/hadoop/hdfs/*, 
        /usr/local/hadoop/share/hadoop/hdfs/lib/*, 
        /usr/local/hadoop/share/hadoop/mapreduce/*, 
        /usr/local/hadoop/share/hadoop/mapreduce/lib/*, 
        /usr/local/hadoop/share/hadoop/yarn/*, 
        /usr/local/hadoop/share/hadoop/yarn/lib/* 
       </value> 
     </property> 
     <property> 
       <name>mapreduce.app-submisson.cross-platform</name>> 
       <value>true</value>> 
      </property>> 
</configuration> 

糸-site.xmlの

<configuration> 
     <property> 
      <name>yarn.nodemanager.aux-services</name> 
      <value>mapreduce_shuffle</value> 
     </property> 
     <property> 
      <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> 
      <value>org.apache.hadoop.mapred.ShuffleHandler</value> 
     </property> 
     <property> 
      <name>yarn.resourcemanager.address</name> 
      <value>master:8032</value> 
     </property> 
     <property> 
      <name>yarn.resourcemanager.scheduler.address</name> 
      <value>master:8030</value> 
     </property> 
     <property> 
      <name>yarn.resourcemanager.resource-tracker.address</name> 
      <value>master:8031</value> 
     </property> 
     <property> 
      <name>yarn.resourcemanager.admin.address</name> 
      <value>master:8033</value> 
     </property> 
     <property> 
      <name>yarn.resourcemanager.webapp.address</name> 
      <value>master:8088</value> 
     </property> 
     <property> 
      <name>yarn.application.classpath</name> 
      <value> 
       /usr/local/hadoop/etc/hadoop, 
       /usr/local/hadoop/share/hadoop/common/*, 
       /usr/local/hadoop/share/hadoop/common/lib/*, 
       /usr/local/hadoop/share/hadoop/hdfs/*, 
       /usr/local/hadoop/share/hadoop/hdfs/lib/*, 
       /usr/local/hadoop/share/hadoop/mapreduce/*, 
       /usr/local/hadoop/share/hadoop/mapreduce/lib/*, 
       /usr/local/hadoop/share/hadoop/yarn/*, 
       /usr/local/hadoop/share/hadoop/yarn/lib/* 
      </value> 
     </property> 
</configuration> 
+0

これらのプロパティは、ジョブが送信されるすべてのスレーブノードおよびクライアントノードで使用できますか。 – franklinsijo

+0

はい、もちろんです。すでにNamenodeと2 Datanodeの両方に適用されています。 – haohuily

+0

これが解決するかどうか不明な場合は、すでに環境変数HADOOP_MAPRED_HOMEを設定しておかないと、 – franklinsijo

答えて

0

クラスパスは、あなたのmapreduce.application.classpathyarn.application.classpathを変更し、(:)コンマの代わりに(、)コロンで区切られるべき/usr/local/hadoop/etc/hadoop:/usr/local/hadoop/share/hadoop/common/*:...のようになり、問題が解決するかどうか確認してください。

+0

'yarn.application.classpath':YARNアプリケーションのCLASSPATH。 CLASSPATHエントリのコンマ区切りリスト。 [こちら](https://hadoop.apache.org/docs/r2.4.1/hadoop-yarn/hadoop-yarn-common/yarn-default.xml)を参照してください。 – franklinsijo

関連する問題