如题 我就是一个标题党  就是使用JavaApi操作HDFS,使用的是MAVEN,操作的环境是Linux

首先要配置好Maven环境,我使用的是已经有的仓库,如果你下载的jar包 速度慢,可以改变Maven 下载jar包的镜像站改为 阿里云。

贴一下  pom.xml

使用到的jar包

  1. <dependencies>
  2. <dependency>
  3. <groupId>junit</groupId>
  4. <artifactId>junit</artifactId>
  5. <version>4.10</version>
  6. </dependency>
  7.  
  8. <!-- hadoop Client -->
  9. <dependency>
  10. <groupId>org.apache.hadoop</groupId>
  11. <artifactId>hadoop-client</artifactId>
  12. <version>${hadoop.version}</version>
  13. </dependency>
  14.  
  15. </dependencies>

然后就是操作HDFS的代码

  1. package com.zuoyan.hadoop.hdfs;
  2.  
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5.  
  6. import org.apache.hadoop.conf.Configuration;
  7. import org.apache.hadoop.fs.FSDataInputStream;
  8. import org.apache.hadoop.fs.FSDataOutputStream;
  9. import org.apache.hadoop.fs.FileSystem;
  10. import org.apache.hadoop.fs.Path;
  11. import org.apache.hadoop.io.IOUtils;
  12.  
  13. /**
  14. * use java api operate hdfs
  15. *
  16. * @author beifeng
  17. *
  18. */
  19. public class HdfsApp {
  20.  
  21. // get FileSystem
  22. public static FileSystem getFileSystem() throws Exception {
  23. Configuration conf = new Configuration();
  24. FileSystem fileSystem = FileSystem.get(conf);
  25. return fileSystem;
  26. }
  27.  
  28. public static void read(String fileName) throws Exception {
  29.  
  30. FileSystem fileSystem = getFileSystem();
  31.  
  32. // read Path
  33. Path readPath = new Path(fileName);
  34.  
  35. FSDataInputStream inStream = fileSystem.open(readPath);
  36.  
  37. try {
  38.  
  39. IOUtils.copyBytes(inStream, System.out, 4096, false);
  40.  
  41. } catch (Exception e) {
  42. // TODO: handle exception
  43. e.printStackTrace();
  44. } finally {
  45. // if Exception close Stream
  46. IOUtils.closeStream(inStream);
  47. }
  48. }
  49.  
  50. public static void main(String[] args) throws Exception{
  51.  
  52. //String fileName = "/user/beifeng/mapreduce/wordcount/input/wc.input";
  53. //read(fileName);
  54.  
  55. FileSystem fileSystem = getFileSystem();
  56. //write path
  57. String putFileName = "/user/beifeng/put-wc.input";
  58.  
  59. Path writePath = new Path(putFileName);
  60.  
  61. FSDataOutputStream outputStream = fileSystem.create(writePath);
  62.  
  63. FileInputStream inputStream = new FileInputStream(
  64. new File("/opt/modules/hadoop-2.5.0/wc.input"));
  65.  
  66. try {
  67. IOUtils.copyBytes(inputStream, outputStream, 4096,false);
  68. } catch (Exception e) {
  69. // TODO: handle exception
  70. inputStream.close();
  71. outputStream.close();
  72. }
  73.  
  74. }
  75.  
  76. }

思路 可以使用Java操作hdfs的api  制作一个基于HDFS的   云盘  ,可以对文件进行  上传 、删除、移动目录 、查看目录,但是不可以对文件的内容进行修改!

