一、Permission denied
1、Win系统下用Eclipse中运行远程hadoop MapReduce程序出现报错
org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: Permission denied: user=xxx, access=WRITE, inode="xxx":xxx:supergroup:rwxr-xr-x
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
因为Eclipse使用hadoop插件提交作业时,会默认用windows系统的用户去将作业写入hdfs文件系统中, 由于此用户对hadoop目录并没有写入权限,所以导致异常的发生。
解决方法为:
方法一:放开 hadoop 目录的权限 , 命令如下 :$ hadoop fs -chmod -R 777 /
当然,也可以只针对某个目录操作:
如对命令不熟悉,可以直接用如下命令查看:
方法二:直接在hdfs的配置文件中,将dfs.permissions修改为False
二、空指针错误:
在我的上篇hadoop2.2.0安装教程中有人遇到空指针错误:“Exception in thread "main" java.lang.NullPointerException”
该错误的修正,需做如下操作:
1、下载hadoop.dll、winutils.exe文件放到eclipse所连接的hadoop的bin目录下(win系统里边);
2、win系统里边的C盘下的system32目录放一份;
3、环境变量的PATH里边加一下1中的bin目录。
三、有人日志打不出来,报警告信息:
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
这个需要在项目的src下面新建file名为log4j.properties的文件
内容为:
# Configure logging for testing: optionally with log file
#log4j.rootLogger=debug,appender
log4j.rootLogger=info,appender
#log4j.rootLogger=error,appender
#\u8F93\u51FA\u5230\u63A7\u5236\u53F0
log4j.appender.appender=org.apache.log4j.ConsoleAppender
#\u6837\u5F0F\u4E3ATTCCLayout
log4j.appender.appender.layout=org.apache.log4j.TTCCLayout
如图所示:
四、自己在eclipse打的jar包放到linux中运行时报错:
Exception in thread "main" java.lang.ClassNotFoundException:后边跟着自定义参数(如目录等)
解决方法:
1、可以重新在eclipse中打包,打包时记得选择main class。
2、另外,可以在打包时选择“Runnable JAR file”,打成java运行jar包。(该种方法会把程序中相关的包都打进去,会比较大,不过可以保证能运行)
分享到:
相关推荐
在实际环境中,我们需要配置 Hadoop 集群,设置输入文件路径,编译并打包 WordCount 程序,最后通过 Hadoop 的 `hadoop jar` 命令提交作业到集群运行。调试时,可以查看日志输出,检查错误信息,优化性能。 通过...
实验报告的标题为“云计算技术实验报告三运行Hadoop MapReduce程序”,这表明实验的核心是了解和实践Hadoop MapReduce的编程模型。MapReduce是一种分布式计算框架,常用于处理和生成大规模数据集,由Google提出并被...
4. **运行Job**:配置好MapReduce作业后,提交到Hadoop集群进行执行。集群会自动调度任务,将工作分配给各个节点。 5. **结果收集**:MapReduce完成后,最终的词频统计结果会被写入HDFS,可以进一步进行可视化或...
本篇文章将详细讲解如何利用Hadoop MapReduce实现TF-IDF(Term Frequency-Inverse Document Frequency)算法,这是一种在信息检索和文本挖掘中用于评估一个词在文档中的重要性的统计方法。 首先,我们要理解TF-IDF...
### 使用命令行编译打包运行自己...以上就是使用命令行编译打包运行自己的MapReduce程序的过程详解,包括了Hadoop 2.6.0版本的变化、编译打包流程、运行命令解析以及使用Eclipse进行开发的方法。希望对初学者有所帮助。
### Hadoop MapReduce作业卡死问题的解决方法 #### 一、问题背景 在使用Hadoop MapReduce进行大规模数据处理的过程中,遇到了一个棘手的问题——部分MapReduce作业长时间卡死,严重影响了系统的运行效率和资源利用...
《Hadoop MapReduce Cookbook 源码》是一本专注于实战的书籍,旨在帮助读者通过具体的例子深入理解并掌握Hadoop MapReduce技术。MapReduce是大数据处理领域中的核心组件,尤其在处理大规模分布式数据集时,它的重要...
在Windows环境下,使用Eclipse开发MapReduce程序时,必须确保所有必要的Hadoop库都被正确引入。这是因为MapReduce是Hadoop生态系统中的核心组件,用于处理分布式计算任务。以下是一些关于如何在Eclipse中配置和使用...
《Hadoop MapReduce实战手册》是一本专注于大数据处理技术的专著,主要针对Apache Hadoop中的MapReduce框架进行了深入的探讨。MapReduce是Hadoop生态系统中的核心组件之一,用于处理和生成大规模数据集。该书旨在...
在大数据处理领域,Hadoop MapReduce是一个至关重要的组件,它为海量数据的并行处理提供了分布式计算框架。本文将深入探讨如何使用...通过深入学习和实践,开发者可以利用Hadoop MapReduce解决大数据处理中的各种问题。
总之,这个项目旨在展示如何用Python和Hadoop MapReduce解决社交网络中的相似用户分析问题。虽然代码可能不够精致,但它提供了一个起点,让人们了解如何在实际问题中应用这两个工具。对于想要进一步学习大数据处理的...
* MapReduce 程序的优化方法 MapReduce 项目实践 在实践中,我们可以使用 MapReduce 来解决各种大数据处理问题。以下是一些 MapReduce 项目实践: * WordCount 程序编写及代码分析 * 新建一个 MapReduce 工程 * ...
附件是一个简单的 Hadoop MapReduce 程序示例,用于统计文本文件中单词出现的次数。、 要运行这个程序,你需要将上述代码保存为 .java 文件,然后编译并打包成一个 JAR 文件。之后,你可以使用 Hadoop 的命令行工具...
1、程序设计模式不容易使用,而且 Hadoop 的 Map Reduce API 太过低级,很难提高开发者的效率。 2、有运行效率问题,MapReduce 需要将中间产生的数据保存到硬盘中,因此会有读写数据延迟问题。 3、不支持实时处理...
总之,《Hadoop MapReduce v2 Cookbook》第二版深入介绍了Hadoop MapReduce V2的相关技术和实践方法,适合于想要深入了解和掌握Hadoop MapReduce V2的开发者和技术人员阅读。通过本书的学习,读者不仅可以了解Hadoop...
接着,安装Hadoop-Eclipse-Plugin插件,该插件允许开发者在Eclipse中直接编写、调试和运行MapReduce程序。配置插件时,要确保指向正确的Hadoop安装路径,以便Eclipse能识别Hadoop环境。通过Eclipse操作HDFS文件,...
在进行Hadoop MapReduce的学习和开发时,尤其是在Windows环境下,我们通常需要搭建一个模拟的分布式环境来进行测试。这个"hadopp学习本地win测试mapreduce程序,所要用到的环境软件.rar"压缩包文件包含了实现这一...
通过熟练掌握这些调试技巧,开发者可以更有效地定位和解决问题,从而优化 Hadoop MapReduce 应用程序的性能和效率。在实际操作中,不断实践和理解 Hadoop 生态系统将使你能够更好地驾驭这个强大的大数据处理工具。
(3)调试和运行MepReduce程序 (4)完成上课老师演示的内容 二、实验环境 Windows 10 VMware Workstation Pro虚拟机 Hadoop环境 Jdk1.8 二、实验内容 1.单词计数实验(wordcount) (1)输入start-all.sh启动hadoop...