Hadoop+Spark大数据技术 第三次作业

  • 第三次作业

    • 1.简述HDFS Shell三种操作命令hadoop fs、hadoop dfs、hdfs dfs的异同点。

      • 相同点

        • 用于与 Hadoop 分布式文件系统(HDFS)交互。可以执行各种文件系统操作,如文件复制、删除、移动等。

      • 不同点

        • hadoop fs、hadoop dfs已弃用,新版本推荐使用hdfs dfs。

    • 2.简述常用HDFS Shell 用户命令及其功能,简述HDFS 管理员命令的作用。

      • 2.3.2 HDFS常用的Shell 操作

        • 1.创建目录——mkdir 命令

        • 2.列出指定目录下的内容——ls命令

        • 3.上传文件——put命令

        • 4.从HDFS中下载文件到本地文件系统——get命令

        • 5.复制文件——cp命令

        • 6.查看文件内容——cat命令

        • 7.在HDFS目录中移动文件——mv命令

        • 8、显示文件大小——du命令

        • 9.追加文件内容——appendToFile命令

        • 10.从本地文件系统中复制文件到HDFS——copyFromLocal命令

        • 11.从HDFS中复制文件到本地文件系统—copyToLocal命令

        • 12.从HDFS中删除文件和目录——rm命令

      • 管理员命令(dfsadmin)

        • 1.查看文件系统的基本信息和统计信息——report命令

          • 查看HDFS状态,比如有哪些DataNode、每个DataNode的情况

        • 2.安全模式——safemode命令

    • 3.简述HDFS文件操作主要涉及的Java类和FileSystem对象的常用方法。

      • 主要涉及的Java类

        • org.apache.hadoop.con.Configuration

          • 作用该类的对象封装了客户端或者服务器的配置

        • org.apache.hadoop.fs.FileSystem

          • 该类的对象是一个文件系统对象,可以用该对象的一些方法对文件进行操作。

        • org.apache.hadoop.fs.FileStatus

          • 用于向客户端展示系统中文件和目录的元数据,具体包括文件大小、数据块大小、副本信息、所有者、修改时间等。

        • org.apache.hadoop.fs.FSDatalnputStream

          • 文件输入流,用于读取Hadoop文件

        • org.apache.hadoop.fs.FSDataOutputStream

          • 文件输出流,用于写人Hadoop文件

        • org.apache.hadoop.fs.Path

          • 用于表示Hadoop文件系统中的文件或者目录的路径

      • 通过FileSystem 对象的一些方法可以对文件进行操作,常用方法如

        • copyFromLocalFile(Path src, Path dst)

          • 从本地文件系统复制文件到HDFS

        • copyToLocalFile(Path src, Path dst)

          • 从HDFS复制文件到本地文件系统

        • mkdirs(Path f)

          • 建立子目录

        • rename(Path src, Path dst)

          • 重命名文件或文件夹

        • delete(Path f)

          • 删除指定文件

    • 4.编写利用Java API实现上传文件至HDFS的Java程序。

      import org.apache.hadoop.conf.Configuration;
      import org.apache.hadoop.fs.FileSystem;
      import org.apache.hadoop.fs.Path;
      import java.io.IOException;
      
      public class HdfsFileUploader {
      
          public static void main(String[] args) {
              // 设置 Hadoop 配置信息
              Configuration conf = new Configuration();
              // 设置 HDFS 地址
              conf.set("fs.defaultFS", "hdfs://localhost:9000");
      
              // 创建 HDFS 文件系统对象
              FileSystem fs = null;
              try {
                  fs = FileSystem.get(conf);
                  // 本地文件路径
                  Path srcPath = new Path("local/path/to/your/file.txt");
                  // HDFS 目标路径
                  Path destPath = new Path("/path/in/hdfs/destination/file.txt");
                  
                  // 调用文件上传方法
                  uploadFile(fs, srcPath, destPath);
                  System.out.println("文件上传成功!");
              } catch (IOException e) {
                  e.printStackTrace();
                  System.out.println("文件上传失败:" + e.getMessage());
              } finally {
                  // 关闭 FileSystem 对象
                  if (fs != null) {
                      try {
                          fs.close();
                      } catch (IOException e) {
                          e.printStackTrace();
                      }
                  }
              }
          }
      
          // 文件上传方法
          public static void uploadFile(FileSystem fs, Path srcPath, Path destPath) throws IOException {
              // 将本地文件上传至 HDFS
              fs.copyFromLocalFile(srcPath, destPath);
          }
      }
      

    • 5.简述MapReduce并行编程模型的基本特点。

      • Cluster Infrastructure:

        • MapReduce 提供了一个基于集群的高性能并行计算平台,可以利用普通商用服务器构建分布式计算集群,规模从数十到数千个节点不等。

      • Software Framework:

        • 作为并行计算与运行软件框架,MapReduce 提供了一个设计精良的框架,自动处理并行化计算任务、数据划分、任务分配和结果收集等复杂细节,大大减轻了开发人员的负担。

      • Programming Model & Methodology:

        • MapReduce 借鉴了函数式编程语言 Lisp 的设计思想,提供了一种简便的并行程序设计模型与方法。开发人员可以利用 Map 和 Reduce 这两个函数实现并行计算任务,使用抽象的操作和接口完成大规模数据的编程和计算处理。

      • 分而治之策略:

        • MapReduce 采用了“分而治之”的策略,将大规模数据集切分成多个独立的小数据集,即分片,然后由多个 Map 任务并行处理,从而实现高效的数据处理。

      • 计算向数据靠拢:

        • MapReduce 设计中的一个理念是“计算向数据靠拢”,通过将计算任务部署在存储节点附近,减少了数据传输开销,提高了集群的网络带宽利用效率。

    • 6.通过教材中图3-6 – 图3-10,说明WordCount程序的Map和Reduce过程。

      • Map 过程:

        • 输入:Map 过程的输入是一组键-值对,其中键表示输入文本中的行号,值表示文本中的一行内容。

        • 映射:对于每个输入键-值对,Map 过程将其分解为单词,并为每个单词生成一个新的键-值对,其中键是单词,值为 1(表示单词出现一次)。

        • 输出:Map 过程生成一组新的键-值对,其中键是单词,值为 1。

      • Reduce 过程:

        • 输入:Reduce 过程的输入是一组键-值对,其中键是单词,值是该单词在输入文本中出现的次数。

        • 汇总:Reduce 过程对相同的单词进行汇总,将它们的值相加,得到单词出现的总次数。

        • 输出:Reduce 过程生成一组新的键-值对,其中键是单词,值是该单词在输入文本中出现的总次数。

      • 简言之,Map 过程将文本划分为单词,并为每个单词标记计数为 1,而 Reduce 过程则对相同单词的计数进行累加,最终得到每个单词的总出现次数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/494106.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯刷题day10——猜灯谜【算法赛】

