您的位置 首页 java

使用JavaAPI将文件从HDFS下载到本地

一、前言

大数据 和人工智能交流》头条号向广大初学者新增C 、 Java Python Scala 、javascript 等目前流行的计算机、大数据编程语言,希望大家以后关注本头条号更多的内容。

本文章目的:

1、了解Java操作 hdfs 常见的API

2、了解Java对HDFS文件操作过程

3、会使用Java编写操作HDFS的程序

二、开发准备工作

1、相关的jar包

jar 包的可以从 Hadoop 所在位置的 common的文件夹里面获得,这里的路径为:

/usr/local/hadoop-2.7.1/share/hadoop/common

2、在Eclipse中建立Java项目

建立类HDFSUploadFile

import java.io. FileOutputStream ;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.URI;

import org. apache .hadoop.conf.Configuration;

import org.apache.hadoop.fs.FileSystem;

import org.apache.hadoop.fs.Path;

import org.apache.hadoop.io.IOUtils;

import org.apache.hadoop.util.Progressable;

public class CopyFileToLocal {

public static void main(String[] args)throws Exception {

// hdfs文件uri

String hdfsSrc = args[0];

// 本地文件uri

String localSrc = args[1];

// 创建一个Hadoop的配置对象

Configuration conf = new Configuration();

// 用uri对象和conf对象创建Hadoop的文件系统对象

FileSystem fs = FileSystem.get(URI.create(hdfsSrc), conf);

// 创建输入流对象

InputStream in = null;

in = fs. open (new Path(hdfsSrc));

// 创建输出流

OutputStream out = new FileOutputStream(localSrc);

// 调用Hadoop的IO工具,将输入流在控制台输出

IOUtils.copyBytes(in, out, 4096, true);

}

}

3、将上述的类使用Eclipse导出jar文件,以便在hadoop环境中执行,步骤如下:

右键点击项目”hdfsDemo”,在弹出的菜单中选择”Export”

在弹出的对话框中选择JavaJAR fileNext,如下图所示:

别忘记输入运行的主类名:HDFSDownloadFile,完成后如下图所示:

最后点击《Finish》按钮,完成了将类HDFSDownloadFile.java导出/home/hdfs.jar的操作。

4、建立测试文件

在/home目录下建立个hdfs.log测试文件,并上传到HDFS的/user/下,以便于测试,操作如下:

(1)建立hdfs.log测试文件

(2)将hdfs. log上传到HDFS的/user下:

(3)使用命令查看已经上传的文件

下面的操作就是将/user/hdfs.log文件下载到本地操作系统的某个文件夹

5、在hadoop环境下运行HDFSUploadFile类

在/home路径下创建个子目录dir_desc执行如下命令:

hadoop jar hdfs.jar /user/hdfs.log /home/dir_desc/hdfs.log

其中hdfs.jar是上述过程导出的jar文件, /user/hdfs.log是HDFS的源地址,在程序中args[0]参数指定的,/home/dir_desc/hdfs.log是将要下载到本地的路径,由参数args[1]指定。操作如下:

《大数据和人工智能交流》的宗旨

1、将大数据和人工智能的专业数学:概率 数理统计 、线性代数、决策论、优化论、博弈论等数学模型变得通俗易懂。

2、将大数据和人工智能的专业涉及到的数据结构和算法:分类、聚类 、回归算法、概率等算法变得通俗易懂。

3、最新的高科技动态:数据采集方面的智能传感器技术;医疗大数据智能决策分析;物联网智慧城市等等。

根据初学者需要会有C语言、Java语言、Python语言、Scala函数式等目前主流计算机语言。

根据读者的需要有和人工智能相关的计算机科学与技术、电子技术、芯片技术等基础学科通俗易懂的文章。

文章来源:智云一二三科技

文章标题:使用JavaAPI将文件从HDFS下载到本地

文章地址:https://www.zhihuclub.com/168945.shtml

关于作者: 智云科技

热门文章

网站地图