
pass
eclipse配置mapreduce
配置前的准备
下载相关文件
注意:箭头所指的ppt可下载下来进行对照配置,方框所指的文件为后续所需要的文件。
启动eclipse并添加mapreduce插件
1.在Windows中解压eclipse-java-2019-03-R-linux-gtk-x86_64.tar.gz
并确定文件内容是否完整
2.将eclipse文件夹拖入centos中(最好放在桌面)并确认文件夹内容是否完整
注意:之所以.eclipseproduct没看到,是因为以.开头的文件为隐藏文件
3.将事先下载好的hadoop-eclipse-plugin-2.6.0.jar文件拖入eclipse文件夹的dropins文件夹中
4.运行eclipse
[root@master eclipse]# ./eclipse
登录后复制
注意:箭头所指的地方,用默认已出现的路径就ok
5.添加mapreduce插件
并添加hadoop的路径
注意:/usr/local/src/hadoop为个人hadoop路径
6.添加mapreduce项目
双击下方图像中箭头所指的插件名称
下方箭头所指的文件名可以随便取
7.打开mapreduce的窗口
可以看到mapreduce窗口
8.启动master节点(一个就好)
注意:记得用root账户执行该命令
jps查看运行结果
9.使用eclipse连接节点
添加前,首先关闭hadoop里面关于hdfs的安全检查
修改为下列代码
接下来,便是添加连接
1:随便写的名字
2:主机的名字,也可以写127.0.0.1
3:固定写50070
4:参考hadoop目录下etc/hadoop/目录下的core-site.xml文件中的<value>hdfs://master:9000</value>
5:user name为hadoop运行时的权限用户
10.加载完后,my hadoop会加载出之前创建的input、output文件夹
如果没有,建议打开终端执行以下两条命令(记得用root执行命令)
[root@master hadoop]# hdfs dfs -mkdir /input
[root@master hadoop]# hdfs dfs -mkdir /output
登录后复制
之所以这里报错,是因为我已经创建了这个文件夹
创建wordcount项目
前提:Windows中的文件能够直接复制粘贴到centos中
点击WordCount.java,右击复制
返回centos中,进入eclipse,进行粘贴
修改WordCount.java
1.删除该串代码
2.修改该串代码
修改后:
上传dream.txt
将事先下载到windows中的dream.txt复制到centos桌面
使用终端上传至hadoop中
[root@master Desktop]# hdfs dfs -put dream.txt /input/dream.txt
登录后复制
刷新eclipse的my Hadoop节点,查看文件
运行WordCount.java
点击进入WordCount.java,并进行下图 *** 作
配置输入输出文件
将log4j.properties复制到src中
完成
复制hadoop路径下的etc/hadoop路径下的core-site.xml、hdfs-site.xml到src中
运行WordCount.java
完成
检验是否成功,可查看output文件是否生成对应的文档
hadoop
mapreduce
0套路,限时0元领,105G绝版通用流量卡,资费永久29
中国联通
广告
eclipse运行mapreduce的插件
5下载·0评论
2018年6月14日
eclipse配置mapreduce全教程
2294阅读·0评论·4点赞
2019年10月31日
MapReduce编程入门--用eclipse创建MapReduce工程
2804阅读·0评论·1点赞
2021年10月22日
Mac下eclipse的Hadoop开发环境配置中以及windows->preferences下看不到Hadoop/MapReduce的配置项问题解决
1077阅读·0评论·4点赞
2021年10月23日
eclipse开发MapReduce
804阅读·0评论·1点赞
2018年12月22日
Hadoop——MapReduce相关eclipse配置及Api调用(图文超详细版)(内含遇到错误的解决方法)
2888阅读·4评论·9点赞
2021年11月10日
Hadoop+eclipse运行MapReduce程序
1342阅读·0评论·0点赞
2015年11月24日
hadoop-eclipse-plugin-2.2.0.jar放到eclipse的plugins文件夹后,eclipse中没有map/reduce项
5359阅读·0评论·1点赞
2014年6月26日
无需安装虚拟机,Windows本地环境下使用Eclipse通过Hadoop进行MapReduce
867阅读·0评论·1点赞
2022年5月6日
Eclipse下编写hadoop的MapReduce程序
672阅读·0评论·0点赞
2019年4月28日
在Eclipse中实现MapReduce过程
870阅读·0评论·1点赞
2019年6月14日
调用MapReduce对文件中各个单词出现次数进行统计
864阅读·0评论·5点赞
2020年12月6日
Eclipse开发mapreduce程序环境搭建
3007阅读·1评论·4点赞
2019年8月30日
在Eclipse中运行第一个MapReduce程序
1736阅读·0评论·0点赞
2011年12月12日
Eclipse本地运行MapReduce
650阅读·0评论·0点赞
2018年6月3日
使用eclipse写mapreduce程序,然后打包程序到集群运行
259阅读·0评论·1点赞
2021年12月1日
使用Hadoop以及Eclipse平台,创建Hadoop项目——编写简单MapReduce程序,运行MapReduce词频统计程序,查看词频统计程序的结果。
2873阅读·0评论·0点赞
2022年4月29日
eclipse+MapReduce
41阅读·0评论·0点赞
2016年8月26日
Hadoop(MapReduce)入门 使用Eclipse开发
1.0W阅读·1评论·5点赞
2017年2月9日
在eclipse上搭建mapreduce开发环境及运行wordcount
9853阅读·0评论·0点赞
2017年2月8日
去首页
看看更多热门内容
今日我在eclipse上运行Map/Reduce框架进行数据分析的时候遇到了一个很奇怪的错误:一开始我发现运行程序之后也没在控制台报错,也生成了目标目录,但一直出不来统计好的数据文件。
我先通过位置标记输出来判断各个类的加载是否正常,
发现Map是可以正常加载执行的,但是Reduce一直无法加载执行。
然后我通过设置,让其在运行时显示日志信息,再运行。
文末会分享设置显示日志信息的方法。
这一次便发现了如下的报错:
日志中的报错信息:
java.lang.Exception: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in shuffle in localfetcher#1at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462)at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:529)Caused by: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in shuffle in localfetcher#1at org.apache.hadoop.mapreduce.task.reduce.Shuffle.run(Shuffle.java:134)at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:376)at org.apache.hadoop.mapred.LocalJobRunner$Job$ReduceTaskRunnable.run(LocalJobRunner.java:319)at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)at java.util.concurrent.FutureTask.run(Unknown Source)at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)at java.lang.Thread.run(Unknown Source)Caused by:(1)]java.io.FileNotFoundException: E:/tmp/hadoop-Alan%20Yang/mapred/local/localRunner/Alan%20Yang/jobcache/job_local214639494_0001/attempt_local214639494_0001_m_000003_0/output/file.out.indexat org.apache.hadoop.fs.RawLocalFileSystem.open(RawLocalFileSystem.java:200)at org.apache.hadoop.fs.FileSystem.open(FileSystem.java:767)at (2)]org.apache.hadoop.io.SecureIOUtils.openFSDataInputStream(SecureIOUtils.java:156)at org.apache.hadoop.mapred.SpillRecord.<init>(SpillRecord.java:70)at org.apache.hadoop.mapred.SpillRecord.<init>(SpillRecord.java:62)at org.apache.hadoop.mapred.SpillRecord.<init>(SpillRecord.java:57)at org.apache.hadoop.mapreduce.task.reduce.LocalFetcher.copyMapOutput(LocalFetcher.java:124)at org.apache.hadoop.mapreduce.task.reduce.LocalFetcher.doCopy(LocalFetcher.java:102)at org.apache.hadoop.mapreduce.task.reduce.LocalFetcher.run(LocalFetcher.java:85)2017-07-12 16:19:02,616 INFO [org.apache.hadoop.mapreduce.Job] - Job job_local214639494_0001 failed with state FAILED due to: NA2017-07-12 16:19:02,663 INFO [org.apache.hadoop.mapreduce.Job] - Counters: 22File System CountersFILE: Number of bytes read=62223FILE: Number of bytes written=176635984FILE: Number of read operations=0FILE: Number of large read operations=0FILE: Number of write operations=0HDFS: Number of bytes read=898750946HDFS: Number of bytes written=0HDFS: Number of read operations=140HDFS: Number of large read operations=0HDFS: Number of write operations=10Map-Reduce FrameworkMap input records=2629660Map output records=2626091Map output bytes=26260910Map output materialized bytes=31513152Input split bytes=1210Combine input records=0Spilled Records=2626091Failed Shuffles=0Merged Map outputs=0GC time elapsed (ms)=496Total committed heap usage (bytes)=7754743808File Input Format Counters Bytes Read=163038920
按照通常的排错思路,后面的错误往往是前面的错误导致产生的,所以我先入为主的直接去搜索 error in shuffle in localfetcher的解决办法,发现几乎都在说是内存的问题。百般尝试始终是毫无成效。
后来当我往下看的时候发现其实日志给出了大概的错误原因,是路径的问题。这一下子就找到了正确的方向。通过查找资料,发现有的朋友通过修改默认的路径即可解决,我尝试了一下,结果只是换个路径报错而已。这就耐人寻味了,我再自己看了看这条报错信息,里面用到了我的Windows的用户名,但是中间的空格变成了%20,在路径中出现%这意味着什么?配过环境变量的人都知道。我一下子恍然大悟。很有可能是Windows用户名的问题。所以我去修改了Windows本机的用户名,把空格去掉。一下子就解决了!!!
eclipse控制台不显示MapReduce程序日志的解决方法:
使用Hadoop2.6.0,在eclipse下面调试mapreduce程序的时候,控制台不打印程序运行时的日志,而是显示如下信息:
log4j:WARN No appenders could be found for logger (org.apache.[Hadoop]
log4j:WARN Please initialize the log4j system properly.
log4j:WARN [hadoop] See noconfig for more info.
说明没有配置log4j.properties文件。这虽然不影响程序的正常运行,但是看不到日志难免不爽。解决方法:把Hadoop2.6.0的安装目录下面的/etc/hadoop/目录下面的log4j.properties文件拷贝放到MapReduce工程的src目录下面。
使用eclipse编写mapreduce程序的步骤:一.安装hadoop for eclipse的插件,注意:插件版本要和hadoop版本一致。
下载:hadoop-eclipse-plugin-2.5.2.jar
http://download.csdn.net/detail/tondayong1981/8186269
将hadoop-eclipse-plugin-2.5.2.jar文件放到ECLIPSE_HOME/plugins下,重启eclipse
二.在eclipse中新建hadoop项目
File>New>other>Map/Reduce Project>next>输入项目名>finish
点击右上角Map/Reduce视图
现在能看见Map/Reduce Locations了,点击右侧的紫色大象。
因为我们是yarn的环境 所以不需要配置Map/Reduce(V2) Master 项
DFS Master中的IP和端口 就是我们hadoop/etc/hadoop/core-site.xml中fs.defaultFS的值
现在我们就能看见远程hadoop的HDFS了
三.在eclipce中运行Map/Reduce,以hadoop自带的wordcount为例
首先下载hadoop的源码:
http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.5.2/
在hadoop-2.5.2-src ▸ hadoop-mapreduce-project ▸ hadoop-mapreduce-examples ▸ src ▸ main ▸ java ▸ org ▸ apache ▸ hadoop ▸ examples目录中找到WordCount.java
将WordCount.java复制到刚才建的myhadoop项目的src下
创建数据源文件word.txt
在HDFS上创建输入目录,再将word.txt传到HDFS上
$hadoop fs -mkdir /tmp/input
$hadoop fs -copyFromLocal /home/hadoop/word.txt /tmp/input/word.txt
回到eclipse 刷新DFS将看到
运行WordCount.java
(1).在新建的项目Hadoop,点击WordCount.java,右键-->Run As-->Run Configurations
(2).在d出的Run Configurations对话框中,点Java Application,右键-->New,这时会新建一个application名为WordCount
(3).配置运行参数,点Arguments,在Program arguments中输入你要传给程序的输入文件夹和你要求程序将计算结果保存的文件夹,如:
hdfs://10.6.9.226:9000/tmp/input/word.txt hdfs://10.6.9.226:9000/tmp/output
点击Run,等运行结束刷新DFS Locations将会看到output文件夹
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)