第六周之Hadoop学习(六)
继续上周开启telnet的过程,这个过程发现win10上运行不了telnet的命令
原因大概在于没有开启telnet服务,从网上下载好telent服务端,安装后继续尝试是否能在win10上使用hadoop
安装完成后,现在在CMD命令中能够连通telnet
接着开启,eclipse 进入上周的上传过程
hadoop上传实验成功!!!
留下了感动了泪花
以下功能,通过网址:https://blog.csdn.net/HcJsJqJSSM/article/details/83418976的教程参考学习
1.实现删除目录的功能

进入网址中查看是否存在相应的目录

网址中存在相应的目录
测试成功将其封装为一个方法:

2.删除文件功能

测试成功
目标网址中相应目录被删除

将其封装为一个方法:

3.实现上传文件
首先在d盘里面创建一个hadoop.txt的文件,然后在文件里面写上12315的内容,该内容总共5个字节
接着在main里面写上下列的代码

执行程序
执行后,在对应位置能够看到相应的文件
如图:

将其封装为一个方法:

4.实现下载文件
在main中写入下列的函数:

将刚刚上传的hadoop.txt文件下载到d盘的hadoop1.txt中
执行结果:

将其封装为一个方法:

至此,hadoop的在java上基本操作的被封装成一个简单的类了。
其代码如下:
package hadoop; import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils; public class HDFSDemo { public final String hd_uri = "hdfs://192.168.57.128:9000";
public final String hd_owner = "hadoop"; public static void main(String[] args) throws IOException, InterruptedException, URISyntaxException { // HDFSDemo down=new HDFSDemo(); }
public void downloadFile(String path,String source) throws IOException, InterruptedException, URISyntaxException
{
// 使用root权限,URI就是之前hadoop配置的路径.9000端口.
FileSystem fs=getFileSystem();
// 实现HDFS内的文件下载至本地
InputStream in=fs.open(new Path(path));
// 下载到本地,保存后的名称是hadoop.txt
OutputStream out=new FileOutputStream(source);
// 按照字节的方式复制.buffersize是4K,写完后返回true.
IOUtils.copyBytes(in, out, 4096, true);
//关闭流
fs.close();
}
public void updateFile(String source,String path) throws IOException, InterruptedException, URISyntaxException
{
// 使用root权限,URI就是之前hadoop配置的路径.9000端口.
FileSystem fs=getFileSystem();
// 实现上传文件,首先是读取本地的文件
InputStream in=new FileInputStream(source);
// 上传文件到HDFS的指定目录下.
OutputStream out=fs.create(new Path(path));
// 按照字节的方式复制.buffersize是4K,写完后返回true
IOUtils.copyBytes(in, out, 4096, true);
// 关闭流
fs.close();
} public boolean deleteFileSystem(String path) throws IOException, InterruptedException, URISyntaxException
{
//删除目录
// 使用root权限,URI就是之前hadoop配置的路径.9000端口.
FileSystem fs=getFileSystem();
// 删除一个文件夹,这里从HDFS的根目录写起的,如果是单个文件就是false,目录下面有目录就true.
@SuppressWarnings("deprecation")
Boolean flag=fs.delete(new Path(path));
// 关闭
fs.close();
return flag;
} public boolean createFileSystem(String path) throws IOException, InterruptedException, URISyntaxException
{
//创建目录
// 使用root权限,URI就是之前hadoop配置的路径.9000端口.
FileSystem fs=getFileSystem();
// 创建一个文件夹,这里从HDFS的根目录写起的.
Boolean flag=fs.mkdirs(new Path(path));
//关闭流
fs.close();
return flag;
} public FileSystem getFileSystem() throws IOException, InterruptedException, URISyntaxException
{
FileSystem fs=FileSystem.get(new URI(hd_uri), new Configuration(),hd_owner);
return fs;
} }
第六周之Hadoop学习(六)的更多相关文章
- 20145330第六周《Java学习笔记》
20145330第六周<Java学习笔记> . 这周算是很忙碌的一周.因为第六周陆续很多实验都开始进行,开始要准备和预习的科目日渐增多,对Java分配的时间不知不觉就减少了,然而第十和十一 ...
- 20175215 2018-2019-2 第六周java课程学习总结
第七章 内部类与异常类 1.内部类 Java支持在一个类中定义另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类 内部类和外嵌类之间重要关系如下 内部类的外嵌类的成员变量在内部类中仍然有 ...
- 大二暑假第六周总结--开始学习Hadoop基础(五)
简单学习数据仓库HIVE HIVE是一个构建于Hadoop顶端的数据仓库工具 支持大规模数据存储,分析,具有良好的可扩展性 某种程度上可以看做是用户编程接口,本身不存储和处理数据 依赖分布式系统HDF ...
- 第六周实验总结&学习总结
一.实验目的 (1)掌握类的继承方法 (2)变量的继承和覆盖,方法的继承,重载和覆盖实现 二.实验内容 源代码 package java2; import java.util.Scanner; cla ...
- hadoop学习(六)----HDFS的shell操作
HDFS所有命令: [uploaduser@rickiyang ~]$ hadoop fs Usage: hadoop fs [generic options] [-appendToFile < ...
- 第六周 day6 python学习笔记
1.Python面向对象编程OOP(Object Oriented Programming) 封装:可以隐藏实现细节,使代码模块化 继承:可以扩展已存在的代码模块,可以使代码实现重用 多态:一种接口, ...
- 第五周之Hadoop学习(五)
在上周已经完成Hadoop的Java编程环境下的配置,这周则是通过对Eclipse的环境编程对Hadoop的API进行简单的调用 参考地址:https://blog.csdn.net/u0105237 ...
- 第二周之Hadoop学习(二)
这篇博客根据http://dblab.xmu.edu.cn/blog/install-hadoop-in-centos/中的教程进行学习: 首先按照教程的操作的第一步的时候,电脑直接蓝屏了. 但是依然 ...
- 第三周之Hadoop学习(三)
从上周的这篇教程中继续hadoop的安装过程:http://dblab.xmu.edu.cn/blog/install-hadoop-in-centos/ 上节课安装到对hadoop中的输出的文件夹的 ...
随机推荐
- 【visio】数据可视化 - 数据展示
本章讲解如何将形状数据展示成数据图像,也就是将添加的属性,展示在图形上 1.数据图形控制面板 选中图形>右键>数据>编辑数据图形 2.新建数据图形 数据字段:也就是图形的属性 显示为 ...
- drf的序列化和反序列化
序列化器--Serializer 选项参数: max_length 最大长度 min_length 最小长度 allow_blank 是否允许为空 trim_whitespace 是否截断空白字符 m ...
- Go错误
1. error package main import ( "errors" "fmt" ) func main() { /* error:内置的数据类型,内 ...
- HttpClient的CircularRedirectException解决办法
解决方法: HttpGet httpGet = new HttpGet(" http://XXXX.XXX"); httpGet.getParams().setParameter( ...
- denied: requested access to the resource is denied 解决办法
往 dockerhub 上 push 本地镜像的时候 出现了下面这个提示: denied: requested access to the resource is denied 解决办法: 在 dod ...
- ubuntu 先安装php再安装apache后,php不解析
本来服务器是nginx ,把他改成了apache, 安装apache, sudo apt-get updatesudo apt-get install apache2 然后访问ip,不成功 vim / ...
- jquery Ajax标准规范写法
$.ajax({ url:"http://www.xxx",//请求的url地址 dataType:"json",//返回的格式为json async:true ...
- P1428
AC: #include <stdio.h> #define rep(i, a, b) for(int i = a; i <= b; i++) #define min(a, b) ( ...
- 计算机二级-C语言-程序设计题-190118记录-通过数组和指针两种方式对字符串进行处理。
//编写一个函数fun,比较两个字符串的长度,(不使用C语言提供的求字符串长度的函数),函数返回较长的字符串.若两个字符长度相同,则返回第一个字符串. //重难点:通过数组处理和通过指针进行处理的不同 ...
- go语言快速入门教程
go快速入门指南 by 小强,2019-06-13 go语言是目前非常火热的语言,广泛应用于服务器端,云计算,kubernetes容器编排等领域.它是一种开源的编译型程序设计语言,支持并发.垃圾回收机 ...