HDFS Java API编程:Demo程序实验

本文详细介绍了如何使用Hadoop HDFS Java API进行编程,包括创建Java Project导入Hadoop相关jar包,配置Maven依赖,以及一系列操作如读取、创建、删除HDFS文件,上传下载文件,创建目录,追加写文件,查看文件属性等。同时,还展示了执行Hadoop自带的mapreduce示例程序和如何运行jar包。
摘要由CSDN通过智能技术生成

HDFS Java API编程实验 

编程环境:

方式一(必学):创建Java Project,直接导入hadoop-2.6.0-cdh5.7.0.tar.gz安装包中与HDFS API编程的有关jar包

参考文章:https://blog.csdn.net/qq_42881421/article/details/83001401

方式二(选学):创建MavenProject,修改POM.xml文件,增加与Hadoop API编程相关的依赖配置参数

配置Maven数据源参考https://www.cnblogs.com/sdf-txt/p/7705285.html

修改pom.xml添加Hadoop依赖参考https://blog.csdn.net/qq_42881421/article/details/100762022

pom.xml报错:Missing artifact jdk.tools:jdk.tools:jar:1.6解决方法参考https://blog.csdn.net/sinat_40431164/article/details/80521800

 

Hadoop集群环境:大数据开发环境一般采用Hadoop伪分布式部署,调试运行程序对集群主机的性能要求不高

1) 读取hdfs上的已存在文件

执行命令 hadoop fs -ls /  查看hdfs根目录的内容

执行命令 hadoop fs -ls /hlzhang  查看hdfs的/hlzhang目录的内容

执行命令 hadoop fs -cat /input/wordcount.txt  查看hdfs的/input/wordcount.txt文件的内容

示例源码:

package testHDFS;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import java.io.IOException;

public class ReadFile 
{
    public static void main(String[] args) throws IOException 
    {
        //创建Configuration实例
        Configuration conf = new Configuration();
        conf.set("fs.defaultFS", "hdfs://master:8020");
        
        //通过配置获取到文件系统
        FileSystem fs = FileSystem.get(conf);
        
        //定义要读取文件所在的HDFS路径
        Path path = new Path("hdfs://master:8020/input/word.txt");
        
        //通过文件系统的open()方法得到一个文件输入流,用于读取
        FSDataInputStream dis = fs.open(path);
        //用IOUtils下的copyBytes将流中的数据打印输出到控制台
        IOUtils.copyBytes(dis, System.out, conf);
        //关闭输入流
        dis.close();
    }
}

 

注意:

1如果出现连接hdfs://master:8020出错,8020是hdfs的默认端口,原因是在配置hadoop集群时在配置文件core-site.xml中将hdfs的默认端口被修改了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值