正在做课堂作业。在我的本地系统中运行映射器和减速器代码一切顺利,并获得了所需的输出。我感觉Hadoop有问题。
我的朋友让我检查Hadoop文件夹中的日志。第一个有这个:
2023 年 9 月 12 日 7:58:26 PM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory 注册 信息:将 org.apache.hadoop.mapreduce.v2.app.webapp.JAXBContextResolver 注册为提供程序类 2023 年 9 月 12 日 7:58:26 PM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory 注册 信息:将 org.apache.hadoop.yarn.webapp.GenericExceptionHandler 注册为提供程序类 2023 年 9 月 12 日 7:58:26 PM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory 注册 信息:将 org.apache.hadoop.mapreduce.v2.app.webapp.AMWebServices 注册为根资源类 2023 年 9 月 12 日下午 7:58:26 com.sun.jersey.server.impl.application.WebApplicationImpl _initiate 信息:启动泽西岛应用程序,版本“泽西岛:1.19 02/11/2015 03:25 AM” 2023 年 9 月 12 日 7:58:26 PM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory getComponentProvider 信息:将 org.apache.hadoop.mapreduce.v2.app.webapp.JAXBContextResolver 绑定到范围为“Singleton”的 GuiceManagedComponentProvider 2023 年 9 月 12 日 7:58:26 PM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory getComponentProvider 信息:将 org.apache.hadoop.yarn.webapp.GenericExceptionHandler 绑定到范围为“Singleton”的 GuiceManagedComponentProvider 2023 年 9 月 12 日 7:58:26 PM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory getComponentProvider 信息:将 org.apache.hadoop.mapreduce.v2.app.webapp.AMWebServices 绑定到范围为“PerRequest”的 GuiceManagedComponentProvider log4j:WARN 找不到记录器 (org.apache.hadoop.mapreduce.v2.app.MRAppMaster) 的附加程序。 log4j:WARN 请正确初始化 log4j 系统。 log4j:警告请参阅 http://logging.apache.org/log4j/1.2/faq.html#noconfig 了解更多信息。
最后一个是空的。其他人都有这个:
/usr/bin/env: 'python': 没有这样的文件或目录
现在,Python 已安装。然而,这是我第一次在虚拟机上运行 Hadoop 作业。我按照教授提供的安装进行操作,所以我真的不知道出了什么问题。
您的文件顶部似乎可能有
#!/usr/bin/env python
?
该错误是指
python
二进制文件不在操作系统 PATH
上(即使可能已安装),因此无法使用 env
命令进行设置。
该文件标题不是必需的,只要您可以将
python
可执行文件传递给 Mapreduce 命令即可。
但是,在创建 Spark / PySpark 或
mrjob
库之后,没有人真正像这样编写 MapReduce,所以不幸的是,我认为您正在学习过时的信息。