使用Java Api 操作HDFS的更多相关文章

  1. 使用Java API操作HDFS文件系统

    使用Junit封装HFDS import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import org ...

  2. Hadoop Java API操作HDFS文件系统(Mac)

    1.下载Hadoop的压缩包 tar.gz   https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/ 2.关联jar包 在 ...

  3. hadoop学习笔记(五):java api 操作hdfs

    HDFS的Java访问接口 1)org.apache.hadoop.fs.FileSystem 是一个通用的文件系统API,提供了不同文件系统的统一访问方式. 2)org.apache.hadoop. ...

  4. 使用java api操作HDFS文件

    实现的代码如下: import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import ...

  5. Hadoop之HDFS(三)HDFS的JAVA API操作

    HDFS的JAVA API操作 HDFS 在生产应用中主要是客户端的开发,其核心步骤是从 HDFS 提供的 api中构造一个 HDFS 的访问客户端对象,然后通过该客户端对象操作(增删改查)HDFS ...

  6. HDFS 05 - HDFS 常用的 Java API 操作

    目录 0 - 配置 Hadoop 环境(Windows系统) 1 - 导入 Maven 依赖 2 - 常用类介绍 3 - 常见 API 操作 3.1 获取文件系统(重要) 3.2 创建目录.写入文件 ...

  7. JAVA API 实现hdfs文件操作

    java api 实现hdfs 文件操作会出现错误提示: Permission denied: user=hp, access=WRITE, inode="/":hdfs:supe ...

  8. 大数据-09-Intellij idea 开发java程序操作HDFS

    主要摘自 http://dblab.xmu.edu.cn/blog/290-2/ 简介 本指南介绍Hadoop分布式文件系统HDFS,并详细指引读者对HDFS文件系统的操作实践.Hadoop分布式文件 ...

  9. Hadoop_07_HDFS的Java API 操作

    通过Java API来访问HDFS 1.Windows上配置环境变量 解压Hadoop,然后把Hadoop的根目录配置到HADOOP_HOME环境变量里面 然后把HADOOP_HOME/lib和HAD ...

随机推荐

  1. 【转】HTTP429

    转载:http://codewa.com/question/45600.html Q:How to avoid HTTP error 429 (Too Many Requests) python Q: ...

  2. Acperience (英语阅读 + 数学推导)

    #include<bits/stdc++.h> using namespace std; int main(){ int T,n,m;scanf("%d",&T ...

  3. 转:C#串口编程

    本文用来简单介绍一下C#串口编程的知识,主要以实例为内容. 凡是串口设备和计算机交互的时候都用到串口,在C#中我们如何来操作串口呢? 大话串口工作原理 实际串口是用来和外部设备进行交换数据的,我抽象出 ...

  4. maven 入门 (二)

    上一篇写了,怎么在在项目中用到maven,怎么安装maven及创建maven工程. 现在的话说一下怎么使用maven来下载jar包,呵呵.和maven的一些配置. 打开maven-config-set ...

  5. Django ORM 操作 必知必会13条 单表查询

    ORM 操作 必知必会13条 import os # if __name__ == '__main__': # 当前文件下执行 os.environ.setdefault('DJANGO_SETTIN ...

  6. bzoj1606

    题目链接 反着循环就是每个东西只能选一次 #include<iostream> #include<cstdio> #include<cstdlib> #includ ...

  7. [转载]WeeksInAYear、WeeksInYear、DaysInAYear、DaysInAMonth、DaysInYear、DaysInMonth - 获取指定年月的周、日数

    DateUtils.DaysInYear(); DateUtils.DaysInMonth(); DateUtils.DaysInAYear(); DateUtils.DaysInAMonth(); ...

  8. CentOS6.4下邮件服务器搭建

    CentOS6.4下邮件服务器搭建   linux下邮件服务器的搭建大致分为三个步骤 准备工作(真实的生产环境下需要) 发送服务器安装及配置 (Postfix) 接收服务器安装及配置(dovecot) ...

  9. Docker学习笔记之镜像与容器

    0x00 概述 镜像和容器作为 Docker 里最基础的概念,我们很有必要了解 Docker 对它们的很多定义以及其他与它们有关的知识.在这一小节里,我们就专门针对镜像与容器两个概念展开,细致的梳理与 ...

  10. 一键PHP/JAVA安装工具

    OneinStack是一键PHP/JAVA安装脚本工具,包含lnmp,lamp,lnmpa,ltmp,lnmh,MySQL,PostgreSQL,MongoDB等 建议使用 PHP7.1+MYSQL5 ...