windows平台下用eclipes链接hadoop 2.7.3 操作hdfs遇到的问题和解决(一)

第一步

  1. eclipse新建maven项目,pom.xml中添加hadoop依赖
    <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>2.7.3</version>
    </dependency>
  2. 新建测试代码,为了解hdfs java api大概(有什么功能,怎么用)
public class HdfsClient {
    FileSystem fs = null;
    @Before
    public void init() throws Exception {
        Configuration configuration = new Configuration();
        configuration.set("fs.defaultFS", "hdfs://master1:9000");
        fs = FileSystem.get(configuration);
    }
    /*
     * 上传一个文件
     */
    @Test
    public void upload() throws Exception {
        fs.copyFromLocalFile(new Path("e://scala/npp_6.9.2_Installer.exe"), new Path("/"));
        fs.close();
    }
    /*
     * 下载一个文件
     */
    @Test
    public void download() throws IllegalArgumentException, IOException {
        fs.copyToLocalFile(new Path("/npp_6.9.2_Installer.exe"), new Path("e://scala"));
        fs.close();
    }
    /*
     * 删除文件
     */
    @Test
    public void delete() throws Exception{
        fs.deleteOnExit(new Path("/npp_6.9.2_Installer.exe"));
        fs.close();
    }
    @Test
    public void somefunction() throws Exception {
        FsStatus status = fs.getStatus();
        System.out.println(status.getCapacity()+"-"+status.getUsed()/1024);
    }
}

test 下载function时报错

(null) entry in command string: null chmod 0644

解决过程

  1. 百度搜
    http://blog.csdn.net/hqwang4/article/details/54669165
  2. 去hadoop官网下载hadoop2.7.3 binary版本,解压–增加系统变量–按上面的文章黏贴libwinutils.lib和winutils.exe到%HADOOP_HOME%/bin下

  3. 至此,下载function可以使用。同时发现copyToLocalFile function会在下载时,如果目标目录中已经存在所copy的文件时,会先执行删除把该文件删除,然后在执行copy操作

    总结

在windows下使用hadoop 的java api需要注意兼容性
1,具体解决兼容性的原理
2,可以尝试windows下编译hadoop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值