通过JAVA对HDFS进行操作管理插件
建立连接,导包
如果不用maven,解压hadoop安装包,share==>hadoop==>common==>lib 里面的全部复制粘贴过去, share==>hadoop==>hdfs==>lib 里面的全部复制粘贴过去。
如果用maven,在maven repository中搜索hadoop,找到common,找到对应版本
复制到pom.xml中
再导入hadoop Client
第一步建立连接,连接namenode
之前通过linux对hdfs配置时,在core-site.xml中,配置
连接的是namenode。
现在用myeclipse,书写运行文件,先对文件进行读操作:
HDFSClient.java
package com.neuedu.test;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path;public class HFDSClient {public static void main(String[] args) {// TODO Auto-generated method stub read();}public static void read(){//-------连接namenode://1、创建一个配置对象(与配置文件是一个原理)Configuration conf=new Configuration();conf.set("fs.defaultFS", "hdfs://192.168.71.141:9000");//set配置对象Path path=new Path("/hadoop/abc.txt");//读文件//FileSystem fs=new //发现方法不能用,因为它为抽象方法,在不能用情况下,创建对象时方法很陌生且不能用,调用一下静态方法,看哪个可以返回try {FileSystem fs=FileSystem.get(conf);//只用来连接namenode//因为是读文件,需要返回一个输入流FSDataInputStream input = fs.open(path);//f 为一个路径,告诉它文件在哪 //返回了一个流//读文字可以转化为字符流,转换:InputStreamReader isr=new InputStreamReader(input);//如果想按行读,BufferedReader br=new BufferedReader(isr);//开始读String str=br.readLine();//按行读while(str!=null){//只要不为空 System.out.println(str);str=br.readLine();//每输出一行,读一次 }br.close();isr.close();input.close();//流都需要关闭} catch (IOException e) {// TODO Auto-generated catch block e.printStackTrace();}} }
之后运行,结果:
查看文件是否正确:
现在对文件进行写操作,分为追加和直接写入
追加方法:
public static void append(){Configuration conf=new Configuration();conf.set("fs.defaultFS", "hdfs://192.168.71.141:9000");//set配置对象try {FileSystem fs=FileSystem.get(conf);FSDataOutputStream outpustream = fs.append(new Path("/hadoop/abc.txt"));//在哪个文件上追加outpustream.writeBytes("123123123");outpustream.close();} catch (IOException e) {// TODO Auto-generated catch block e.printStackTrace();}}
之后再读一下,看看是否写成功:
直接写入的形式:
//写入:直接写入public static void write(){Configuration conf=new Configuration();conf.set("fs.defaultFS", "hdfs://192.168.71.141:9000");//set配置对象try {FileSystem fs=FileSystem.get(conf);FSDataOutputStream outpustream = fs.create(new Path("/hadoop/abc.txt"));//在哪个文件上追加outpustream.writeBytes("123123123");outpustream.close();} catch (IOException e) {// TODO Auto-generated catch block e.printStackTrace();}}
通过read()查看结果:
因为来回切换函数查看文件内容很不方便,在此进行配置DFS Location,方便对hdfs进行管理:
先将复制到myeclipse根目录的plugins中,
重启myeclipse重启之后,点击windows==>show view==>other==>会多出一个视图
双击此视图,右击新建,
出现视图,能够显示hdfs中的文件目录,查看文件内容
转载于:https://www.cnblogs.com/610553824lyx/p/9307769.html
通过JAVA对HDFS进行操作管理插件相关推荐
- hdfs java 权限管理,HDFS的权限管理
1 HDFS的权限管理介绍 HDFS的权限管理分成2大部分: 类似linux的基本权限管理(粗粒度) 针对管理对象分三种:user.group.other方式的权限管理方式 user:即目录或文件的o ...
- HDFS简单介绍及用C语言訪问HDFS接口操作实践
一.概述 近年来,大数据技术如火如荼,怎样存储海量数据也成了当今的热点和难点问题,而HDFS分布式文件系统作为Hadoop项目的分布式存储基础,也为HBASE提供数据持久化功能,它在大数据项目中有很广 ...
- 基于Java的Minecraft游戏后端自定义插件 的Java实践项目整理
Minecraft_Plugin 1.项目概述 2.系统设计 3.功能模块成果展示 4.个人总结 1.项目概述 1.1 项目简介 小组准备编写一个具有武器战斗,道具收集.互动社交和任务悬赏四大系统的聚 ...
- java毕业设计——基于java+JSP+Oracle的记账管理系统设计与实现(毕业论文+程序源码)——记账管理系统
基于java+JSP+Oracle的记账管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+JSP+Oracle的记账管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下 ...
- java毕业设计—— 基于java+JavaEE+jsp的售后服务管理系统设计与实现(毕业论文+程序源码)——售后服务管理系统
基于java+JavaEE+jsp的售后服务管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+JavaEE+jsp的售后服务管理系统设计与实现,文章末尾附有本毕业设计的论文 ...
- BEP 7:CUDA外部内存管理插件(下)
BEP 7:CUDA外部内存管理插件(下) Numba依赖 向库中添加EMM插件的实现自然会使Numba成为库的依赖项,而以前可能没有.为了使依赖关系可选,如果需要的话,可以有条件地实例化并注册EMM ...
- BEP 7:CUDA外部内存管理插件(上)
BEP 7:CUDA外部内存管理插件(上) 背景和目标 在CUDA阵列接口使得能够共享不同的Python之间的数据库的访问CUDA设备.但是,每个库都与其它库区别对待.例如: • Numba在内部管理 ...
- java大文件读写操作,java nio 之MappedByteBuffer,高效文件/内存映射
http://langgufu.iteye.com/blog/2107023 java处理大文件,一般用BufferedReader,BufferedInputStream这类带缓冲的Io类,不过如果 ...
- 【Java 虚拟机原理】垃圾回收算法( Java VisualVM 工具 | 安装 Visual GC 插件 | 使用 Java VisualVM 分析 GC 内存 )
文章目录 一.Java VisualVM 工具安装 Visual GC 插件 二.使用 Java VisualVM 分析 GC 内存 一.Java VisualVM 工具安装 Visual GC 插件 ...
最新文章
- SparkStreaming和Storm的区别
- hdu4287 水题
- 公钥,私钥和数字签名这样理解轻松入门!
- php 白名单,php实现ip白名单黑名单功能
- 改SB训练数据的名字
- 51 NOD 1013 3的幂的和
- tcp的粘包和拆包示例以及使用LengthFieldFrameDecoder来解决的方法
- Cannot resolve table 't_daily'
- Atitit 计算机通信技术概要 目录 1. OSI参考模型将整个协议垂直地分为7个层次 :	1 1.1. 通信类别	2 2. 传输方式 计算机通信可分为直接式和间接式两种。	2 2.1. 1)直
- 深度学习(13):pointnet++论文翻译与学习
- 转载一些Unity插件及资源
- 基于扩张卷积神经网络的图像超分辨率
- Oracle TFA日志收集工具简介
- in作为介词的用法_介词in,on,at的具体用法与区分
- Android存储子系统流程--vold
- 2、视觉基础知识问答
- 爬虫爬取www.newdianying.com心心电影网电影资源实例
- GEF原理及实现系列(一、GEF概述)
- Goldengate辅助数据库进行升级
- gitlab创建merge requests
热门文章
- 扩展 GRTN:云原生趋势下的 RTC 架构演进
- 刚刚,阿里开源了一项重磅炸弹,终结程序员“中年危机”!
- 美术师关于自己的报酬与工作的看法
- python+selenium自动登录qq空间并下载相册
- Python基础——PyCharm版本——第五章、循环(for、while、break、continue)
- pmp每日三题(2022年2月22日)
- 软件技术专业-就业提示(IT类详细岗位分化)
- 面试官问你的缺点是什么,该如何回答?
- 小程序生成二维码报错:40169:invalid length for scene, or the data is not json string
- firewall防火墙