一、问题描述 在元宵节的活动现场,有一串环形排列的灯笼,共计 n 个。每个灯笼上伴随着一个谜底以及一个数字,这些数字分别为 a1,a2 ,…,an。 根据元宵节的传统,每个灯笼的谜底都是由相邻两个灯笼上的数字之和得出的。需要注意的…

R语言 for循环问题

今天偶然发现在R的for循环中,作为循环计次的i, 并不会因为在循环体中的赋值变化而变化。 记录一下,还没有找到相关的解释。

centos2anolis

我的centos7原地升级到anolis7记录 注意:如果是桌面版请先卸载firefox,否则so文件冲突。 参考: CentOS 7和8Linux系统迁移到国产Linux龙蜥Anolis OS 8手册_disable pam_pkcs11 module in pam configuration-CSDN博客 关于 CentOS 迁移龙蜥…

SeaTunnel 与 DataX 、Sqoop、Flume、Flink CDC 对比

产品概述 Apache SeaTunnel 是一个非常易用的超高性能分布式数据集成产品,支持海量数据的离线及实时同步。每天可稳定高效同步万亿级数据,已应用于数百家企业生产,也是首个由国人主导贡献到 Apache 基金会的数据集成顶级项目。 SeaTunnel 主…

基于springboot的车辆充电桩管理系统

开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven…

Mac安装minio

Mac安装minio 本文介绍使用 mac 安装 MinIO。 所有软件安装优先参考官网:MinIO Object Storage for MacOS — MinIO Object Storage for MacOS #使用 brew 安装 minio brew install minio/stable/minio#找到 minio tong ~ $ brew list minio /opt/homebrew/Cella…

大模型精准度提升调研

如何让ChatGPT更靠谱 1. 预训练大模型概述 关于预训练 预训练(Pre-training)是深度学习中一种常见的技术,特别是在自然语言处理(NLP)和计算机视觉(CV)等领域中。它通常指在一个大型的、通常是…

搜维尔科技【应急推演】虚拟仿真技术的发展为煤炭矿井的安全生产找到新的出口

煤炭矿井的安全生产一直是我国关注的重大事项,保证煤炭矿井的安全生产,减少人员伤亡等不可逆的损失成为重中之重。虚拟仿真技术的发展为煤炭矿井的安全生产找到了新的出口。依托虚拟仿真技术,对煤炭矿井进行实时的生产监测,对矿井…

