hadoop eclipse 权威指南天气代码远程调试

准备天气数据(详情请看hadoop权威指南附录气象数据)

1.      在 http://www.hadoopbook.com/ 下载天气数据文件 1901.gz 1902.gz

2.      上传数据到服务器

3.      创建hadoop添加数据文件夹 hadoop dfs –mkdir /ncdc

4.      将天气数据添加到hadoop节点

hadoopdfs –put 1901 1902 /ncdc

5.      查看是否已经上传

hadoopdfs –ls /ncdc

hadoop eclipse插件下载

1.      在github上搜索hadoopeclipse plugin

2.      找到hadoop2x的插件仓库

https://github.com/winghc/hadoop2x-eclipse-plugin

3.      下载最新的hadoop插件,放在eclipse安装目录dropins目录下

4.      启动eclipse,在new 选项里有如下说明安装成功:

 

配置windows中的hadoop目录

eclipse 远程调试 是在windows上运行程序,将任务提交到远程。所以本机也需要有hadoop的一些环境。

1.      解压和虚拟机版本相同的hadoop包,如:hadoop-2.7.3.tar.gz

2.      配置HADOOP_HOME环境变量 未解压后hadoop目录

3.      下载windows中hadoop的一些运行环境放在hadoop/bin目录下:

4.      下载hadoop.dll文件放在C:\Windiow\System32下

以上4、5都可以在github上搜索 hadoop common 找到 hadoop windows运行库找到

https://github.com/SweetInk/hadoop-common-2.7.1-bin

5.      连接dfs

1.      Host要在windows中的 hosts中添加映射

192.168.61.137 zh-centos

这里不要用ip

2.      在advanceparameter中修改

Hadoop.tmp.dir 和虚拟机中配置路径一样

3.      连接dfs查看远程文件

1.      进入map/reduce视图

2.      在projectExplorer中查看文件

map/reduce项目

1.      新建项目

2.      编码 参照 hadoop权威指南第二章

3.      执行程序

在main方法上执行run on hadoop

4.      结果

在eclipse的dfs中可以看到:

打开part-r-00000可以看到计算 1901 1902年最高温度的结果:

1901       317

1902       244

问题汇总

1.      API统一,书中使用了两种API,注意!

统一使用新的API

2.      文件权限问题,运行时很多地方要进行文件的权限检查,而在windows上,很多地方要报错。

java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

解决:

解压hadoop源码

拷贝FileUtil文件到项目中:

运行程序,查看日志 看FileUtil那个方法报错修改那个方法如:

不做权限检查直接返回true

3.      远程地址权限不足

org.apache.hadoop.security.AccessControlException

修改hdfs-site.xml

添加:

         

              dfs.permissions 
              false 
        

 

你可能感兴趣的:(hadoop学习笔记)