文档章节

使用Eclipse运行Hadoop 2.x MapReduce程序常见问题

东方神剑
 东方神剑
发布于 2014/11/10 10:35
字数 645
阅读 136
收藏 1

1、 当我们编写好MapReduce程序,点击Run on Hadoop的时候,Eclipse控制台输出如下内容:

这个信息告诉我们没有找到log4j.properties文件。如果没有这个文件,程序运行出错的时候,就没有打印日志,因此我们会很难调试。

解决方法:复制$HADOOP_HOME/etc/hadoop/目录下的log4j.properties文件到MapReduce项目 src文件夹下。

2、当执行MapReduce程序的时候,Eclipse可能会报告堆益处的错误。 此时,MapReduce程序执行的out目录已经被创建,但是此时目录为空,再重新运行程序之前我们需要删除这个输出目录。如下图所示:

                                                           

分析:首先我们可以输入命令(java -client -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version | grep -i heapsize),来查看当前JDK支持的最大堆。然后在此基础上增加堆大小。

解决方案:在当前运行程序的运行配置中设置VM arguments参数,如下图所示:

 

3.在运行MapReduce程序的时候,可能会报告如下警告:

 

Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通过本地库,Hadoop可以更加高效地执行某一些操作。

目前在Hadoop中,本地库应用在文件的压缩上面:

在使用这两种压缩方式的时候,Hadoop默认会从$HADOOP_HOME/lib/native/Linux-*目录中加载本地库。

如果加载成功,输出为:

DEBUG util.NativeCodeLoader - Trying to load the custom-built native-hadoop library...
INFO util.NativeCodeLoader - Loaded the native-hadoop library 

如果加载失败,输出为:

INFO util.NativeCodeLoader - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

在Hadoop的配置文件core-site.xml中可以设置是否使用本地库:

<property>
  <name>hadoop.native.lib</name>
  <value>true</value>
  <description>Should native hadoop libraries, if present, be used.</description>
</property>

Hadoop默认的配置为启用本地库。

另外,可以在环境变量中设置使用本地库的位置:

export JAVA_LIBRARY_PATH=/path/to/hadoop-native-libs

有的时候也会发现Hadoop自带的本地库无法使用,这种情况下就需要自己去编译本地库了。在$HADOOP_HOME目录下,使用如下命令即可:

ant compile-native

编译完成后,可以在$HADOOP_HOME/build/native目录下找到相应的文件,然后指定文件的路径或者移动编译好的文件到默认目录下即可。

本文转载自:http://my.oschina.net/997155658/blog/335959

共有 人打赏支持
东方神剑

东方神剑

粉丝 65
博文 126
码字总数 93166
作品 0
朝阳
程序员
私信 提问
使用Eclipse运行Hadoop 2.x MapReduce程序常见问题

1、 当我们编写好MapReduce程序,点击Run on Hadoop的时候,Eclipse控制台输出如下内容: 这个信息告诉我们没有找到log4j.properties文件。如果没有这个文件,程序运行出错的时候,就没有打印...

chapin
2014/10/21
0
0
如何分布式运行mapreduce程序

如何分布式运行mapreduce程序 一、 首先要知道此前提 若在windows的Eclipse工程中直接启动mapreduc程序,需要先把hadoop集群的配置目录下的xml都拷贝到src目录下,让程序自动读取集群的地址后...

Zero零_度
2015/09/06
0
0
大数据Hadoop需要了解哪些内容?

一、Hadoop环境搭建 1. Hadoop生态环境介绍 2. Hadoop云计算中的位置和关系 3. 国内外Hadoop应用案例介绍 4. Hadoop概念、版本、历史 5. Hadoop核心组成介绍及hdfs、mapreduce体系结构 6. H...

mo默瑶
05/05
0
0
hadoop(06)、使用Eclipse开发Hadoop的MapReduce项目

本文实践源代码的码云地址: https://gitee.com/MaxBill/HMRP 在上文《hadoop(05)、使用Eclipse连接远程Hadoop集群》中我们主要实践了使用Eclispe开发工具安 装hadoop的开发插件,并且使用h...

MaxBill
2017/12/28
0
0
Hadoop实战之 MapReduce

私塾在线 整体课程概览 第一部分:开始云计算之旅 第二部分:初识Hadoop 第三部分:Hadoop 环境安装部署 第四部分:Hadoop Shell 基本操作介绍 第五部分:Hadoop 分布式文件系统1 第五部分:...

linni
2014/01/08
706
0

没有更多内容

加载失败,请刷新页面

加载更多

Docker搭建代码质量检测平台-SonarQube(中文版)

Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量。通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言...

Jacktanger
11分钟前
0
0
Windows / Linux / MacOS 设置代理上网的方法汇总

本文汇总了 Windows / Linux / MacOS 设置代理上网的各种方法,总结如下: 1、设置系统代理(Windows、Linux、MacOS) 2、设置代理插件(Chrome、Chromium、Firefox、Opera、QQ等浏览器) 3、...

sunboy2050
昨天
2
0
自定义 Maven 的 repositories

有时,应用中需要一些比较新的依赖,而这些依赖并没有正式发布,还是处于milestone或者是snapshot阶段,并不能从中央仓库或者镜像站上下载到。此时,就需要 自定义Maven的<repositories>。 ...

waylau
昨天
1
0
徒手写一个es6代码库

mkdir democd demonpm initnpm install -g babelnpm install -g babel-clinpm install --save-dev babel-preset-es2015-node5 在项目目录创建两个文件夹 functional-playground ......

lilugirl
昨天
3
0
linux定位应用问题的一些常用命令,特别针对内存和线程分析的dump命令

1.jps找出进程号,找到对应的进程号后面才好继续操作 2.linux查看进程详细信息 ps -ef | grep 进程ID 3. dump内存信息 Jmap -dump:format=b,file=YYMMddhhmm.dump pid 4.top查看cpu占用信息 ...

noob_chr
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部