首页 > 编程知识 正文

分布式数据库系统原理,hadoop大数据技术原理与应用电子版

时间:2023-05-06 18:09:15 阅读:171197 作者:1032

实验五Java API分布式存储第一关:利用shell将电子商务数据进行HDFS任务描述知识HDFS shell的一般指令编程要求测试指示代码实现第二关:利用Java API将电子商务数据进行HDFS任务描述知识一般HDFS

第一关)利用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; 将本地文件data02.CSV上载到HD fsdfs-copyfromlocaldata 02.CSV/datasethdfs中的文件夹/dataset; 将HD fsdfs-get/dataset/data 02.CSV data 02 _ v2.csvhdfs中的/dataset/data02.CSV复制到本地文件data02_V2.CSV; 将HD fsdfs-copy to local/dataset/dataset/data 02.CSV data 02 _ v2.csvhdfs的/dataset/data02.CSV复制到本地文件data02_V2.CSV 从HD fsdfs-CP/user/userinfo.txt/data/userinfo.txthdfs中的数据文件/user/userinfo.txt复制到/data/userinfo.txt HD fsdfs-mv/user/userinfo.txt/data/userinfo.txthdfs中的数据文件/user/userinfo.txt到/data/userinfo.txt hdfs dfs -tail /itemsinfo.csv以文本格式输出/itemsinfo.csv文件,但只显示末尾1KB大小的数据。 在编程中,不需要编写Java代码,而是直接在命令行中完成级别。 按照任务上的说明启动hadoop并将数据文件上传到HDFS。

使用start-all.sh或start-dfs.sh启动hadoop或hdfs; 将/data/workspace//dataset/user _ behavior.CSV文件复制到/root目录(…中的都是单文件夹,可以通过tab内部版本自动完成) ); 在HDFS中创建新文件夹/dataset; 将user_behavior.csv文件上载到刚创建的文件夹; 打印文件的内容,检查文件是否成功上载。 (使用hdfs dfs -cat /yourpath | tail -10只显示末尾10行数据,可以减少输出量的相对较大的文件)测试说明平台刚刚上传的文件路径是否正确

代码//每行start-all.shcp/data/workspace/myshixun/dataset/user _ behavior.CSV/root/HD fsdfs-mkdir/data 在某些情况下,您可能不希望直接使用HDFS命令上载输入。 例如,如果上传的文件很多,文件名很长,一次又一次地打HDFS命令可能会很慢,导致错误。 那种情况下请使用Jav

a 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。

测试说明

平台会对你编写的代码进行测试:

核对数据文件是否成功上传至HDFS;且数据文件末尾10行数据是否符合预期。 代码实现 //什么都不需要输,“点测评”,但前提是第一关没有出现任何错误!!!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。