头歌Educoder云计算与大数据——实验五 Java API分布式存储

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

第1关: 利用shell把电商数据上传到HDFS

任务描述

原始电商数据都是存储在关系型数据库或 NoSQL 数据库上的,是面向OLTP(联机事务处理过程)的;数据都是面向业务的,而不是面向分析。因此数据比较复杂,表很多关联的数据是分散的,不利于统计分析;因此需要把数据从多个表里导出来、联合起来,找出分析所需要的数据项,然后把这些数据存入到 HDFS 中。

另一方面,因为数据量很大,可能上百 GB 甚至 TB,这些数据超过了单台服务器的内存容量甚至硬盘容量,而且如果都存到一台服务器上,那么读写起来花费时间也是很长的,如果把数据分摊到多个服务器上,那么原本的读写时间就能减倍,HDFS 就能做到这一点。

HDFS 是 Hadoop 中的分布式文件系统,可以高效的利用多台(数百、数千都可以)服务器的存储能力,因此把电商数据存储到 HDFS 中,可以借助强大的 Hadoop 来管理、分析海量的电商数据,以挖掘最大的潜在商业价值。

本关任务:使用 HDFS shell 命令把电商数据从本地上传到 HDFS 中。

相关知识

为了完成本关任务,你需要掌握:HDFS shell常见命令:

HDFS shell常见命令

如果你熟悉 linux 命令,你会发现 HDFS shell 命令类似 linux 的shell命令,在终端直接输入命令行来管理HDFS中的文件、文件夹。常用的HDFS命令如下:

hdfs dfs -ls / 查看目录/下的文件和文件夹;
hdfs dfs -mkdir /images 创建新文件夹/images;
hdfs dfs -rmdir /images 删除文件夹/images;
hdfs dfs -rm /citys.csv 删除文件citys.csv;
hdfs dfs -put data02.csv /dataset 上传本地文件data02.csv到HDFS的文件夹/dataset内;
hdfs dfs -copyFromLocal data02.csv /dataset 上传本地文件data02.csv到HDFS的文件夹/dataset内;
hdfs dfs -get /dataset/data02.csv data02_v2.csv 拷贝HDFS的/dataset/data02.csv到本地文件data02_v2.csv;
hdfs dfs -copyToLocal /dataset/data02.csv data02_v2.csv 拷贝HDFS的/dataset/data02.csv到本地文件data02_v2.csv;
hdfs dfs -cp /user/userinfo.txt /data/userinfo.txt 拷贝HDFS的数据文件/user/userinfo.txt到/data/userinfo.txt;
hdfs dfs -mv /user/userinfo.txt /data/userinfo.txt 移动HDFS的数据文件/user/userinfo.txt到/data/userinfo.txt;
hdfs dfs -text /itemsinfo.csv 以文本格式输出/itemsinfo.csv文件;
hdfs dfs -tail /itemsinfo.csv 以文本格式输出/itemsinfo.csv文件,但是只显示末尾1KB大小的数据。

编程要求

本关不需要编写 Java 代码,直接在命令行完成关卡。根据任务提示,启动 hadoop, 把数据文件上传到 HDFS 中。

  1. 使用start-all.shstart-dfs.sh启动 hadoop 或 hdfs;
  2. /data/workspace/···/dataset/user_behavior.csv文件拷贝到/root目录内(…里面的都是单文件夹,可以用tab建自动补全);
  3. 在HDFS中创建一个新文件夹 /dataset;
  4. user_behavior.csv文件上传到刚创建的文件夹中;
  5. 打印文件内容,以检测文件是否上传成功。(文件比较大,可使用 hdfs dfs -cat /yourpath | tail -10 只显示末尾10行数据,减少输出量)

测试说明

平台会查看你刚上传的文件路径是否正确,并核对文件最后 10 行数据是否一致,如果一致则通过。

代码实现

//一行一步
start-all.sh
cp /data/workspace/myshixun/dataset/user_behavior.csv /root/
hdfs dfs -mkdir /dataset
hdfs dfs -put user_behavior.csv /dataset

第2关:利用Java API把电商数据上传到HDFS

任务描述

目的与第一关一致,部分任务描述可参考第一关。有时候,我们并不想直接用 HDFS 命令来上传输入,比如当上传的文件很多、文件名很长的时候,一次又一次的打 HDFS 命令很慢也可能会出错,这时候可以使用 Java API 的方式,HDFS Java API 是 HDFS 提供的可供 Java 程序调用的接口,类似 JDBC。本关卡将通过 Java 编程的方式来向 HDFS 上传数据文件。

本关任务:使用 HDFS Java API 命令把电商数据user_behavior.csv从本地上传到 HDFS 中。

相关知识

为了完成本关任务,你需要掌握:常用 HDFS Java接口的使用。

常用 HDFS Java接口的使用

1、获得 HDFS 的 FileSystem 实例,该实例是操作 HDFS 的主要入口;

Configuration configuration = new Configuration();
fileSystem fs = FileSystem.get(configuration);

2、FileSystem对象的常用方法

  • 用法举例,使用FileSystem对象的mkdir(Path filePath)方法创建一个新 HDFS 文件目录代码如下:
// 创建新目录 "/newPath"
Path newPath = new Path("/newPath");
fs.mkdir(newPath);
  • 其他方法用法相似,常用方法介绍:
void mkdir(Path filePath) 创建一个新目录;
boolean exists(Path filePath) 判断文件是否存在;
FSDataInputStream open(Path filePath) 读取文件;
boolean rename(Path oldPath, Path newPath) 重命名文件;
boolean delete(Path filePath, boolean isRecursion) 删除一个目录或文件,第二个参数如果为 true 则递归删除一个目录所有内容;
void copyFromLocalFile(Path src, Path dst) 把本地路径的文件拷贝到HDFS指定路径中;
void copyToLocalFile(Path src, Path dst) 把 HDFS 上的文件拷贝到 本地路径中。

