Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
hadoop distcp无法找到或加载主类org.apache.hadoop.mapreduce.v2.app.MRAppMaster_Hadoop_Amazon S3_Distcp - Fatal编程技术网

hadoop distcp无法找到或加载主类org.apache.hadoop.mapreduce.v2.app.MRAppMaster

hadoop distcp无法找到或加载主类org.apache.hadoop.mapreduce.v2.app.MRAppMaster,hadoop,amazon-s3,distcp,Hadoop,Amazon S3,Distcp,当我运行distcp将数据从s3移动到本地hdfs时,在启动map reduce作业以复制数据时会出现以下异常: Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster 我尽可能检查了每一篇在线文章。 我的warn site.xml文件包含 .application.classpath $HADOOP\u CONF\u DIR, $HADOOP\u COMMON\u HOM

当我运行distcp将数据从s3移动到本地hdfs时,在启动map reduce作业以复制数据时会出现以下异常:

Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster
我尽可能检查了每一篇在线文章。 我的
warn site.xml
文件包含


.application.classpath
$HADOOP\u CONF\u DIR,
$HADOOP\u COMMON\u HOME/*,
$HADOOP\u COMMON\u HOME/lib/*,
$HADOOP\u HDFS\u HOME/*,
$HADOOP\u HDFS\u HOME/lib/*,
$HADOOP\u MAPRED\u HOME/*,
$HADOOP\u MAPRED\u HOME/lib/*,
$HADOOP\u Thread\u HOME/*,
$HADOOP\u Thread\u HOME/lib/*,
$HADOOP_HOME/share/HADOOP/mapreduce/,
$HADOOP_HOME/share/HADOOP/mapreduce/lib/
对于集群的每个节点,我都进行了检查,并设置了这些变量并指向正确的文件夹,实际上
$HADOOP\u HOME/share/HADOOP/mapreduce/
是指向
HADOOP-mapreduce-client-app-2.7.1.jar
的那个jar,它包含
org.apache.HADOOP.mapreduce.v2.app.mrapp.MRAppMaster


有什么建议吗?

我也遇到了这个问题。 在我的hadoop发行版中,没有目录$hadoop\u HOME/share/hadoop/mapreduce/,也没有目录$hadoop\u HOME/share/hadoop/mapreduce/lib/, 但是有目录$HADOOP\u HOME/share/HADOOP/mapreduce1/$HADOOP\u HOME/share/HADOOP/mapreduce2/

修复目录路径,就可以了


小心,不要复制warn default.xml中的默认值!!!

我也遇到了这个问题。 在我的hadoop发行版中,没有目录$hadoop\u HOME/share/hadoop/mapreduce/,也没有目录$hadoop\u HOME/share/hadoop/mapreduce/lib/, 但是有目录$HADOOP\u HOME/share/HADOOP/mapreduce1/$HADOOP\u HOME/share/HADOOP/mapreduce2/

修复目录路径,就可以了


小心,不要复制warn default.xml中的默认值!!!

我也遇到了同样的问题,花了几天时间才解决。 有一个失踪的问题

<property>
    <name>mapreduce.application.classpath</name>
    <value>
       $HADOOP_MAPRED_HOME/*,
       $HADOOP_MAPRED_HOME/lib/*,
       $MR2_CLASSPATH,
       $CDH_MR2_HOME
    </value>
</property>
我还注意到错误:无法在作业执行日志中找到或加载主类org.apache.hadoop.mapreduce.v2.app.MRAppMaster

要了解这一点,您可以转到由纱线配置中的hadoop.log.dir选项定义的NodeManager主机上的日志目录(在我的例子中,它是/var/log/cloudera\u logs/hadoop纱线/)。在那里您将看到文件hadoop cmf纱线节点管理器*。它可以帮助您遵循所有工作流,包括运行脚本和/container目录中的清理过程。 这里最好注意脚本default\u container\u executor.sh。 此纸条通常在午餐作业之前导出所有系统变量。在我的例子中,与$HADOOP\u MAPRED.*相关的所有内容都丢失了

然后我开始查看我的服务器配置选项以查找mapreduce.application.classpath选项,它已经指向了正确的变量。由于某些原因,它们在作业运行时不适用

在这之后,我尝试在客户端将相同的变量添加到mapred site.xml,结果成功了

请注意,$HADOOP\u MAPRED\u HOME应指向HADOOP mapreduce客户端app-.jar的有效位置,其中打包了org.apache.HADOOP.mapreduce.v2.app.MRAppMaster。如果您不确定丢失的类属于哪个jar,请使用MAVEN CENTRAL中的高级搜索


我猜它可能与纱线.nodemanager.env白名单选项有关。根据Cloudera“容器可以覆盖的环境变量,而不是使用NodeManager的默认值”,但我不确定这一点

我也有同样的问题,花了几天时间来解决。 有一个失踪的问题

<property>
    <name>mapreduce.application.classpath</name>
    <value>
       $HADOOP_MAPRED_HOME/*,
       $HADOOP_MAPRED_HOME/lib/*,
       $MR2_CLASSPATH,
       $CDH_MR2_HOME
    </value>
</property>
我还注意到错误:无法在作业执行日志中找到或加载主类org.apache.hadoop.mapreduce.v2.app.MRAppMaster

要了解这一点,您可以转到由纱线配置中的hadoop.log.dir选项定义的NodeManager主机上的日志目录(在我的例子中,它是/var/log/cloudera\u logs/hadoop纱线/)。在那里您将看到文件hadoop cmf纱线节点管理器*。它可以帮助您遵循所有工作流,包括运行脚本和/container目录中的清理过程。 这里最好注意脚本default\u container\u executor.sh。 此纸条通常在午餐作业之前导出所有系统变量。在我的例子中,与$HADOOP\u MAPRED.*相关的所有内容都丢失了

然后我开始查看我的服务器配置选项以查找mapreduce.application.classpath选项,它已经指向了正确的变量。由于某些原因,它们在作业运行时不适用

在这之后,我尝试在客户端将相同的变量添加到mapred site.xml,结果成功了

请注意,$HADOOP\u MAPRED\u HOME应指向HADOOP mapreduce客户端app-.jar的有效位置,其中打包了org.apache.HADOOP.mapreduce.v2.app.MRAppMaster。如果您不确定丢失的类属于哪个jar,请使用MAVEN CENTRAL中的高级搜索

我猜它可能与纱线.nodemanager.env白名单选项有关。根据Cloudera“容器可以覆盖的环境变量,而不是使用NodeManager的默认值”,但我不确定这一点

实际上,这
<property>
 <name>yarn.application.classpath</name>
 <value>$HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/*,$HADOOP_COMMON_HOME/lib/*,$HADOOP_HDFS_HOME/*,$HADOOP_HDFS_HOME/lib/*,$HADOOP_YARN_HOME/*,$HADOOP_YARN_HOME/lib/*,$HADOOP_MAPRED_HOME/*,$HADOOP_MAPRED_HOME/lib/*</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/*,$HADOOP_MAPRED_HOME/lib/*</value>
</property>
<property>
<name>yarn.application.classpath</name>
<value>/etc/hadoop/conf,/usr/lib/hadoop/*,/usr/lib/hadoop/lib/*,/usr/lib/hadoop-hdfs/*,/usr/lib/hadoop-hdfs/lib/*,/usr/lib/hadoop-yarn/*,/usr/lib/hadoop-yarn/lib/*,/usr/lib/hadoop-mapreduce/*,/usr/lib/hadoop-mapreduce/lib/*</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>/usr/lib/hadoop-mapreduce/*,/usr/lib/hadoop-mapreduce/lib/*</value>
</property>