在windows上eclipse安装hadoop2.7插件

之前在linux下用eclipse安装hadoop插件,无奈不知是电脑配置过于垃圾还是其他什么原因实在是卡的要死,为此不得不在本地安装,之后打成jar包放入linux运行折中了。这里记录下过程方便后期回看一下。

  1. 首先之前已经准备好相关软件eclispe64位,jdk1.8版本,hadoop-2.7.0tar.gz压缩包,以及对应的hadoop-2.7.0插件,接下来开始进入eclipse

  2. 将之前在虚拟机中配置好的hadoop拷贝到本地一份,这里我放在了本地桌面上,这里eclipse放在了d盘,将之前下载的插件放在eclipse的plugins文件夹中,这个操作要确保eclipse处于关闭状态或者是放入后进行重启eclipse,之后打开eclipse,在windows—preferences中找到下面这个

  3. 这里写图片描述

  4. 这里指定的是hadoop在本地的安装位置,选中之后点击finish保存,之后在windows选项中选择打开视图 open perspective,选择Map/Reduce

  5. 这里写图片描述
  6. 选中黄色小象,修改locations信息,具体修改见下
  7. 这里写图片描述
  8. 这里写图片描述
  9. 这里location name随便起,左边端口在yarn-site.xml和右边端口在core-site.xml中均有配置
  10. 这里写图片描述
  11. 列表内容
  12. 这里配置的ip地址是主机的ip地址,也就是本地的不是虚拟机地址。
  13. 这时候是在eclipse中看不到hadoop的hdfs目录的,这是因为在虚拟机中主节点和子节点并没有启动的缘故,所以这里进入虚拟机并在主节点的hadoop的sbin目录下分别启动start-dfs.sh和start-yarn.sh,做完这些以后可以在本地登录192.168.70.100:50070和8088,这里如果能看到内容,之后返回eclipse重新刷新可以看到之前在hdfs上创建的目录了
  14. 这里写图片描述
  15. 出现上面这个图就说明hadoop插件在myeclipse上成功配置了,eclipse作为客户端成功连接了hadoop
  16. 接下来创建一个MR project测试一下
  17. 这里写图片描述
  18. 这里创建了一个MyHadoop的MR工程,可以看到Hadoop相关的jar包都已经自动导入了
  19. 这里写图片描述
  20. 这里导入一个hadoop自带的wordcount源码,可以从hadoop的官网下载,注意选择对应版本,后缀是src
  21. 之后在虚拟机主节点的hdfs上创建输入目录和输出目录,通过hdfs dfs -mkdir - p /usr/root/input这种格式创建多级目录,输出目录不需要手动创建,会自动创建,但是输入目录必须手动创建,因为这里需要放入一个txt文件作为统计词频的demo,名字任意起。
  22. 接下来在WordCount这个Java文件右键run as –run configurations中给这个程序添加两个参数,因为他接受的是main函数的args[]参数数组,见下图
  23. 这里写图片描述
  24. 两个参数分别代表的是输入路径和输出路径,这里count3并没有手动创建,会自动创建,保存好配置后,运行该文件,选择run on hadoop,执行顺利的话会再指定输出目录生成一个success文件和part-00000文件,其中统计记录就存放在后者。
  25. 这里可能会报一些错误,这里提供下解决方案: .Exception in thread “main” java.lang.NullPointerException atjava.lang.ProcessBuilder.start(Unknown Source)
  26. 这个错误是因为在hadoop的2.x版本中缺少winutils.exe文件造成的,这个好办,从网上搜索一下下载下来放到hadoop-2.7.0本地安装目录的bin目录下即可。,之后添加一个系统变量HADOOP_HOME和在Path中添加安装目录下的bin目录,前者指定hadoop的本地安装位置,后者添加%HADOOP_HOME%\bin;保存后解决这个问题
  27. 接下来再次运行报另一个错这里写图片描述
  28. 这个错是因为缺少hadoop.dll文件导致的,从网上下载一个下来,放在c盘的windows/system32 和system64,最好在hadoop的bin目录下也放一份,这样确保万无一失,之后关闭eclipse重启,执行发现这个错误消失,但是什么都没输出,可能是有其他问题,设置一个日志文件记录一下信息确定出错问题在哪
  29. 这里写图片描述

  30. org.apache.hadoop.security.AccessControlException: Permission denied: user=Administrator, access=WRITE, inode=”/usr/root/output/count2/_temporary/0”:root:supergroup:drwxr-xr-x
  31. 这里意思就是说拒绝访问,也就是说Administrator这个用户没有向output用户写入数据的权限,而这个用户就是本机的用户名,当然是没有这权限了这里修改hdfs-site.xml中一个配置
  32. 这里写图片描述
  33. 再次执行还是报错,说明问题没有解决么可以想到有两种解决方案,一种是为用户赋予写的权限,但是Linux系统是不能给Administrator用户赋予权限的,那么只能修改hadoop的用户名这种方案了,这里又有两种,一种是创建一个新的用户为其赋予root权限,或者是直接使用root用户,为了方便起见这里直接使用root用户,这样就可以成功向output目录输出了
  34. 具体来说就是添加一个系统环境变量,指定hadoop_user_name的值为root
  35. 这里写图片描述
  36. 上面设置使用者为root管理员,自然有向输出目录写入文件的权限了,接下来进行测试,发现成功输出了,至于安装eclipse插件告一段落了
  37. 附上一张成功运行的照片
  38. 这里写图片描述
  39. 小结:其实很多东西在第一次探索的时候总是会遇到各种各样未知的问题,消耗大量的时间但是一旦都解决并记录下来,下次再遇到同样的问题就能极大缩短时间搞定了,回头在看的话发现其实也就那么回事。以上。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦岚如雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值