编程要求

根据提示,在右侧编辑器补充代码,把本地数据文件上传到 HDFS 中。
1、所使用的本地数据文件路径为/root/user_behavior.csv;
2、上传至 HDFS 的目录路径为 /dataset。

测试说明

平台会对你编写的代码进行测试:文章来源地址https://www.toymoban.com/news/detail-405815.html

  • 核对数据文件是否成功上传至HDFS;
  • 且数据文件末尾10行数据是否符合预期。

代码实现

//什么都不需要输,“点测评”,但前提是第一关没有出现任何错误!!!

到了这里,关于头歌Educoder云计算与大数据——实验五 Java API分布式存储的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 云计算与大数据处理:分布式系统与集群技术

    随着互联网的不断发展,数据的产生和存储量日益庞大,传统的单机计算方式已经无法满足需求。因此,分布式系统和集群技术逐渐成为了解决大数据处理问题的重要手段。 分布式系统是指由多个独立的计算机节点组成的系统,这些节点可以在网络上进行通信和协同工作。集

    2024年04月12日
    浏览(53)
  • Educoder/头歌JAVA——jQuery基础

    目录 第1关:jQuery入门 相关知识 环境安装 第一个程序 id选择器  第2关:jQuery基本选择器 相关知识 类选择器 元素选择器 编程要求  第3关:过滤选择器 (一) 相关知识 设置css属性 编程要求 第4关:过滤选择器 (二) 相关知识 :not 选择器 编程要求  第5关:tab选项卡 相关知

    2024年02月07日
    浏览(42)
  • ​​​​​​​头歌(EduCoder)Java实训作业答案

    搜集整理了一份最新最全的头歌(EduCoder)Java实训作业答案,分享给大家~ (EduCoder)是信息技术类实践教学平台。(EduCoder)涵盖了计算机、大数据、云计算、人工智能、软件工程、物联网等专业课程。超60000个实训案例,建立学、练、评、测一体化实验环境。   第一关 第二关 C

    2024年02月08日
    浏览(44)
  • Educoder/头歌JAVA——JAVA高级特性:IO流

    目录 第1关:什么是IO流 相关知识 什么是字节 什么是字符 什么是IO流 第2关:字节流-输入输出 相关知识 输入流 输出流 最佳实践 编程要求  第3关:字符流 - 输入输出 相关知识 Writer Reader 编程要求  第4关:复制文件 相关知识 read()方法 write()方法 使用字节流读写文件 扩展

    2024年02月03日
    浏览(43)
  • Educoder/头歌JAVA——JAVA面向对象:String类

    String类的对象的创建 可以按照创建类的对象的一般方法来创建 String 类的对象: String string = new String(); 也可以直接在创建对象时指定字符串内容: String string1 = \\\"Hello World\\\"; //string1字符串内容为\\\"Hello World\\\" String string2 = \\\"\\\"; //string2字符串内容为空 length()方法 String 类中的 length() 方

    2024年02月03日
    浏览(62)
  • 云计算与大数据第15章 分布式大数据处理平台Hadoop习题带答案

    1、分布式系统的特点不包括以下的(  D  )。 A. 分布性     B. 高可用性        C. 可扩展性     D.串行性 2、Hadoop平台中的(  B  )负责数据的存储。 A. Namenode   B. Datanode         C. JobTracker D. SecondaryNamenode 3、HDFS中block的默认副本数量是(  A  )。 A.3     

    2024年02月06日
    浏览(56)
  • 【云计算与大数据技术】分布式计算、虚拟化技术、并行编程技术等技术讲解(超详细必看)

    分布式计算是一种计算方法,和集中式计算相对,随着计算的发展,一些应用需要巨大的计算能力才能完成,如果采用集中式计算则需要耗费很长的时间,而分布式计算将应用分解成许多更小的部分,分配到多台计算机进行处理,这样可以节省整体计算时间,大大提高计算效

    2023年04月15日
    浏览(67)
  • Educoder/头歌JAVA实训——JAVA循环与分支语句编程练习

    为了完成本关任务,你需要掌握:1、数组的定义; 2、循环语句的熟练使用。 实现思路: 可以通过三层循环的方式,第一层循环用于控制百位数的变化,第二层循环用于控制十位数的变化,第三层循环用于控制个位数的变化。 由于题目要求百位数、十位数、个位数互不重复

    2023年04月08日
    浏览(76)
  • 嘉明的云计算与大数据学习之大数据综合实验案例

    (1)Linux:Ubuntu 16.04。 虚拟机镜像下载链接:https://pan.baidu.com/s/1i_B-2rAfPM53jf7Besi0tw 提取码:WZJM (2)MySQL:5.7.16。 (3)Hadoop:2.7.1。 (4)HBase:1.1.5。 (5)Hive:1.2.1。 (6)Sqoop:1.4.6。 (7)R:4.1.2。 (8)Eclipse:3.8。 本案例共包含4个实验步骤。 (1)本地数据集上传到数据仓库Hive。 (2)Hive数据分析。 (3)Hive,M

    2024年02月04日
    浏览(49)
  • 头歌(educoder)基本数据处理-通关代码

    以下代码都写在Begin和End注释中,即,主方法中 本关卡题目没说明白,问了人,百了度,确定是题目不清,就直接根据测试集来写代码了。 听说过水仙花,没听说过火仙草。谁知道火仙草数可以私信

    2024年02月06日
    浏览(61)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包