场景是这样子的:
我这边需要上传大量的大文件(GB级别起步)至 HDFS 服务器,在项目中按照官方文档添加依赖,编码实现了上传文件处理逻辑。
兴冲冲的打开本地的debug模式开始上传测试文件,结果如下:
HADOOP_HOME and hadoop.home.dir are unset
喵了个咪,我本地就是一个客户端程序,有了 client 的jar包就行了,我难道还需要本地装个 Hadoop?
Google 看了一下 找到 wiki 上有专门 关于 windows 的页面
Problems running Hadoop on Windows
原因找到了:
Hadoop requires native libraries on Windows to work properly -that includes to access the file:// filesystem, where Hadoop uses some Windows APIs to implement posix-like file access permissions.
大体分为两个处理办法:
- 装一个完整的 Hadoop 环境,做好配置;
- 安装一个包含 ``WINUTILS.EXE
可执行文件的 bin 库;
第一中对我来讲没意义,本地不需要 这个环境,也比较繁琐。那么第二种是比较适合我的选择
bin 库文件在 这里
然后需要还有一个注意的问题:
配置环境变量: %HADOOP_HOME%
;
划重点 %HADOOP_HOME%
的值不能一下直接写到 bin
一层;要到 bin
的父级目录
例如:
然后需要重启一下电脑,或者注销登录使得 新增的环境变量生效即可。