SpringBoot调用Hadoop获取文件的内容、文件列表、存储用量和内容追加、WordCount计算(附Hadoop快速搭建)

伪集群的一键安装

推荐一篇不错的文章,真的一行命令自动配置、自动运行,省时费力

DockerCompose一键安装Hadoop

使用Windows连接hadoop需要下载安装好winutils.exe、hadoop.dll等插件才能正常连接

SpringBoot使用HDFS做文件内容的读取和追加

这里假设云服务器的ip为:192.168.110.120

记得修改Windows的hosts文件使主机的datanode名称能映射成192.168.110.120

HadoopConfig

@Configuration
public class HadoopConfig {
   

    @Bean("hdfsConfig")
    public org.apache.hadoop.conf.Configuration hdfsChannel(){
   
        org.apache.hadoop.conf.Configuration conf = new org.apache.hadoop.conf.Configuration();
        conf.set("dfs.replication", "1");
        conf.set("dfs.client.use.datanode.hostname", "true");
        conf.set("mapred.job.tracker", "hdfs://192.168.110.120:8020/");
        conf.set("fs.defaultFS", "hdfs://192.168.110.120:8020/");
        System.setProperty("HADOOP_USER_NAME","root");
        return conf;
    }

    @Bean("fileSystem")
    public FileSystem createFs(@Qualifier("hdfsConfig") org.apache.hadoop.conf.Configuration conf){
   
        FileSystem fs = null;
        try {
   
            URI uri = new URI("hdfs://192.168.110.120:8020/");
            fs = FileSystem.get(uri,conf);
        } catch (Exception e) {
   
            e.printStackTrace();
        }
        return  fs;
    }

}

HadoopController

@RestController
@RequestMapping(value = "/hadoop")
public class HadoopController {
   

    @Autowired
    private HadoopTemplate template;

    @GetMapping(value = "/read")
    public String read(@RequestParam("name") String name){
   
        template.readTo(template.getNameSpace(),"/"+name,4096);
        return "read success";
    }

    @GetMapping(value = "/write")
    public String weite(
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值