step1:增加依赖
pom.xml
          ...
     <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common -->
           <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-common</artifactId>
                <version>2.2.0</version>
                <exclusions>
                     <exclusion>
                           <artifactId>jdk.tools</artifactId>
                           <groupId>jdk.tools</groupId>
                     </exclusion>
                </exclusions>
           </dependency>
           <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-hdfs</artifactId>
                <version>2.2.0</version>
           </dependency>
     
     ...
 
 
 
step2: 拷贝配置文件
‘hdfs-site.xml’和‘core-site.xml’
 
step3:测试代码

  1. package cjkjcn.demo.hadoop.hdfs;
  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.util.LinkedList;
  6. import java.util.List;
  7. import org.apache.hadoop.conf.Configuration;
  8. import org.apache.hadoop.fs.FSDataInputStream;
  9. import org.apache.hadoop.fs.FileSystem;
  10. import org.apache.hadoop.fs.Path;
  11. /**
  12. *
  13. * @author junhong
  14. *
  15. * 2017年5月18日
  16. */
  17. public class HDFSDao {
  18. private static Configuration conf = new Configuration();
  19. private FileSystem hdfs;
  20. final static String ROOT_PATH = "/user";
  21. public HDFSDao() {
  22. conf.addResource("hdfs-site.xml");
  23. conf.addResource("core-site.xml");
  24. try {
  25. hdfs = FileSystem.get(conf); // 初始化hdfs
  26. } catch (IOException e) {
  27. e.printStackTrace();
  28. }
  29. System.out.println("param size=" + conf.size());
  30. }
  31. /**
  32. * 扫描测试文件是否存在
  33. */
  34. public void scanFiles() {
  35. try {
  36. Path path = new Path(ROOT_PATH);
  37. System.out.println(hdfs.exists(path));
  38. } catch (IOException e) {
  39. e.printStackTrace();
  40. }
  41. }
  42. /**
  43. * 按行读取文本文件
  44. * @param file
  45. * @return
  46. */
  47. public List<String> lines(String file) {
  48. List<String> list = new LinkedList<>();
  49. Path f = new Path(file);
  50. try {
  51. FSDataInputStream input = hdfs.open(f);
  52. InputStreamReader inr = new InputStreamReader(input);
  53. BufferedReader read = new BufferedReader(inr);
  54. String line;
  55. while ((line = read.readLine()) != null) {
  56. list.add(line);
  57. }
  58. } catch (IOException e) {
  59. e.printStackTrace();
  60. }
  61. return list;
  62. }
  63. }

 
注意:
 
1)若缺少依赖 
 
          <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-hdfs</artifactId>
                <version>2.2.0</version>
           </dependency>
 
将导致如下错误!!
 java.io.Exception: No FileSystem for scheme: hdfs
 
 
2)测试写文件或者创建目录方法接口时,可能会出现权限问题
Pemission denied for test
 

HDFS Java Client对hdfs文件增删查改的更多相关文章

  1. java 利用注解实现BaseDao 增删查改

    第一步,编写两个注解类,用于表明实体类对应的表名及字段. TableInfo.java 此注解用于标注表名及主键名 import static java.lang.annotation.Element ...

  2. Java实现单链表的增删查改及逆置打印

    //所提供的接口 LinkList.java package Struct; public interface LinkList {//判断链表为空public boolean linkListIsE ...

  3. Java连接MySQL数据库及简单的增删查改操作

    主要摘自 https://www.cnblogs.com/town123/p/8336244.html https://www.runoob.com/java/java-mysql-connect.h ...

  4. java:Hibernate框架1(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态,增删查改)

    1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件  准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cf ...

  5. 后端Spring Boot+前端Android交互+MySQL增删查改(Java+Kotlin实现)

    1 前言&概述 这篇文章是基于这篇文章的更新,主要是更新了一些技术栈以及开发工具的版本,还有修复了一些Bug. 本文是SpringBoot+Android+MySQL的增删查改的简单实现,用到 ...

  6. java中CRUD(增删查改)底层代码的实现

    java中CRUD(增删查改)底层代码的实现: package com.station.dao; import com.station.model.Product; import java.sql.* ...

  7. java实现简单的数据库的增删查改,并布局交互界面

        一.系统简介 1.1.简介  本系统提供了学生信息管理中常见的基本功能,主要包括管理员.管理员的主要功能有对学生信息进行增加.删除.修改.查找等操作,对信息进行管理,对信息进行修改.查找等操作 ...

  8. MongoDB在Java下的增删查改

    我们总不能一直使用cmd对数据库操作,数据库总是要在程序中使用的.今天来说一下怎么通过Java调用MongoDB. 学习一下最基本也是最常用的增删查改语句,这是使用数据库的基础. 注意事项: 1.要打 ...

  9. JAVA原生mvc实现用户信息的增删查改

    笔者最近学完jsp和servlet,于是心血来潮的打算写个简单的用户案例 环境准备: 开发工具eclipse jdk-1.8.0_72 tomcat-9.0.5 前端部分: 1.自己手写了一套样式 2 ...

随机推荐

  1. 学习React前端框架,报错 'React' must be in scope when using JSX react/react-in-jsx-scope

    问题 import react from 'react'  改成  import React from 'react'   小写 react  改成 React

  2. StarUML3.0选择不同类型图和导出

    StarUML(简称SU),是一种创建UML类图,生成类图和其他类型的统一建模语言(UML)图表的工具. 可绘制9款UML图:用例图.类图.序列图.状态图.活动图.通信图.构件图.部署图以及复合结构图 ...

  3. html Canvas 画图 能够选择并能移动

    canvas 画图,能够选中所画的图片并且能够随意移动图片 <html xmlns="http://www.w3.org/1999/xhtml"> <head r ...

  4. Amazon新一代云端关系数据库Aurora(下)

    本文由  网易云发布. 作者:郭忆 本篇文章仅限内部分享,如需转载,请联系网易获取授权. 故障恢复 MySQL基于Check point的机制,周期性的建立redo log与数据页的一致点.一旦数据库 ...

  5. ADB 源码分析(一) ——ADB模块简述【转】

    ADB源码分析(一)——ADB模块简述 1.Adb 源码路径(system/core/adb). 2.要想很快的了解一个模块的基本情况,最直接的就是查看该模块的Android.mk文件,下面就来看看a ...

  6. 【OCP-12c】2019年CUUG OCP 071考试题库(76题)

    76.View the exhibit and examine the description of the DEPARTMENTSand EMPLOYEEStables. The retrieve ...

  7. 【OCP认证12c题库】CUUG 071题库考试原题及答案(27)

    27.choose two The SQL statements executed in a user session are as follows: SQL> CREATE TABLE pro ...

  8. 关于Mybatis 反向生成后 查询结果全部为null 解决办法

    今天遇到了一个问题,就是mybatis通过反向生成工具 生成的pojo类(实体类) xml文件 以及Mapper之后查询时结果为null 我写的代码怎么看都没有错 就是没有结果 后来在排除错误的时候发 ...

  9. django视图缓存的实现

    django视图缓存的实现 1,安装 pip install django-redis setting.py CACHES = { "default":{ "BACKEN ...

  10. P3622 [APIO2007]动物园

    题目链接 题意分析 这是一道状压\(DP\)的题 一个人只可以欣赏到\(5\)只动物 显然可以状压 我们用\(dp[i][j]\)表示当前\([i,i+4]\)中这\(5\)只动物的状态\(j\) 在 ...