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:测试代码

package cjkjcn.demo.hadoop.hdfs;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.List;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
/**
*
* @author junhong
*
* 2017年5月18日
*/
public class HDFSDao {
private static Configuration conf = new Configuration();
private FileSystem hdfs;
final static String ROOT_PATH = "/user";
public HDFSDao() {
conf.addResource("hdfs-site.xml");
conf.addResource("core-site.xml");
try {
hdfs = FileSystem.get(conf); // 初始化hdfs
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("param size=" + conf.size());
}
/**
* 扫描测试文件是否存在
*/
public void scanFiles() {
try {
Path path = new Path(ROOT_PATH);
System.out.println(hdfs.exists(path));
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 按行读取文本文件
* @param file
* @return
*/
public List<String> lines(String file) {
List<String> list = new LinkedList<>();
Path f = new Path(file);
try {
FSDataInputStream input = hdfs.open(f);
InputStreamReader inr = new InputStreamReader(input);
BufferedReader read = new BufferedReader(inr);
String line;
while ((line = read.readLine()) != null) {
list.add(line);
}
} catch (IOException e) {
e.printStackTrace();
}
return list;
}
}

 
注意:
 
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. C# 使用 COALESCE 表达式简化 Null 检查

    下面这个判断 null 的语句: a == null ? b: a 可以用 COALESCE 表达式,简化成: a ?? b

  2. vim 命令全

    1 简介 vim是文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.下面讲述一些必要的基本命令,而掌握好这些命令,您就能够很容易将vim当作一个通用的万能编辑器来使用 ...

  3. SQL集合运算

    注:UserInfo一共29条记录 select * from UserInfo union --并集(29条记录)(相同的只出现一次) select * from UserInfo select * ...

  4. T-Sql之集合

    1.知识点 先了解一下集合概念,集合运算(UNION(并).EXCEPT(补).INTERSECT(交))是指表之间的垂直操作.区别联接(CROSS,INNER.OUTER)是指表之间的水平操作,基础 ...

  5. 将网页发布到远程windows server

    1.在vs下利用文件系统发布asp.net文件 2.将生成的所有文件打包成ZIP 3.将zip文件复制并解压到远程windows server的自己创建的文件夹下 4.在windows server上 ...

  6. dockerfile构建redis

    -------------------------------------------------------------

  7. Android 与 iOS 推送 Push Notification 的区别

    Android 安卓使用 GCM (Google Cloud Messaging) 接收推送,然后应用根据实际情况决定做什么反应,比如显示一个 Notification. 所以安卓下,推送 Push ...

  8. 201621123023《Java程序设计》第13周学习总结

    一.本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 二.为你的系统增加网络功能(购物车.图书馆管理.斗地主等)-分组完成 为了让你的系统可以被多个用户通过网络同 ...

  9. jdk动态代理 案例

    import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflec ...

  10. vuejs 添加事件时出现TypeError: n.apply is not a function

    vuejs项目中给表单元素添加事件时出现了TypeError: n.apply is not a function的错误,后来发现错误原因时处理事件的函数名和data中定义的变量名相同 当给事件添加处 ...