65W智能快充—同为科技桌面PDU插座推荐

近10年,移动设备的智能化、功能化已经完全且紧密的融入到我们的基础生活与工作当中。 在常态化的电子设备的应用中,设备的电力续航以及后续的供电充电就尤为重要。 就目前而言,所有消费电子产品中的输入以及充电的接口,usb-c可以…

正则表达式 vs. 字符串处理:解析优势与劣势

title: 正则表达式 vs. 字符串处理:解析优势与劣势 date: 2024/3/27 15:58:40 updated: 2024/3/27 15:58:40 tags: 正则起源正则原理模式匹配优劣分析文本处理性能比较编程应用 1. 正则表达式起源与演变 正则表达式(Regular Expression)最早…

Linux下配置Java

今天来说一说如何在linux系统中配置java环境。 简单来说就是下载jdk-设置环境变量 一、下载jdk 直接去oracle官网寻找jdk https://www.oracle.com/cn/java/technologies/downloads/#jdk17-linux 我就是直接下载了这个 二、环境变量配置 export JAVA_HOME/usr/local/java/jdk…

鸿蒙OS开发案例:【API9】遍历沙漏文件夹并输入文件的大小

1.获取打印文件大小 /*** 获取打印文件大小*/static getFileSize(byteNum: number) {if (byteNum < 0) {return "shouldnt be less than zero!";} else if (byteNum < 1024) {return ${byteNum.toFixed(3)}B;} else if (byteNum < 1048576) {return (byteNu…

ATE新能源汽车充电桩自动测试系统的原理

ATE新能源汽车充电桩自动测试系统&#xff0c;是新能源汽车产业链中不可或缺的一环。该系统以自动化、智能化为特点&#xff0c;通过精确控制测试流程&#xff0c;实现对充电桩各项性能的全面评估&#xff0c;从而确保充电桩的安全性与可靠性。下面&#xff0c;我们将深入探讨A…

GitHub推送远程仓库详细教程

一、在远程新建一个仓库 二、在工作区初始化并提交到版本库 三、连接到远程仓库地址进行推送 四、推送到其他分支 4.1 新建其他分支 4.2 新建文件进行提交 4.3 将文件推送到其他分支 4.4 推送成功演示 4.5 连接远程跟踪分支&#xff0c;方便提交 4.6 直接push展示 五、其他 5…

江协STM32:点亮第一个LED灯和流水灯

很多单片机都是高电平弱驱动&#xff0c;低电平强驱动&#xff0c;所以这里是低电平有效 点亮一个LED灯 操作STM32的GPIO需要三个操作&#xff1a; 第一个使用RCC开启GPIO的时钟 第二步使用GPIO_Init函数初始化GPIO 第三步使用输出或输入函数控制GPIO 1.使用RCC开启GPIO的时…

政安晨:【深度学习神经网络基础】(一)—— 逐本溯源

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 政安晨的机器学习笔记 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 与计算机一样的古老历史 神经网络的出现可追溯到20世纪40年…

【有限状态机】- FSM详细讲解 【附Autoware有限状态机模型代码讲解】

参考博客&#xff1a; &#xff08;1&#xff09;FSM&#xff08;有限状态机&#xff09; &#xff08;2&#xff09;关于有限状态机(FSM)的一些思考 &#xff08;3&#xff09;状态设计模式 1 状态机简介 有限状态机FSM&#xff1a;有限个状态以及在这些状态之间的转移和动作…

对比HTTP与WebSocket

目录 对比HTTP与WebSocket1. HTTP协议概述2. WebSocket协议概述3. HTTP与WebSocket的区别4. 使用场景比较5. 性能比较6. 安全性比较7. 应用案例分析8. 总结与展望 对比HTTP与WebSocket 1. HTTP协议概述 1.1 HTTP的基本概念 HTTP&#xff08;Hypertext Transfer Protocol&…

基于Java实现宠物领养救助交流平台设计和实现

基于Java实现宠物领养救助交流平台设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末获取源码联…

腾讯云4核8g服务器多少钱?轻量和CVM收费价格表2024年最新

2024年腾讯云4核8G服务器租用优惠价格&#xff1a;轻量应用服务器4核8G12M带宽646元15个月&#xff0c;CVM云服务器S5实例优惠价格1437.24元买一年送3个月&#xff0c;腾讯云4核8G服务器活动页面 txybk.com/go/txy 活动链接打开如下图&#xff1a; 腾讯云4核8G服务器优惠价格 轻…
最新文章