大数据技术实践实验报告.docx

上传人:b****7 文档编号:11482852 上传时间:2023-03-01 格式:DOCX 页数:62 大小:6.78MB
下载 相关 举报
大数据技术实践实验报告.docx_第1页
第1页 / 共62页
大数据技术实践实验报告.docx_第2页
第2页 / 共62页
大数据技术实践实验报告.docx_第3页
第3页 / 共62页
大数据技术实践实验报告.docx_第4页
第4页 / 共62页
大数据技术实践实验报告.docx_第5页
第5页 / 共62页
点击查看更多>>
下载资源
资源描述

大数据技术实践实验报告.docx

《大数据技术实践实验报告.docx》由会员分享,可在线阅读,更多相关《大数据技术实践实验报告.docx(62页珍藏版)》请在冰豆网上搜索。

大数据技术实践实验报告.docx

大数据技术实践实验报告

--本页仅作为文档封面,使用时请直接删除即可--

--内页可以根据需求调整合适字体及大小--

 

大数据技术实践实验报告(总59页)

实验报告

 

课程名称:

大数据技术实践

实验项目:

大数据平台

实验仪器:

PC机

 

学院:

计算机学院

专业:

计算机科学与技术

班级姓名:

*

学号:

*

日期:

2019-5-9

指导教师:

*

成绩:

 

一.实验目的

1.熟练掌握大数据计算平台相关系统的安装部署

2.理解大数据MapReduce计算模型,并掌握MapReduce程序开发

3.掌握Hive的查询方法

4.掌握Spark的基本操作

二.实验内容

1.Hadoop完全分布模式安装

2.Hadoop开发插件安装

3.MapReduce代码实现

4.Hive安装部署

5.Hive查询

6.SparkStandalone模式安装

7.SparkShell操作

三.实验过程

Hadoop开发插件安装

实验步骤:

开发工具以及Hadoop默认已经安装完毕,安装在/apps/目录下。

2.在Linux本地创建/data/hadoop3目录,用于存放所需文件。

切换目录到/data/hadoop3目录下,并使用wget命令,下载所需的插件。

2.将插件,从/data/hadoop3目录下,拷贝到/apps/eclipse/plugins的插件目录下。

3.进入ubuntu图形界面,双击eclipse图标,启动eclipse。

5.在Eclipse窗口界面,依次点击Window=>OpenPerspective=>Other。

弹出一个窗口。

选择Map/Reduce,并点击OK,可以看到窗口中,有三个变化。

(左侧项目浏览器、右上角操作布局切换、面板窗口)

如果在windows下,则需要手动调出面板窗口Map/ReduceLocations面板,操作为,点击window=>showview=>Other。

在弹出的窗口中,选择Map/ReduceLocations选项,并点击OK。

这样便可以调出视图窗口Map/ReduceLocation。

6.添加Hadoop配置,连接Hadoop集群。

在这里添加Hadoop相关配置。

Locationname,是为此配置起的一个名字。

DFSMaster,是连接HDFS的主机名和端口号。

点击Finish保存配置。

7.另外还需保证Hadoop中的HDFS相关进程已经启动。

在终端命令行输入jps查看进程状态。

viewplain copy

1.jps  

若不存在hdfs相关的进程,如Namenode、Datanode、secondarynamenode,则需要先切换到HADOOP_HOME下的sbin目录,启动hadoop。

viewplain copy

1.cd /apps/hadoop/sbin  

2../  

8.展开左侧项目浏览视图,可以看到HDFS目录结构。

9.上图发现HDFS上,没有存放任何目录。

那下面来创建一个目录,检测插件是否可用。

右键myhadoop下的文件夹,在弹出的菜单中,点击Createnewdirectory。

输入目录名称,点击OK则创建目录成功。

右键文件夹,点击Refresh,可用刷新HDFS目录。

到此Hadoop开发插件已经安装完毕!

3.MapReduce代码实现

实验步骤:

1.切换目录到/apps/hadoop/sbin下,启动hadoop。

viewplain copy

1.cd /apps/hadoop/sbin  

2../  

2.在linux上,创建一个目录/data/mapreduce1。

viewplain copy

1.mkdir -p /data/mapreduce1  

3.切换到/data/mapreduce1目录下,使用wget命令从网址,下载文本文件buyer_favorite1。

