云计算实验 HDFS编程

这篇具有很好参考价值的文章主要介绍了云计算实验 HDFS编程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【实验作业1】自己动手实现HDFS Shell
基于已经学习到的Hadoop API编程知识,自己动手实现一个简单的HDFS Shell程序,程序名称为HShell,要求能够支持以下功能:
1.使用HShell -cp 本地路径 HDFS路径,将文件从Linux本地文件系统拷贝到HDFS指定路径上。

2.使用HShell -rm 路径删除文件

3.使用HShell -rm -r 路径删除目录

4.使用HShell -cp -r 本地目录路径 HDFS路径,将目录从Linux本地拷贝到HDFS指定路径上。

5.使用HShell -list 路径显示某个文件的信息或者某个目录的信息

6.使用HShell -mv 路径 路径移动文件或者重命名文件

7.使用HShell -find 文件名 目录实现在目录下递归查找某个文件名的文件。

实验结果:
1.HShell -cp 功能的测试结果。在终端中查看后显示拷贝成功。
基于已经学习到的hadoop api编程知识,自己动手实现一个简单的hdfs shell程序,程序,hdfs,hadoop,云计算
基于已经学习到的hadoop api编程知识,自己动手实现一个简单的hdfs shell程序,程序,hdfs,hadoop,云计算

实验代码:文章来源地址https://www.toymoban.com/news/detail-715330.html

import com.sun.javaws.IconUtil;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

import java.net.URI;
import java.util.Scanner;

public class HShell {
    public static void main(String[] args) {
        try {
            FileSystem fs = FileSystem.get(new URI("hdfs://master:9000"), new Configuration());
            Scanner sc = new Scanner(System.in);
            while(true)
            {
                String cmd1=sc.next();
                String cmd2,cmd3,cmd4,cmd5;
                if(cmd1.equals("HShell")){
                    cmd2=sc.next();
                    if(cmd2.equals("-cp")){
                        cmd3=sc.next();
                        cmd4=sc.next();
                        if(cmd3.equals("-r")){
                            cmd5=sc.next();
                            fs.copyFromLocalFile(false,true,new Path(cmd4),new Path(cmd5));
                            System.out.println("copy directory from "+cmd4+"to "+cmd5);
                        }
                        else
                        {
                            fs.copyFromLocalFile(new Path(cmd3),new Path(cmd4));
                            System.out.println("copy file from "+cmd3+"to "+cmd4);
                        }

                    }
                    else if(cmd2.equals("-rm")){
                        cmd3=sc.next();
                        if(cmd3.equals("-r")){
                            cmd4=sc.next();
                            if(fs.delete(new Path(cmd4),true)){
                                System.out.println("Directory "+ cmd4 +" has been deleted successfully!");
                            }
                        }
                        else
                        if(fs.delete(new Path(cmd3),false)){
                            System.out.println("File "+ cmd3 +" has been deleted successfully!");
                        }

                    }
                    else if(cmd2.equals("-list")){
                        cmd3=sc.next();
                        //FileStatus [] fileStatus=fs.listStatus(new Path(cmd3));
                        FileStatus filestatus =fs.getFileStatus(new Path(cmd3));
                        System.out.println(filestatus.toString());
                    }
                    else if(cmd2.equals("-mv")){
                        cmd3=sc.next();
                        cmd4=sc.next();
                        fs.moveFromLocalFile(new Path(cmd3),new Path(cmd4));
                        System.out.println("move file from "+cmd3+"to "+cmd4);
                    }
                    else if(cmd2.equals("-mv")){
                        cmd3=sc.next();
                        cmd4=sc.next();
                        fs.moveFromLocalFile(new Path(cmd3),new Path(cmd4));
                        System.out.println("move file from "+cmd3+"to "+cmd4);
                    }
                    else if(cmd2.equals("-find")){
                        cmd3=sc.next();
                        cmd4=sc.next();
                        fs.setWorkingDirectory(new Path(cmd4));
                        if(!fs.exists(new Path(cmd3)))
                        {
                            System.out.println(cmd3+" is not found");
                        }
                        else {
                            System.out.println(fs.getFileStatus(new Path(cmd3)).getPath());
                        }
                    }
                }


            }
        }catch(Exception e) {
            e.printStackTrace();
        }
    }
}

