第六周之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中的输出的文件夹的 ...
随机推荐
- 1.1Jmeter学习网站
在网上找到一些关于Jmeter学习的博客等,在此标记 一. chinaunix的一篇博客,讲的蛮详细的 http://blog.chinaunix.net/uid/26884465/cid-16819 ...
- 解决:执行python脚本,提示错误:/usr/bin/python^M: 解释器错误: 没有那个文件或目录。
执行python脚本,提示错误: /usr/bin/python^M: 解释器错误: 没有那个文件或目录. 产生错误原因: \r字符被显示为^M,这时候只需要删除这个字符就可以了. Linux环境下: ...
- mui 进度条 隐藏
官方提供的 mui(contanier).progressbar().hide(); 并未起作用,DOM是js动态添加的,结果无法隐藏.(越使用,mui 的坑越多,陆续记录中...) 后使用下面的方法 ...
- Windows上搭建hexo博客
1.windows上下载git(官网太慢),建议去其他地方下载啊(右键出现 Git Bash Here 的标志就安装完成) 2.安装npm:http://nodejs.cn/download/ 3.安 ...
- The Preliminary Contest for ICPC Asia Xuzhou 2019 G Colorful String(回文自动机+dfs)
这题建立一棵回文树,然后用dfs搜索答案,但是有一点需要注意,就是打vis的标记时,如果标记为1,那么在好几个节点都对同一个字符i打过标记,此时的搜索从字符i点回溯,回到它的父亲节点,搜索其它的字符, ...
- JVM系列(三)之GC
什么是GC Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄 ...
- 【译】高级T-SQL进阶系列 (四)【上篇】:使用游标进行行级别处理
[译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文链接:传送门. 正常来说,使用游标并不是处理记录集的最佳方式.然而当一个经验丰富的程序员第一次开始写TSQL时,他们经常会寻找其 ...
- ES数据同步方案
当业务量上升后,由于mysql对全文检索或模糊查询支持的能力不强,在系统中查询的地方,往往会出现慢sql等,拖累系统其他模块,造成性能低下. 随着ES使用普及率的升高,ES是mysql的一个有效补充. ...
- ASP.NET Core搭建多层网站架构【14-扩展之部署到IIS】
2020/02/03, ASP.NET Core 3.1, VS2019, IIS 10, dotnet-hosting-3.1.1-win.exe 摘要:基于ASP.NET Core 3.1 Web ...
- python3中的raise使用
raise表示会抛出异常那么就是说raise会向python的解释器一个响应告诉解释器他的后面是一个异常让我们的程序中断 一般是和自定义的异常连用. class CustomError(Excepti ...