viewplain copy

1.cd /data/mapreduce1  

2.wget    

依然在/data/mapreduce1目录下,使用wget命令,从

,下载项目用到的依赖包。

viewplain copy

1.wget    

将解压到当前目录下。

viewplain copy

1.tar -xzvf   

4.将linux本地/data/mapreduce1/buyer_favorite1,上传到HDFS上的/mymapreduce1/in目录下。

若HDFS目录不存在,需提前创建。

viewplain copy

1.hadoop fs -mkdir -p /mymapreduce1/in  

2.hadoop fs -put /data/mapreduce1/buyer_favorite1 /mymapreduce1/in  

5.打开Eclipse,新建JavaProject项目。

并将项目名设置为mapreduce1。

6.在项目名mapreduce1下,新建package包。

并将包命名为mapreduce。

7.在创建的包mapreduce下,新建类。

并将类命名为WordCount。

8.添加项目所需依赖的jar包,右键单击项目名,新建一个目录hadoop2lib,用于存放项目所需的jar包。

将linux上/data/mapreduce1目录下,hadoop2lib目录中的jar包,全部拷贝到eclipse中,mapreduce1项目的hadoop2lib目录下。

选中hadoop2lib目录下所有的jar包,单击右键,选择BuildPath=>AddtoBuildPath

9.编写Java代码,并描述其设计思路。

下图描述了该mapreduce的执行过程

大致思路是将hdfs上的文本作为输入,MapReduce通过InputFormat会将文本进行切片处理,并将每行的首字母相对于文本文件的首地址的偏移量作为输入键值对的key,文本内容作为输入键值对的value,经过在map函数处理,输出中间结果的形式,并在reduce函数中完成对每个单词的词频统计。

整个程序代码主要包括两部分:

Mapper部分和Reducer部分。

Mapper代码

viewplain copy