到了这里,关于云计算实验 HDFS编程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据编程实验二:熟悉常用的HDFS操作

    实验目的 1、理解HDFS在Hadoop体系结构中的角色 2、熟悉使用HDFS操作常用的Shell命令 3、熟悉HDFS操作常用的Java API 实验平台 1、操作系统:Windows 2、Hadoop版本:3.1.3 3、JDK版本:1.8 4、Java IDE:IDEA 前期:一定要先启动hadoop   1、编程实现以下功能,并利用Hadoop提供的Shell命令完成相

    2024年02月08日
    浏览(46)
  • hadoop学习之hdfs学习

    HDFS 文件系统,可以说是分布式数据库吧 结构是 目录树 适用场景:一次写入,多次读出.好像不太支持改删 优点: 1.高容错: 因为他会备份,所以一份出问题了,并不影响其他几份 如果副本丢失后,定时恢复.应该是定时检查然后恢复 每次启动,DN向NN汇报备份的存储情况.默认每个6个小

    2024年02月16日
    浏览(45)
  • Hadoop学习笔记之HDFS

    分布式存储系统 支持海量数据的存储,成百上千的计算机组成存储集群,HDFS可以运行在低成本的硬件之上,具有的高容错、高可靠性、高可扩展性、高吞吐率等特征,非常适合大规模数据集上的应用。 优点 高容错性 适合批处理 适合大数据处理 流式文件访问 可构建在廉价

    2024年02月07日
    浏览(41)
  • Hadoop学习-6-HDFS权限管理

    HDFS权限管理 认证、授权、审计(/var/log/secure) HDFS权限管理 身份认证,数据访问权限认证 UGO模型:每个文件和目录都与一个owner、group关联 user:文件所有者 group:组内其他成员 other:其他用户组,最低权限 读、写、执行权限 -/d(文件类型)rwx(owner权限)rwx(group权限)rwx(other权限

    2024年02月16日
    浏览(54)
  • Hadoop学习(一)——环境配置(特别顺利版!!!已经排坑了)

    软件:VM Ware iso镜像:CentOS7 Hadoop版本:Hadoop-3.3.3 目录 一、创建虚拟机并安装CentOS系统 二、静态网络配置 三、安装Hadoop 1.下载Hadoop安装包 2.下载JDK安装包 3. 安装过程 4.克隆虚拟机  5.配置hoats文件和免密登录 6.Hadoop集群节点配置 7.格式化并启动节点 【好了之后一定要快照!

    2024年02月03日
    浏览(42)
  • 大数据编程实验一:HDFS常用操作和Spark读取文件系统数据

    这是我们大数据专业开设的第二门课程——大数据编程,使用的参考书是《Spark编程基础》,这门课跟大数据技术基础是分开学习的,但这门课是用的我们自己在电脑上搭建的虚拟环境进行实验的,不是在那个平台上,而且搭建的还是伪分布式,这门课主要偏向于有关大数据

    2024年04月10日
    浏览(54)
  • 大数据技术原理与应用实验指南——HDFS JAVA API编程实践

    1. 实验目的 (1) 熟练使用HDFS操作常用的Shell命令。 (2) 熟悉HDFS操作常用的Java API。 2. 实验内容 (1) 编程实现指定功能,并利用Hadoop提供的Shell命令完成相同任务(文件的上传、下载、输出、删除、移动等操作)。 (2) 有余力编写一个Java程序,读取HDFS中的指定文件。

    2024年02月19日
    浏览(42)
  • 0201hdfs集群部署-hadoop-大数据学习

    下面我们配置下单namenode节点hadoop集群,使用vmware虚拟机环境搭建。vmware虚拟机的配置,在下面链接2有,或者自行查阅文档。hadoop安装包可到官网下载,当前相关软件环境如下: 软件 版本 说明 hadoop 3.3.4 jar包 vmware 15.5 虚拟机 centos 7.6 服务器操作系统 xshell 6 远程连接 jdk 1.8

    2024年02月11日
    浏览(47)
  • 从零开始的Hadoop学习(二)| Hadoop介绍、优势、组成、HDFS架构

    Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 主要解决,海量数据的存储和海量数据的分析计算问题。 广义上来说,Hadoop通常是指一个更广泛的概念—Hadoop生态圈。 高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致

    2024年02月11日
    浏览(52)
  • hadoop生态圈-- 个人笔记学习05 HDFS优化

    DFSClient和DN在一个节点 —— local reads,远程阅读 Remote reads。 处理方式是一样的 DN读数据 通过RPC(TCP协议)把数据给DFSClient。DN在中间会做中转,处理简单但是性能收影响 (Local read的情况下,会希望绕过DN直接读取Data,这就是 短路 DFSClient自行打开文件读取数据,需要配置白名

    2024年02月13日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包