![0c8bbb6343d1e19475f893ef103cf4f4.png](https://i-blog.csdnimg.cn/blog_migrate/efefd4764f838ce75f74274b2201872d.jpeg)
前言
小伙伴儿们,我们搭建好远程hadoop集群环境之后,想要在Windows本地idea中写代码直接运行,这样子就不用每次都打jar包上传到服务器上去运行。但是有一些同学可能尝试过,有的成功,有的没有成功,本次我就如何搭建环境给大家写个文章,希望能解决大家的问题。
本地搭建hadoop
本地搭建hadoop环境,去hadoop官网下载hadoop,记得要对应服务器的hadoop版本哦!
下载完毕之后,解压到本地目录,记得不要解压到C盘,其他的地方都可以。
比如我就解压到了D盘
![017f8d77886edda6ab741183cb62c42f.png](https://i-blog.csdnimg.cn/blog_migrate/3188051ef12312002ffbfea95bba074b.jpeg)
然后下载winutils.exe,这个插件一定要下载对应的hadoop版本的才行,我第一次就是因为下载错误了,才导致的,我只能提供一个2.7.3版本的下载地址,如果后面你么有配置对应的版本,一定是不行的,切记,切记,切记,下载对应版本的。
链接:https://pan.baidu.com/s/11hGqS-8d5fPCaS6-LcgM8g
提取码:14wv
![c8cc62685cd1d79e5ca01a2422af4626.png](https://i-blog.csdnimg.cn/blog_migrate/b167dc2b07249cdc5b1bbf6375af328f.jpeg)
下载完毕之后,在bin目录下面的文件就是上面的内容了,这个时候把bin下面的hadoop.dll和winutils.exe复制到hadoop的bin目录下面。
复制完之后,把bin目录下面的hadoop.dll这个文件复制到C:WindowsSystem32 下面,不然会报错,报错内容如下
Exception in thread "main"java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
接下来就是配置环境变量
打开Windows环境变量配置
HADOOP_HOME=D:hadoop-2.7.3 # 这里配置自己hadoop解压的目录,后面的配置都一样
![33960be4d50213b879ee2ef208d5fe3c.png](https://i-blog.csdnimg.cn/blog_migrate/9d289e374221943680326630afb53028.jpeg)
配置完HADOOPHOME之后,配置CLASSPATH
CLASSPATH=%HADOOP_HOME%binwinutils.exe;
主要是追加的形式
然后配置Path
Path=%HADOOP_HOME%bin
以上配置在windows都是图像化操作,请自行参考HADOOP_HOME的图形化自行转化操作。
然后在本地的java目录下面建立resource文件
讲hadoop的配置文件复制到resource文件下面
主要复制的有core-site.xml,hdfs-site.xml,log4j.properties,mapred-site.xml,yarn-site.xml
![97aa86cc738e7c17f31ac4dc8c6e8c70.png](https://i-blog.csdnimg.cn/blog_migrate/738bd69c83dfdb217a776b68ffa8716f.jpeg)
就是图中的几个文件,复制文件的目录在服务器集群的hadoop/etc/hadoop/下面的配置文件,当然了不同版本的hadoop配置文件位置可能不同,请自行发挥。
配置完之后,更改一下本地的mapred-site.xml文件,把yarn改成local,这个必须要改,否则后面报错
![e043051ed78030d0730bdadc287a21d5.png](https://i-blog.csdnimg.cn/blog_migrate/32b34ca37accc6e51eeb2a73b19a7592.jpeg)
然后这个时候打开代码在代码中添加
System.setProperty("hadoop.home.dir", "D:hadoop-2.7.3");
运行代码之后发现:
![7113a228caa042f3baef463547df5439.png](https://i-blog.csdnimg.cn/blog_migrate/fb20e9502ddc5d330ff425c1c1cc258e.jpeg)
这个是因为hadoop权限的问题,要在hdfs-site.xml中添加一下内容
集群服务器中的都要填写
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
然后重启集群。
后记:
如果后面还依旧报下面的错误,你尝试把下面下载代码中
System.load("D:/hadoop-2.7.3/bin/hadoop.dll");
直接写死地址。
通过我不断地试错,需要注意的点就三点,第一,下载对应的版本的插件放到hadoop的bin目录下,第二,把hadoop.dll放到C:WindowsSystem32下面,第三,更改配置文件为local。
如果再有其他的问题,可能要检查自己写的代码是否正确了,或者你可以再下方给我留言,共同学习。