1.public static class doMapper extends Mapper{  

WordCount类文件中,单击右键=>RunAs=>RunonHadoop选项,将MapReduce任务提交到Hadoop中。

11.待执行完毕后,打开终端或使用hadoopeclipse插件,查看hdfs上,程序输出的实验结果。

viewplain copy

1.hadoop fs -ls /mymapreduce1/out  

2.hadoop fs -cat /mymapreduce1/out/part-r-00000  

4.Hive安装部署

实验步骤:

1.首先在Linux本地,新建/data/hive1目录,用于存放所需文件。

viewplain copy

1.mkdir -p /data/hive1  

切换目录到/data/hive1下,使用wget命令,下载hive所需安装包以及。

viewplain copy

1.cd /data/hive1  

2.wget   

3.wget   

2.将/data/hive1目录下的,解压缩到/apps目录下。

viewplain copy

1.tar -xzvf  -C /apps/  

再切换到/apps目录下,将/apps/,重命名为hive。

viewplain copy

1.cd /apps  

2.mv /apps/ /apps/hive  

3.使用vim打开用户环境变量。

viewplain copy

1.sudo vim ~/.bashrc  

将Hive的bin目录,添加到用户环境变量PATH中,然后保存退出。

viewplain copy

1.#hive config  

2.export HIVE_HOME=/apps/hive  

3.export PATH=$HIVE_HOME/bin:

$PATH  

执行source命令,使Hive环境变量生效。

viewplain copy

1.source ~/.bashrc  

4.由于Hive需要将元数据,存储到Mysql中。

所以需要拷贝/data/hive1目录下的到hive的lib目录下。

viewplain copy

1.cp /data/hive1/ /apps/hive/lib/  

5.下面配置Hive,切换到/apps/hive/conf目录下,并创建Hive的配置文件。

viewplain copy

1.cd /apps/hive/conf  

2.touch   

使用vim打开文件。

viewplain copy

1.vim   

并将下列配置项,添加到文件中。

viewplain copy

1.  

2.      

3.          

4.        jdbc:

;characterEncoding=latin1  

5.      

6.      

7.          

8.          

9.      

10.      

11.          

12.        root  

13.      

14.      

15.          

16.        strongs  

17.      

18.  

由于Hive的元数据会存储在Mysql数据库中,所以需要在Hive的配置文件中,指定mysql的相关信息。

数据库链接字符串。

连接数据库的驱动包。

数据库用户名。

连接数据库的密码。

此处的数据库的用户名及密码,需要设置为自身系统的数据库用户名及密码。

6.另外,还需要告诉Hive,Hadoop的环境配置。

所以我们需要修改文件。

首先我们将重命名为。

viewplain copy

1.mv /apps/hive/conf/  /apps/hive/conf/  

使用vim打开文件。

viewplain copy

1.vim   

追加Hadoop的路径,以及Hive配置文件的路径到文件中。

viewplain copy

1.# Set HADOOP_HOME to point to a specific hadoop install directory  

2.# HADOOP_HOME=${bin}/../../hadoop  

3.HADOOP_HOME=/apps/hadoop  

4.# Hive Configuration Directory can be controlled by:

  

5.# export HIVE_CONF_DIR=  

6.export HIVE_CONF_DIR=/apps/hive/conf  

7.下一步是配置Mysql,用于存储Hive的元数据。

首先,需要保证Mysql已经启动。

执行以下命令,查看Mysql的运行状态。

viewplain copy

1.sudo service mysql status  

通过输出,可以看出Mysql未启动。

所以需要执行启动命令。

viewplain copy

1.sudo service mysql start  

如果未安装Mysql则需要执行安装命令。

若我们的环境已安装Mysql,则无需执行此步。

viewplain copy

1.sudo apt-get install mysql-server  

8.开启Mysql数据库。

viewplain copy

1.mysql -u root -p  

此时会提示输入密码,此处密码为strongs

创建名为hive的数据库,编码格式为latin1,用于存储元数据。

viewplain copy

1.create database hive CHARACTER SET latin1;  

查看数据库是否创建成功。

viewplain copy

1.show databases;  

下面,输入exit退出Mysql。

viewplain copy

1.exit  

9.执行测试。

由于Hive对数据的处理,依赖MapReduce计算模型,所以需要保证Hadoop相关进程已经启动。

输入jps,查看进程状态。

若Hadoop相关进程未启动,则需启动Hadoop。

viewplain copy

1./apps/hadoop/sbin/  

启动Hadoop后,在终端命令行界面,直接输入hive便可启动Hive命令行模式。

viewplain copy

1.hive  

输入HQL语句查询数据库,测试Hive是否可以正常使用。

viewplain copy

1.show databases;  

至此Hive安装完毕。

5.Hive基本操作

实验步骤:

一、实验环境准备

1.首先在Linux本地新建/data/hive2目录。

viewplain copy

1.mkdir -p /data/hive2  

2.切换到/data/hive2目录下,使用wget命令,下载plain copy

1.cd /data/hive2  

2.wget   

3.wget   

3.输入jps检查Hadoop相关进程,是否已经启动。

若未启动,切换到/apps/hadoop/sbin目录下,启动Hadoop。

viewplain copy

1.jps  

2.cd /apps/hadoop/sbin  

3../  

4.开启Hive,首先,需要保证Mysql启动。

执行以下命令,查看Mysql的运行状态。

viewplain copy

1.sudo service mysql status  

输出显示Mysql未启动。

执行以下启动命令。

viewplain copy

1.sudo service mysql start  

然后切换到/apps/hive/bin目录下,开启Hive。

viewplain copy

1.cd /apps/hive/bin  

2../hive  

二、Hive数据仓库的操作

1.在Hive中创建一个数据仓库,名为DB。

viewplain copy

1.create database DB;  

2.以上简单创建了一个DB库,但是这条sql可以更进一步的优化,我们可以加上ifnotexists。

viewplain copy

1.create database if not exists DB;  

解析:

在创建库时,应避免新建的库名与已有库名重复,如果库名重复将会报出以下错误(我在已有DB库的前提下,再次创建了DB库)。

错误提示数据仓库DB已经存在,那么加入的ifnotexists就起了作用,如下(在已有DB库的前提下,再次创建DB库,提示成功不会报错)

加入ifnotexists的意思是如果没有DB库就创建,如果已有就不再创建。

3.查看数据仓库DB的信息及路径。

viewplain copy

1.describe database DB;  

4.删除名为DB的数据仓库。

viewplain copy

1.drop database if exists DB;  

三、Hive数据表的操作

Hive的数据表分为两种:

内部表和外部表。

Hive创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。

在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据。

这样外部表相对来说更加安全些,数据组织也更加灵活,方便共享源数据,生产中常使用外部表。

下面详细介绍对表操作的命令及使用方法:

即将创建的表,表名不能和已有表名重复,否则会报错,现在我们showtables一下,查看已存在的表。

viewplain copy

1.show tables;  

现在库中没有表。

1.创建一个名为cat的内部表,有两个字段为cat_id和cat_name,字符类型为string。

viewplain copy

1.create table cat(cat_id string,cat_name string);  

查看是否创建成功。

viewplain copy

1.show tables;  

下面我们再次创建一个与刚才表名相同的表,看一下报错。

viewplain copy

1.create table cat(cat_id string,cat_name string);  

提示错误,该表已经存在!

说明表与库一样,名称不能重复,解决方法是加入ifnotexists。

2.创建一个外部表,表名为cat2,有两个字段为cat_id和cat_name,字符类型为string。

viewplain copy

1.create external table if not exists cat2(cat_id string,cat_name string);  

查看是否创建成功。

viewplain copy

1.show tables;  

外部表较内部表而言,只是在create后加了一个external。

3.修改cat表的表结构。

对cat表添加两个字段group_id和cat_code。

viewplain copy

1.alter table cat add columns(group_id string,cat_code string);  

使用desc命令查看一下加完字段后的cat表结构。

viewplain copy

1.desc cat;  

4.修改cat2表的表名。

把cat2表重命名为cat3。

viewplain copy

1.alter table cat2 rename to cat3;  

这个命令可以让用户为表更名,数据所在的位置和分区名并不改变。

5.删除名为cat3的表并查看。

viewplain copy

1.drop table cat3;  

2.show tables;  

6.创建与已知表相同结构的表,创建一个与cat表结构相同的表,名为cat4,这里要用到like关键字。

viewplain copy

1.create table cat4 like cat;  

创建完成并查看结果。

viewplain copy

1.show tables;  

四、Hive中数据的导入导出

以下介绍四种常见的数据导入方式:

1.从本地文件系统中导入数据到Hive表。

首先,在Hive中创建一个cat_group表,包含group_id和group_name两个字段,字符类型为string,以“\t”为分隔符,并查看结果。

viewplain copy

1.create table cat_group(group_id string,group_name string) row format delimited fields terminated by '\t'  stored as textfile;  

2.show tables;  

[rowformatdelimited]关键字,是用来设置创建的表在加载数据的时候,支持的列分隔符。

[storedastextfile]关键字,是用来设置加载数据的数据类型,默认是TEXTFILE,如果文件数据是纯文本,就是使用[storedastextfile],然后从本地直接拷贝到HDFS上,Hive直接可以识别数据。

然后,将Linux本地/data/hive2目录下的cat_group文件导入到Hive中的cat_group表中。

viewplain copy

1.load data local inpath '/data/hive2/cat_group' into table cat_group;  

通过select语句查看cat_group表中是否成功导入数据,由于数据量大,使用limit关键字限制输出10条记录。

viewplain copy

1.select * from cat_group limit 10;  

导入成功。

2.将HDFS上的数据导入到Hive中。

首先,另外开启一个操作窗口,在HDFS上创建/myhive2目录。

viewplain copy

1.hadoop fs -mkdir /myhive2  

然后,将本地/data/hive2/下的cat_group表上传到HDFS的/myhive2上,并查看是否创建成功。

viewplain copy

1.hadoop fs -put /data/hive2/cat_group /myhive2  

2.hadoop fs -ls /myhive2  

接着,在Hive中创建名为cat_group1的表,创表语句如下。

viewplain copy

1.create table cat_group1(group_id string,group_name string)  

2.row format delimited fields terminated by '\t'  stored as textfile;  

最后,将HDFS下/myhive2中的表cat_group导入到Hive中的cat_group1表中,并查看结果。

viewplain copy

1.load data inpath '/myhive2/cat_group' into table cat_group1;  

2.select * from cat_group1 limit 10;  

导入成功。

提示:

HDFS中数据导入到Hive中与本地数据导入到hive中的区别是loaddata后少了local。

3.从别的表中查询出相应的数据并导入到Hive中。

首先在Hive中创建一个名为ca

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1