根据尚硅谷教程来配置maven与hadoop
视频地址:尚硅谷教程
根据尚硅谷的教程来的,结果还是花了一上午,写下这篇配置记录,供有相同问题的同学交流:
- 首先需要win10下编译过的hadoop,这个就花了一个多小时去找,最终在尚硅谷官网找到安装包,下载又花了一晚上。供上网盘链接:https://pan.baidu.com/s/1FZE3w766ILHfJQj0qWp0dQ
提取码:33wp - 然后创建maven项目,但是我的eclipse中maven好像要更新,所以先清理了一下,然后updat prioject。这样又花了一个多小时。。。
- 解压缩这个hadoop安装包在一个无中文的目录下;然后配置环境变量,这个简单,但是一开始只配了HADOOP_HOME,而忘记配置Path路径,结果导致后面运行程序的时候一直报这个错:Conld not locate null\bin\winutils(其实这个错误是由于缺少winutils.exe文件导致的,但是一般在hadoop/bin目录下有这个文件,而我忘记配Path路径导致系统找不到这个文件),又改错改半天。。。所以同学们一定要细心哦。
- 在修改pom.xml时又出现错误:
错误原因在图片上,既然找到了错误原因,那对症下药就好了。我的方法是:去网上下载了tool.jar包,(可能从网上载下来不是这个名字,那就重命名为tools.jar),将其放在${JAVA_HOME}(看你的环境变量JAVA_HOME的位置)/lib/下面,这样就没问题了。附上我下的tool.jar文件链接:https://pan.baidu.com/s/1-qN3UfgX6s-l7CpsCHgUWw
提取码:i4ef - 在项目的 src/main/resources 目录下,新建一个文件,命名为“log4j.properties”,填入相关信息。这一步没问题
- 配置用户名称:客户端去操作 HDFS 时,是有一个用户身份的。默认情况下,HDFS 客户端 API 会从 JVM 中获取一个参数来作为自己的用户身份:-DHADOOP_USER_NAME=atguigu,atguigu 为用户名称。 这一步也没问题。
- 执行程序,报错: could not locate null/bin/winutils,错误原因看上面的步骤2,别忘了上面步骤2的配置两个环境变量哦。如果还是没有解决的话,那可能是你真的没有winutils这个文件,此时你要查看hadoop\bin目录下是否有winutils.exe这个文件,如果没有的话,那就去网上下载一下,然后放到$HADOOP_HOME\bin目录下就行了。我找到的winutils链接链接https://pan.baidu.com/s/1qVnnegbK0QIeQyKWvUCObA 提取码:qeme
- 再次执行程序(执行程序前要保证你已经开启了hadoop),运行成功,但是有5个warning:
这个警告吧,主要是因为JDK版本不一致,如果你是jdk1.8的话应该是没有这个警告的,但是我的eclipse是两年前配的jdk10,所以就出现了这个警告。所以不管他也是可以的,你看我不管他他也成功执行了并输出over! 如果你觉得这几个warning不舒服想弄掉的话,解决方法是:安装jdk1.8,修改JAVA_HOME环境变量,修改eclipse中的配置: eclipse界面->windows->preferences->java->installed jres 修改一下路径,点击apply。再次执行,这些warning就消失了,嘿嘿:(jdk-1.8-windows:链接:https://pan.baidu.com/s/1nvnD2OioiD2KMzSGX93-pA
提取码:yhe3)