java上传本地文件至hdfs(简单写一下)

摘要:
1.创建一个maven项目,导入jar包org.apache.hadoophadoop-common2.6.5org.apache.hadoop˂artifact

1.创建一个maven项目,导入jar包

<dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.6.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>2.6.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>2.6.5</version>
        </dependency>
        <dependency>
            <groupId>jdk.tools</groupId>
            <artifactId>jdk.tools</artifactId>
            <version>1.8</version>
            <scope>system</scope>
            <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
        </dependency>

2.上传文件代码

import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
public classHdfsText01 {
    public static voidmain(String[] args) throws Exception {
        //1 创建连接
        Configuration conf = newConfiguration();
        //2 连接端口
        conf.set("fs.defaultFS", "hdfs://hadoop01:9000");
        //3 获取连接对象
        FileSystem fs = FileSystem.get(conf);
        //本地文件上传到 hdfs
        fs.copyFromLocalFile(new Path("E://haha.txt"), new Path("/output1"));
        fs.close();
        
    }
}

3.使用流上传文件

//流上传文件
        FileInputStream in=new FileInputStream("E://haha.txt");//读取本地文件
        FSDataOutputStream out = fs.create(new Path("/output2"));//在hdfs上创建路径
        byte[] b = new byte[1024*1024];
        int read = 0;
        while((read = in.read(b)) > 0){
            out.write(b, 0, read);
        }

4.将hdfs文件下载到本地

//hdfs文件复制到本地(流)
FSDataInputStream in = fs.open(new Path("/output"));
FileOutputStream out = new FileOutputStream("E:/mm.txt");
IOUtils.copyBytes(in, out, conf);

注:在最后要关闭流哦

免责声明:文章转载自《java上传本地文件至hdfs(简单写一下)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Samba安装配置Java多线程——Condition条件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Hive 接口介绍(Web UI/JDBC)

Hive 接口介绍(Web UI/JDBC) 实验简介 本次实验学习 Hive 的两种接口:Web UI 以及 JDBC。 一、实验环境说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面上的程序: XfceTerminal:...

大数据技术概论(纯理论)

大数据概念 大数据(Big Data):指无法在一定时间范围内用常规软件工具进行捕捉,管理和处理的数据集合,是需要新处理模式才能具有更强的决策力,洞察发现力和流程优化能力的海量,高增长率和多样化的信息资产 优点: Hadoop是一个能够对大量数据进行分布式处理的软件框架。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理 Hadoop 是可靠的,因...

Hadoop-2.X HA模式下的FSImage和EditsLog合并过程

补充了一下NameNode启动过程中有关FSImage与EditsLog的相关知识。 一、什么是FSImage和EditsLog 我们知道HDFS是一个分布式文件存储系统,文件分布式存储在多个DataNode节点上。一个文件存储在哪些DataNode节点的哪些位置的元数据信息(metadata)由NameNode节点来处理。随着存储文件的增多,NameNo...

centos7安装部署opentsdb2.4.0

写在前面 最近因为项目需要在读opentsdb的一部分源码,后面会做个小结分享出来。本人是不大喜欢写这种安装部署的文章,考虑到opentsdb安装部署对于初次接触者来说不太友好,另外对公司做测试的同事可能有些帮助作用,方便他们快速安装部署,就把OpenTSDB 2.4.0安装部署文档写在这里。 对于opentsdb是什么,应用领域这里就不说了,不了解的请看...

部署Qualitis

Qualitis是一个支持多种异构数据源的质量校验、通知、管理服务的数据质量管理平台,用于解决业务系统运行、数据中心建设及数据治理过程中的各种数据质量问题。 Qualitis基于Spring Boot,依赖于Linkis进行数据计算,提供数据质量模型构建,数据质量模型执行,数据质量任务管理,异常数据发现保存以及数据质量报表生成等功能。并提供了金融级数据质量...

spark-2.2.0安装和部署——Spark集群学习日记

前言 在安装后hadoop之后,接下来需要安装的就是Spark。 scala-2.11.7下载与安装 具体步骤参见上一篇博文 Spark下载 为了方便,我直接是进入到了/usr/local文件夹下面进行下载spark-2.2.0 wget https://d3kbcqa49mib13.cloudfront.net/spark-2.2.0-bin-hado...