java远程连接hadoop依赖、配置、常用写法

笔者使用的hadoop版本3.0.3,以下是maven依赖,曾把hadoop-client写成hadoop-client-api,一直报NoClassDefFoundError InputBootstrapper类,所以贴一下maven依赖

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>3.0.3</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>3.0.3</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>3.0.3</version>
        </dependency>

 代码也非常简单

String HDFS_PATH = "hdfs://192.168.1.132:9000"; //要连接的hadoop
Configuration configuration = new Configuration();
configuration.set("fs.defaultFS", HDFS_PATH);
//连接文件系统,FileSystem用来与hadoop文件系统交互
FileSystem fileSystem = FileSystem.get(configuration);

configuration.set("fs.hdfs.impl", DistributedFileSystem.class.getName());  //设置处理分布式文件系统
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory(configuration));
//FsUrlStreamHandlerFactory()  不加参数连接会无法识别的hdfs协议,原因是hadoop在获取处理hdfs协议的控制器时获取了configuration的fs.hdfs.impl值

//获取Hadoop文件,并打印输出
InputStream inputStream = new URL(HDFS_PATH + "/hello.txt").openStream();
int size = inputStream.available();

for (int i = 0; i < size; i++){
    System.out.print((char)inputStream.read());
}
inputStream.close();

常用写法:

参考链接:hadoop的hdfs中的javaAPI操作

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值