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 {// 将本地文件上传至 HDFSfs.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.hqwc.cn/news/572587.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

循环神经网络(RNN):处理序列数据的利器

目录 1. 引言 2.RNN原理与时间步展开 3.LSTM与GRU工作机制与优势 3.1.LSTM(Long Short-Term Memory) 3.2.GRU(Gated Recurrent Unit) 4.应用案例 4.1文本生成 4.2情感分析 5.总结 1. 引言 循环神经网络(Recurr…

zabbix分布式部署

基于zabbix-proxy的分布式监控 1.1 分布式监控的作用 1)分担 server 的集中式压力; 2)解决多机房之间的网络延时问题。 1.2 数据流向 agent --> proxy --> server 1.3 构成组件 zabbix-server:整个监控体系中最核心的组…

React和Vue.js的有什么区别

在当今前端开发领域,React 和 Vue.js 作为两大热门的前端框架备受开发者关注。它们各自拥有独特的特点和优势,在实际项目中有着广泛的运用。本文将深入探讨 React 和 Vue.js 之间的区别,从组件化方式、数据绑定、模板语法以及生态系统和工具支…

书籍推荐|meta分析R语言实践教程-Doing Meta-Analysis with R: A Hands-On Guide

“The problems are solved, not by giving new information, but by arranging what we have known since long.” – Ludwig Wittgenstein 推荐理由 《Doing Meta-Analysis with R: A Hands-On Guide》是由 Mathias Harrer, Pim Cuijpers, Toshi Furukawa, 和 David Ebert所…

html页面使用@for(){},@if(){},利用jquery 获取当前class在列表中的下标

基于以前的项目进行修改优化,前端代码根据List元素在html里进行遍历显示 原先的代码: 其中,noticeGuide.Id是标识noticeGuide的唯一值,但是不是从0开始的【是数据库自增字段】 但是在页面初始化加载的时候,我们只想…

重塑未来:Web3如何改变我们的数字生活

引言 随着科技的飞速发展,Web3已经成为数字时代的新潮流,其革命性的变革正在渐渐改变着我们的数字生活。本文将深入探讨Web3如何改变我们的数字生活,涉及其意义、应用场景、对未来的影响,以及我们如何适应这一变革,为…

zotero+word优化管理参考文献

写论文,整理参考文献,管理参考文献很麻烦,参考文献格式罗列很麻烦,论文需要修改时,重新调整参考文献顺序很麻烦。 zoteroword可以很好的帮助解决这个问题。 Step1 zotero软件安装 默认word你已经安装好了 step2 安…

Self-Consistency Improves Chain of Thought Reasoning in Language Models阅读笔记

论文链接:https://arxiv.org/pdf/2203.11171.pdf 又到了读论文的时间,内心有点疲惫。这几天还是在看CoT的文章,今天这篇是讲如何利用self-consistency(自我一致性)来改进大语言模型的思维链推理过程。什么是self-cons…

【C++入门】 初见,单推,与C++的第一次约会

关注小庄 顿顿解馋(ᕑᗢᓫ∗)˒ 引言:本篇博客我们开始与C的第一次约会,C是兼容c的,本篇博客我们将了解到C关键字有哪些,C命名空间,C输入与输出和缺省参数的内容,请放心食用 ~ 文章目录 一 🏠 C…

vue2项目设置浏览器标题title及图标logo

工作中肯定会遇到要修改网页的标题title及图标logo 一、固定设置标题方案 方法一:在vue.config.js文件,添加如下代码: chainWebpack: config > {// 配置网页标题config.plugin(html).tap((args) > {args[0].title 标题return args})…

comfyui 代码结构分析

comfyui的服务器端是用aiohtttp写的,webui是fastapi直接构建的,但是其实comfyui的这种设计思路是很好的,也许我们不需要在后端起一个复杂的前台,但是可以借助json结构化pipeline,然后利用node节点流把整个流程重新映射…

pytorch实战-2张量类型处理

1 图像类型 有多种库可加载图像,如imageio, torchvision等。张量对图像维度排序一般为通道数x图像长x图像宽 1.1 imageio import imageioimg_t imageio.imread(img_path) 1.2 改变布局 可对tensor调用permute方法改变张量某个维度元素排序 和转置类…