第六周之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中的输出的文件夹的 ...
随机推荐
- [NLP]Transformer模型解析
简介[2] Attention Is All You Need是2017年google提出来的一篇论文,论文里提出了一个新的模型,叫Transformer,这个结构广泛应用于NLP各大领域,是目前比较 ...
- Eclipse使用段注释格式化代码后混乱情况解决
今天在Eclipse写代码用到段注释代码块注释一个方法,习惯使用格式化代码,结果一看格式化后的代码就乱了.就像下面那样. 觉得太乱了,而且不好对比检查.如果取消注释中间的**还保存了的,好纠结.于是就 ...
- MySQL必知必会(第4版)整理笔记
参考书籍: BookName:<SQL必知必会(第4版)> BookName:<Mysql必知必会(第4版)> Author: Ben Forta 说明:本书学习笔记 1.了解 ...
- Docker - CentOS 7 安装
1. 概述 安装 docker markdown 显示有点问题 代码块里的 后面应该跟一个换行, 但是没有跟 这样会导致部分命令直接执行没有反应 2. 环境 os CentOS7 用户 root 3 ...
- 通过python代码连接MySQL以及插入和显示数据
通过python代码连接MySQL以及插入和显示数据: 数据库huahui创建一个shibie的表,里面有两个varcahr(100)的字段,num和result. import pymysql im ...
- 了解Maven的基本知识
我的博客地址:https://www.cnblogs.com/themysteryofhackers/p/11934540.html 更新时间:2019-11-26 一.Maven的基本概念 Mave ...
- [C++]蛇形填数
[从左下角开始,逆时针蛇形填数] #include <iostream> using namespace std; int main() { int n; cin>>n; in ...
- 从csv文件里取数据作为请求参数,和把返回数据放到一个csv文件
本来想把登陆后的token放到数组里,下一个参数用,但是貌似不支持数组,暂时先这样用了,并不麻烦,还很方便. 1.添加线程组等必要的东东后,添加csv配置器 2.进行设置 说明:csv文件设置不能读取 ...
- 6_3 矩阵链乘(UVa424)<用栈实现简单的表达式解析>
假设你必须做A*B*C*D*E的运算,在这里A,B,C,D,E都是矩阵(matrix).由于矩阵相乘具有连接性(associative),所以相乘的顺序可以是任意的.然而所需要的基本乘法数却与不尽相同 ...
- 2020年英特尔CPU供应短缺将持续
导读 有着相当靠谱的爆料历史的台媒 DigiTimes 报道称,其预计英特尔的 CPU 供应短缺问题,将持续到 2020 年末.对于这样的预测,我们其实早已见怪不怪,毕竟该公司首席执行官 Bob Sw ...