• 第六周之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;
        }
    
    }
  • 相关阅读:
    MYSQL把一张表的数据批量复制到另外一张表
    06:rpm 和 yum 执行卡住,解决方法
    su: cannot set user id: Resource temporarily unavailable 解决方法
    queue队列
    threading 两种调用方法
    paramiko 模块 linux
    socketserver 模块实现ftp功能
    socket实现简单的文件下载传输功能
    mysql使用update代替delete做伪删除
    mysql客户端命令mysqladmin介绍
  • 原文地址:https://www.cnblogs.com/halone/p/11373173.html
Copyright © 2020-2023  润新知