大数据平台运维
HDFS题:
1.在HDFS文件系统的根目录下创建递归目录“1daoyun/file”,将附件中的BigDataSkills.txt文件,上传到1daoyun/file目录中,使用相关命令查看文件系统中1daoyun/file目录的文件列表信息,将操作命令和返回结果以文本形式提交到答题框。
[root@master ~]# hadoop fs -mkdir -p /1daoyun/file
[root@master ~]# hadoop fs -put BigDataSkills.txt /1daoyun/file
[root@master ~]# hadoop fs -ls /1daoyun/file
2.在HDFS文件系统的根目录下创建递归目录“1daoyun/file”,将附件中的BigDataSkills.txt文件,上传到1daoyun/file目录中,并使用HDFS文件系统检查工具检查文件是否受损,将操作命令和返回结果以文本形式提交到答题框。
[root@master ~]# hadoop fs -mkdir -p /1daoyun/file
[root@master ~]# hadoop fs -put BigDataSkills.txt/1daoyun/file
[root@master ~]# hadoop fsck /1daoyun/file/BigDataSkills.txt
3.在HDFS文件系统的根目录下创建递归目录“1daoyun/file”,将附件中的BigDataSkills.txt文件,上传到1daoyun/file目录中,上传过程指定BigDataSkills.txt文件在HDFS文件系统中的复制因子为2,并使用fsck工具检查存储块的副本数,将操作命令和返回结果以文本形式提交到答题框。
[root@master ~]# hadoop fs -mkdir -p /1daoyun/file
[root@master ~]# hadoop fs -D dfs.replication=2 -put BigDataSkills.txt /1daoyun/file
[root@master ~]# hadoop fsck /1daoyun/file/BigDataSkills.txt
4.HDFS文件系统的根目录下存在一个/apps的文件目录,要求开启该目录的可创建快照功能,并为该目录文件创建快照,快照名称为apps_1daoyun,使用相关命令查看该快照文件的列表信息,将操作命令和返回结果以文本形式提交到答题框。
[root@master ~]# hadoop dfsadmin -allowSnapshot /apps
[root@master ~]# hadoop fs -createSnapshot /apps apps_1daoyun
[root@master ~]# hadoop fs -ls /apps/.snapshot
5.HDFS文件系统的/user/root/small-file目录中存在一些小文件,要求使用Hadoop Arachive工具将这些小文件归档成为一个文件,文件名为xiandian-data.har。归档完成后,查看xiandian-data.har的列表信息,输出结果为。
[root@master ~]# hadoop archive -archiveName xiandian-data.har -p /user/root/small-file /user/root/
[root@master ~]# hadoop fs -ls /user/root/xiandian-data.har
6.当Hadoop集群启动的时候,会首先进入到安全模式的状态,该模式默认30秒后退出。当系统处于安全模式时,只能对HDFS文件系统进行读取,无法进行写入修改删除等的操作。现假设需要对Hadoop集群进行维护,需要使集群进入安全模式的状态,并检查其状态。将集群进入安全模式和检查安全模式状态的操作命令以文本形式提交到答题框中。
[root@master ~]# hdfs dfsadmin -safemode enter
[root@master ~]# hdfs dfsadmin -safemode get
7.为了防止操作人员误删文件,HDFS文件系统提供了回收站的功能,但过多的垃圾文件会占用大量的存储空间。要求在先电大数据平台的WEB界面将HDFS文件系统回收站中的文件彻底删除的时间间隔为7天,以文本形式提交修改的文件名称、参数信息和参数值到答题框中。
高级core-site
fs.trash.interval
10080
8.为了防止操作人员误删文件,HDFS文件系统提供了回收站的功能,但过多的垃圾文件会占用大量的存储空间。要求在Linux Shell中使用“vi”命令修改相应的配置文件以及参数信息,关闭回收站功能。完成后,重启相应的服务。以文本形式提交以上操作命令和修改的参数信息到答题框中。
[root@master ]# vi /etc/hadoop/2.4.3.0-227/0/core-site.xml
fs.trash.interval 0[root@master ~]# su - hdfs
[hdfs@master ~] / u s r / h d p / c u r r e n t / h a d o o p − c l i e n t / s b i n / h a d o o p − d a e m o n . s h − − c o n f i g / u s r / h d p / c u r r e n t / h a d o o p − c l i e n t / c o n f s t o p n a m e n o d e [ h d f s @ m a s t e r ] /usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh --config /usr/hdp/current/hadoop-client/confstop namenode [hdfs@master ~] /usr/hdp/current/hadoop−client/sbin/hadoop−daemon.sh−−config/usr/hdp/current/hadoop−client/confstopnamenode[hdfs@master ]/usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh --config /usr/hdp/current/hadoop-client/confstart namenode
[hdfs@master ~] / u s r / h d p / c u r r e n t / h a d o o p − c l i e n t / s b i n / h a d o o p − d a e m o n . s h − − c o n f i g / u s r / h d p / c u r r e n t / h a d o o p − c l i e n t / c o n f s t o p d a t a n o d e [ h d f s @ m a s t e r ] /usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh --config /usr/hdp/current/hadoop-client/confstop datanode [hdfs@master ~] /usr/hdp/current/hadoop−client/sbin/hadoop−daemon.sh−−config/usr/hdp/current/hadoop−client/confstopdatanode[hdfs@master ]/usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh --config /usr/hdp/current/hadoop-client/confstart datanode
9.为了防止操作人员误删文件,HDFS文件系统提供了回收站的功能,假设一名工程师发现自己前一天以root用户的身份不小心删除了HDFS文件系统中一个名为cetc55.txt的文件,现需要你使用find命令找到这个文件路径,并还原文件至原来的位置。完成后输出结果为。
[root@master ~]# hadoop fs -find / -name ‘cetc55.txt’
[root@master ~]# hadoop fs -mv /user/root/.Trash/Current/cetc55.txt /
10.Hadoop集群中的主机在某些情况下会出现宕机或者系统损坏的问题,一旦遇到这些问题,HDFS文件系统中的数据文件难免会产生损坏或者丢失,为了保证HDFS文件系统的可靠性,现需要在先电大数据平台的WEB界面将集群的冗余复制因子修改为5,以文本形式提交修改的参数信息和参数值输出结果为。
General
Block replication
5
11.Hadoop集群中的主机在某些情况下会出现宕机或者系统损坏的问题,一旦遇到这些问题,HDFS文件系统中的数据文件难免会产生损坏或者丢失,为了保证HDFS文件系统的可靠性,需要将集群的冗余复制因子修改为5,在Linux Shell中使用“vi”命令修改相应的配置文件以及参数信息,完成后,重启相应的服务。以文本形式提交以上操作命令和修改的参数信息输出结果为。
[root@master ~]# vi/etc/hadoop/2.4.3.0-227/0/hdfs-site.xml
dfs.replication
5
[root@master ~]# su - hdfs
[hdfs@master ~] / u s r / h d p / c u r r e n t / h a d o o p − c l i e n t / s b i n / h a d o o p − d a e m o n . s h − − c o n f i g / u s r / h d p / c u r r e n t / h a d o o p − c l i e n t / c o n f s t o p n a m e n o d e [ h d f s @ m a s t e r ] /usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh --config /usr/hdp/current/hadoop-client/confstop namenode [hdfs@master ~] /usr/hdp/current/hadoop−client/sbin/hadoop−daemon.sh−−config/usr/hdp/current/hadoop−client/confstopnamenode[hdfs@master ]/usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh --config /usr/hdp/current/hadoop-client/confstart namenode
[hdfs@master ~] / u s r / h d p / c u r r e n t / h a d o o p − c l i e n t / s b i n / h a d o o p − d a e m o n . s h − − c o n f i g / u s r / h d p / c u r r e n t / h a d o o p − c l i e n t / c o n f s t o p d a t a n o d e [ h d f s @ m a s t e r ] /usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh --config /usr/hdp/current/hadoop-client/confstop datanode [hdfs@master ~] /usr/hdp/current/hadoop−client/sbin/hadoop−daemon.sh−−config/usr/hdp/current/hadoop−client/confstopdatanode[hdfs@master ]/usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh --config /usr/hdp/current/hadoop-client/confstart datanode
12.使用命令查看hdfs文件系统中/tmp目录下的目录个数,文件个数和文件
总大小,将操作命令和返回结果以文本形式提交到答题框。
[root@master ~]# hadoop fs -count /tmp
MapReduce题:
1.在集群节点中/usr/hdp/2.4.3.0-227/hadoop-mapreduce/目录下,存在一个案例JAR包hadoop-mapreduce-examples.jar。运行JAR包中的PI程序来进行计算圆周率π的近似值,要求运行5次Map任务,每个Map任务的投掷次数为5,运行完成后以文本形式提交以上操作命令和输出结果到答题框中。
[root@master ~]# hadoop jar /usr/hdp/2.4.3.0-227/hadoop-mapreduce/hadoop-mapreduce-examples-2.7.1.2.4.3.0-227.jar pi 5 5
2.在集群节点中/usr/hdp/2.4.3.0-227/hadoop-mapreduce/目录下,存在一个案例JAR包hadoop-mapreduce-examples.jar。运行JAR包中的wordcount程序来对/1daoyun/file/BigDataSkills.txt文件进行单词计数,将运算结果输出到/1daoyun/output目录中,使用相关命令查询单词计数结果,以文本形式提交以上
操作命令和输出结果到答题框中。
[root@master ~]# hadoop jar/usr/hdp/2.4.3.0-227/hadoop-mapreduce/hadoop-mapreduce-examples-2.7.1.2.4.3.0-227.jar wordcount /1daoyun/file/BigDataSkills.txt /1daoyun/output
3.在集群节点中/usr/hdp/2.4.3.0-227/hadoop-mapreduce/目录下,存在一个案例JAR包hadoop-mapreduce-examples.jar。运行JAR包中的sudoku程序来计算下表中数独运算题的结果。运行完成后以文本形式提交以上操作命令和输出结果到答题框中。
[root@master ~]# cat puzzle1.dta
[root@master hadoop-mapreduce]# hadoop jarhadoop-mapreduce-examples-2.7.1.2.4.3.0-227.jar sudoku /root/puzzle1.dta
4.在集群节点中/usr/hdp/2.4.3.0-227/hadoop-mapreduce/目录下,存在一个案例JAR包hadoop-mapreduce-examples.jar。运行JAR包中的grep程序来统计文件系统中/1daoyun/file/BigDataSkills.txt文件中“Hadoop”出现的次数,统计完成后,查询统计结果信息。以文本形式提交以上操作命令和输出结果到答题框中。
[root@master hadoop-mapreduce]# hadoop jarhadoop-mapreduce-examples-2.7.1.2.4.3.0-227.jar grep /1daoyun/file/BigDataSkills.txt /output hadoop
HBase题:
1.启动先电大数据平台的Hbase数据库,其中要求使用master节点的RegionServer。在Linux Shell中启动Hbase shell,查看HBase的版本信息。将以上操作命令(相关数据库命令语言请全部使用小写格式)以文本形式提交到答题框。
[root@master ~]# hbase shell
hbase(main):001:0> version
2.启动先电大数据平台的Hbase数据库,其中要求使用master节点的RegionServer。在Linux Shell中启动Hbase shell,查看HBase的状态信息。将以上操作命令(相关数据库命令语言请全部使用小写格式)以文本形式提交到答题框。
[root@master ~]# hbase shell
hbase(main):001:0> status
3.启动先电大数据平台的Hbase数据库,其中要求使用master节点的RegionServer。在Linux Shell中启动Hbase shell,查看进入HBase shell的当前系统用户。将以上操作命令(相关数据库命令语言请全部使用小写格式)以文本形式提交到答题框。
[root@master ~]# hbase shell
hbase(main):001:0> whoami
4.在HBase数据库中创建表xiandian_user,列族为info,创建完成后查看
xiandian_user表的描述信息。将以上操作命令(相关数据库命令语言请全部使用小写格式)以文本形式提交到答题框。
hbase(main):001:0> create ‘xiandian_user’,‘info’
hbase(main):003:0> describe ‘xiandian_user’
5.开启HBase的安全认证功能,在HBase Shell中设置root用户拥有表
xiandian_user的读写与执行的权限,设置完成后,使用相关命令查看其权限信息。将开启HBase的安全认证功能的参数和参数值以及以上操作命令(相关数据库命令语言请全部使用小写格式)和查询结果以文本形式提交到答题框。
参数 hbase.security.authorization
参数值 true
hbase(main):001:0> grant’root’,‘RWX’,‘xiandian_user’
hbase(main):002:0> user_permission ‘xiandian_user’
6.在HBase Shell创建表xiandian_user,列族为info,并list查询,之后删除这个表,并list查询,将操作命令和查询结果以文本形式提交到答题框。
hbase(main):001:0> create ‘xiandian_user’,‘info’
hbase(main):002:0> list
hbase(main):003:0> disable ‘xiandian_user’
hbase(main):004:0> drop ‘xiandian_user’
hbase(main):005:0> list
7.在Hbase Shell中创建表xiandian,向表xiandian中插入一组数据为
xiandian,row1,info:name,xiaoming,插入后查询表xiandian中rowkey为row1的记录,将操作命令和返回结果以文本形式提交到答题框。
hbase(main):001:0> create ‘xiandian_user’,‘info’
hbase(main):002:0> put ‘xiandian_user’,‘row1’,‘info:name’,‘xiaoming’
hbase(main):003:0> get ‘xiandian_user’ ‘row1’
8.在Hbase Shell中创建表xiandian,列族为“info”然后查询表中所有的记录,将操作命令和返回结果以文本形式提交到答题框。
hbase(main):001:0> create ‘xiandian_user’,‘info’
hbase(main):002:0> scan ‘xiandian_user’
9.登录hbase数据库,使用命令创建一张表,列族为member_id’,‘address’,‘info’,创建完毕后查看该表的详细信息,后来发现列族’member_id’这个列族是多余的,需要删除,使用命令将该列族删除并查看详细信息,最后查看该表是否是enabled的。将上述所有命令和返回结果以文本形式提交到答题框。
[root@master ~]# hbase shell
hbase(main):001:0> create ‘xiandian_user’,‘member_id’,‘address’,‘info’
hbase(main):002:0> describe ‘xiandian_user’
hbase(main):003:0> disable ‘xiandian_user’
hbase(main):004:0> alter ‘xiandian_user’,‘delete’=>‘member_id’
hbase(main):005:0> describe ‘xiandian_user’
hbase(main):006:0> enable ‘xiandian_user’
hbase(main):007:0> is_enabled ‘xiandian_user’
10.登录hbase数据库,创建一张表,列族为’address’,‘info’,创建完之后,向该表插入数据,插入完毕后,使用命令按照要求查询所需信息。将以上所有的操作命令和返回结果以文本形式提交到答题框。
11.登录hbase数据库,新建一张表,列族为’address’,‘info’,创建完之后,向该表插入数据,插入之后查询这条信息,并修改信息,改完后,查询修改前和修改后的信息。将以上所有操作命令和返回结果以文本形式提交到答题框。
修改也是用put命令
12.登录hbase数据库,创建一张表,列族为’address’,‘info’,创建完之后,向该表插入数据,插入完毕后,使用scan命令查询该表指定startrow的信息。 将以上所有操作命令和返回结果以文本形式提交到答题框。
13.在关系数据库系统中,命名空间namespace是表的逻辑分组,同一组中的表有类似的用途。登录hbase数据库,新建一个命名空间叫newspace并用list查询,然后在这个命名空间中创建表,列族为’address’,‘info’,创建完之后,向该表插入数据,插入完毕后,使用scan命令只查询表中特定的信息,将以上所有操作命令和返回结果以文本形式提交到答题框。
create_namespace ‘newspace’
list_namespace
create ‘newspace:xiandian_user’,‘address’,‘info’
14.登录master节点,在本地新建一个文件叫hbasetest.txt文件,编写内容,要求新建一张表为’test’,列族为’cf’,然后向这张表批量插入数据,数据如下所示:
‘row1’, ‘cf:a’, ‘value1’
‘row2’, ‘cf:b’, ‘value2’
‘row3’, ‘cf:c’, ‘value3’
‘row4’, ‘cf:d’, ‘value4’
在插入数据完毕后用scan命令查询表内容,然后用get命令只查询row1的
内容,最后退出hbase shell。使用命令运行hbasetest.txt,将hbasetest.txt的内容和执行命令后的返回结果以文本形式提交到答题框。
[root@master ~]# cat hbasetest.txt
create ‘test’,‘cf’
list ‘test’
put ‘test’,‘row1’,‘cf:a’ ‘value1’
put ‘test’,‘row2’,‘cf:b’,‘value2’
put ‘test’,‘row3’,‘cf:c’,‘value3’
put ‘test’,‘row4’,‘cf:d’,‘value4’
scan ‘test’
get ‘test’ ‘row1’
exit
[root@master ~]# hbase shell hbasetest.txt
Hive题:
1.启动先电大数据平台的Hive数据仓库,启动Hvie客户端,通过Hive查
看hadoop所有文件路径(相关数据库命令语言请全部使用小写格式),将操作命令查询结果以文本形式提交到答题框中。
[root@master ~]# hive
hive> dfs -ls;
2.使用Hive工具来创建数据表xd_phy_course,将phy_course_xd.txt导入到该表中,其中xd_phy_course表的数据结构如下表所示。导入完成后,通过hive查询数据表xd_phy_course中数据在HDFS所处的文件位置列表信息,将以上操作命令(相关数据库命令语言请全部使用小写格式)和输出结果以文本形式提交到答题框。
stname(string) stID(int) class(string) opt_cour(string)
hive> create table xd_phy_course (stname string,stID int,class string,opt_cour string) row format delimited fields terminated by ‘\t’ lines terminated by ‘\n’ stored as textfile;
hive> load data local inpath ‘/root/phy_course_xd.txt’ into table xd_phy_course;
hive> dfs -ls /apps/hive/warehouse;
3.使用Hive工具来创建数据表xd_phy_course,并定义该表为外部表,外部存储位置为/1daoyun/data/hive,将phy_course_xd.txt导入到该表中,其中xd_phy_course表的数据结构如下表所示。导入完成后,在hive中查询数据表xd_phy_course的数据结构信息,将以上操作命令(相关数据库命令语言请全部使用小写格式)和输出结果以文本形式提交到答题框。
hive> create external table xd_phy_course (stnamestring,stID int,class string,opt_cour string) row format delimited fields terminated by ‘\t’ lines terminated by ‘\n’ location ‘/1daoyun/data/hive’;
hive> load data local inpath '/root/phy_course_xd.txt’into table xd_phy_course;
hive> desc xd_phy_course2;
4.使用Hive工具来查找出phy_course_xd.txt文件中某高校Software_1403班级报名选修volleyball的成员所有信息,其中phy_course_xd.txt文件数据结构如下表所示,选修科目字段为opt_cour,班级字段为class,将以上操作命令(相关数据库命令语言请全部使用小写格式)和输出结果以文本形式提交到答题框。
hive> create table xd_phy_course (stnamestring,stID int,class string,opt_cour string) row format delimited fields terminated by ‘\t’ lines terminated by ‘\n’;
hive> load data local inpath’/root/phy_course_xd.txt’ into table xd_phy_course;
hive> select * from xd_phy_course where class=‘Software_1403’ and opt_cour=‘volleyball’;
5.使用Hive工具来统计phy_course_xd.txt文件中某高校报名选修各个体育科目的总人数,其中phy_course_xd.txt文件数据结构如下表所示,选修科目字段为opt_cour,将统计的结果导入到表phy_opt_count中,通过SELECT语句查询表phy_opt_count内容,将统计语句以及查询命令(相关数据库命令语言请全部使用小写格式)和输出结果以文本形式提交到答题框。
hive> create table xd_phy_course (stname string,stIDint,class string,opt_cour string) row format delimited fields terminated by’\t’ lines terminated by ‘\n’;
hive> load data local inpath’/root/phy_course_xd.txt’ into table xd_phy_course;
hive> create table phy_opt_count (opt_cour string,cour_count int) row format delimited fields terminated by ‘\t’ linesterminated by ‘\n’;
hive> insert overwrite table phy_opt_count select xd_phy_course.opt_cour,count(distinct xd_phy_course.stID) from xd_phy_course group by xd_phy_course.opt_cour;
hive> select * from phy_opt_count;
6.使用Hive工具来查找出phy_course_score_xd.txt文件中某高校Software_1403班级体育选修成绩在90分以上的成员所有信息,其中phy_course_score_xd.txt文件数据结构如下表所示,选修科目字段为opt_cour,成
绩字段为score,将以上操作命令(相关数据库命令语言请全部使用小写格式)和输出结果以文本形式提交到答题框。
stname(string) stID(int) class(string) opt_cour(string) score(float)
hive> create table phy_course_score_xd (stnamestring,stID int,class string,opt_cour string,score float) row format delimited fields terminated by ‘\t’ lines terminated by ‘\n’;
hive> load data local inpath’/root/phy_course_score_xd.txt’ into table phy_course_score_xd;
hive> select * from phy_course_score_xd whereclass=‘Software_1403’ and score>90;
7.使用Hive工具来统计phy_course_score_xd.txt文件中某高校各个班级体育课的平均成绩,使用round函数保留两位小数。其中phy_course_score_xd.txt文件数据结构如下表所示,班级字段为class,成绩字段为score,将以上操作命令(相关数据库命令语言请全部使用小写格式)和输出结果以文本形式提交到答题框。
hive> select class,round(avg(score)) from phy_course_score_xd group by class;
8.使用Hive工具来统计phy_course_score_xd.txt文件中某高校各个班级体育课的最高成绩。其中phy_course_score_xd.txt文件数据结构如下表所示,班级字段为class,成绩字段为score,将以上操作命令(相关数据库命令语言请全部使用小写格式)和输出结果以文本形式提交到答题框。
hive> select class,max(score) from phy_course_score_xd group by class;
9.在Hive数据仓库将网络日志weblog_entries.txt中分开的request_date和request_time字段进行合并,并以一个下划线“_”进行分割,如下图所示,其中weblog_entries.txt的数据结构如下表所示。将以上操作命令(相关数据库命令语言请全部使用小写格式)和后十行输出结果以文本形式提交到答题框。
md5(string) url(string) request_date(string) request_time(string) ip(string)
hive> create external table weblog_entries (md5string,url string,request_date string,request_time string,ip string) row formatdelimited fields terminated by ‘\t’ lines terminated by ‘\n’ location’/data/hive/weblog/’;
hive> load data local inpath’/root/weblog_entries.txt’ into table weblog_entries;
hive> select concat_ws(’_’, request_date,request_time) from weblog_entries;
10.在Hive数据仓库将网络日志weblog_entries.txt中的IP字段与ip_to_country中IP对应的国家进行简单的内链接,输出结果如下图所示,其中
weblog_entries.txt的数据结构如下表所示。将以上操作命令(相关数据库命令语言请全部使用小写格式)和后十行输出结果以文本形式提交到答题框。
hive> create table ip_to_country (ip string,countrystring) row format delimited fields terminated by ‘\t’ lines terminated by '\n’location ‘/data/hive/ip_to_county/’;
hive> load data local inpath’/root/ip_to_country.txt’ into table ip_to_country;
hive> select wle.*,itc.country from weblog_entrieswle join ip_to_country itc on wle.ip=itc.ip;
11.使用Hive动态地关于网络日志weblog_entries.txt的查询结果创建Hive表。通过创建一张名为weblog_entries_url_length的新表来定义新的网络日志数据库的三个字段,分别是url,request_date,request_time。此外,在表中定义一个获取url字符串长度名为“url_length”的新字段,其中 weblog_entries.txt的数据结构如下表所示。完成后查询weblog_entries_url_length表文件内容,将以上操作命令(相关数据库命令语言请全部使用小写格式)和后十行输出结果以文本形式提交到答题框。
hive> create tableweblog_entries_url_length as select url, request_date, request_time,length(url) as url_length from weblog_entries;
hive> select * from weblog_entries_url_length;
Sqoop题:
1.在master和slaver节点安装Sqoop Clients,完成后,在master节点查看Sqoop的版本信息,将操作命令和输出结果以文本形式提交到答题框中。
[root@master ~]# sqoop version
2.使用Sqoop工具列出master节点中MySQL中所有数据库,将操作命令和
输出结果以文本形式提交到答题框中。
[root@master ~]# sqoop list-databases --connect jdbc:mysql://localhost --username root --password bigdata
3.使用Sqoop工具列出master节点中MySQL中ambari数据库中所有的数据表,将操作命令和输出结果以文本形式提交到答题框中。
[root@master ~]# sqoop list-tables --connectjdbc:mysql://localhost/ambari --username root --password bigdata
4.在MySQL中创建名为xiandian的数据库,在xiandian数据库中创建
xd_phy_course数据表,其数据表结构如表1所示。使用Hive工具来创建数据表xd_phy_course,将phy_course_xd.txt导入到该表中,其中xd_phy_course 表的数据结构如表2所示。使用Sqoop工具将hive数据仓库中的xd_phy_course表导出到master节点的MySQL中xiandain数据库的xd_phy_course表。将以上操作命令和输出结果以文本形式提交到答题框中。
表1 stname varchar(20)
stID int(1)
class varchar(20)
opt_cour varchar(20)
表2 stname(string)
stID(int)
class(string)
opt_cour(string)
[root@master ~]# mysql -uroot -pbigdata
MariaDB [(none)]> create database xiandian;
MariaDB [(none)]> use xiandian;
MariaDB [xiandian]> create table xd_phy_course(stnamevarchar(20),stID int(1),class varchar(20),opt_cour varchar(20));
hive> create table xd_phy_course3 (stnamestring,stID int,class string,opt_cour string) row format delimited fields terminated by ‘\t’ lines terminated by ‘\n’;
hive> load data local inpath’/root/phy_course_xd.txt’ into table xd_phy_course3;
[root@master ~]# sqoop export --connectjdbc:mysql://localhost:3306/xiandian --username root --password bigdata --table xd_phy_course --hcatalog-database sopdm --hcatalog-table xd_phy_course
[root@master ~]# sqoop export --connectjdbc:mysql://localhost:3306/xiandian --username root --password bigdata --table xd_phy_course --hcatalog-table xd_phy_course
5.在Hive中创建xd_phy_course数据表,其数据表结构如下表所示。使用
Sqoop工具将MySQL中xiandian数据库下xd_phy_course表导入到Hive数据仓库中的xd_phy_course表中。
[root@master ~]# hive
hive> create table xd_phy_course4 (stnamestring,stID int,class string,opt_cour string) row format delimited fields terminated by ‘\t’ lines terminated by ‘\n’;
[root@master ~]# sqoop import --connectjdbc:mysql://localhost:3306/xiandian --username root --password bigdata --tablexd_phy_course --hive-import --hive-overwrite --hive-table xd_phy_course4 -m 1–fields-terminated-by ‘\t’ --lines-terminated-by ‘\n’
Pig题:
1.在master节点安装Pig Clients,打开Linux Shell以MapReduce模式启动它的Grunt,将启动命令和启动结果以文本形式提交到答题框中。
[root@master ~]# pig
[root@master ~]# pig -x mapreduce
2.在master节点安装Pig Clients,打开Linux Shell以Local模式启动它的Grunt,将启动命令和启动结果以文本形式提交到答题框中。
[root@master ~]# pig -x local
3.使用Pig工具在Local模式计算系统日志access-log.txt中的IP的点击数,要求使用GROUP BY语句按照IP进行分组,通过FOREACH运算符,对关系的列进行迭代,统计每个分组的总行数,最后使用DUMP语句查询统计结果。将查询命令和查询结果以文本形式提交到答题框中。
[root@master ~]# pig
grunt> copyFromLocal /root/access_log.txt /user/root/input/log1.txt
grunt> A =LOAD ‘/user/root/input/log1.txt’ USINGPigStorage (’ ') AS (ip,others);
grunt> group_ip =group A by ip;
grunt> result =foreach group_ip generategroup,COUNT(A);
grunt> dump result;
4.使用Pig工具计算天气数据集temperature.txt中年度最高气温,要求使用GROUP BY语句按照year进行分组,通过FOREACH运算符,对关系的列进行迭代,统计每个分组的最大值,最后使用DUMP语句查询计算结果。将以上查询命令和查询结果以文本形式提交到答题框中。
[root@master ~]# pig
grunt> copyFromLocal /root/temp.txt/user/root/temp.txt
grunt> A = LOAD ‘/user/root/temp.txt’ USINGPigStorage(’ ')AS (year:int,temperature:int);
grunt> B = GROUP A BY year;
grunt> C = FOREACH B GENERATEgroup,MAX(A.temperature);
grunt> dump C;
5.使用Pig工具统计数据集ip_to_country中每个国家的IP地址数。要求使用GROUP BY语句按照国家进行分组,通过FOREACH运算符,对关系的列进行
迭代,统计每个分组的 IP 地址数目,最后将统计结果保存到/data/pig/output目录中,并查看数据结果。将以上操作命令和查询结果以文本形式提交到答题框中。
[root@master ~]# pig
grunt> copyFromLocal /root/ip_to_country.txt/user/root/ip_to_country.txt
grunt> ip_countries = LOAD’/user/root/ip_to_country.txt’ AS (ip: chararray, country:chararray);
grunt> country_grpd = GROUP ip_countries BYcountry;
grunt> country_counts = FOREACH country_grpdGENERATE FLATTEN(group),COUNT(ip_countries) as counts;
grunt> STORE country_counts INTO’/data/pig/output’;
Mathout题:
1.在master节点安装Mahout Client,打开Linux Shell运行mahout命令查看Mahout自带的案例程序,将查询结果以文本形式提交到答题框中。
[root@master~]# mahout
2.使用Mahout工具将解压后的20news-bydate.tar.gz文件内容转换成序列文件,保存到/data/mahout/20news/output/20news-seq/目录中,并查看该目录的列表信息,将操作命令和查询结果以文本形式提交到答题框中。
[root@master ~]# mkdir 20news
[root@master ~]# tar -xzf 20news-bydate.tar.gz -C20news
[root@master ~]# hadoop fs -mkdir -p/data/mahout/20news/20news-all
[root@master ~]# hadoop fs -put 20news/*/data/mahout/20news/20news-all
[root@master ~]# mahout seqdirectory -i /data/mahout/20news/20news-all-o /data/mahout/20news/output/20news-seq
[root@master ~]# hadoop fs -ls /data/mahout/20news/output/20news-seq
3.使用Mahout工具将解压后的20news-bydate.tar.gz文件内容转换成序列文件,保存到/data/mahout/20news/output/20news-seq/目录中,使用-text 命令查看序列文件内容(前20行即可),将操作命令和查询结果以文本形式提交到答题框中。
[root@master ~]# mkdir 20news
[root@master ~]# tar -xzf 20news-bydate.tar.gz -C20news
[root@master ~]# hadoop fs -mkdir -p /data/mahout/20news/20news-all
[root@master ~]# hadoop fs -put 20news/*/data/mahout/20news/20news-all
[root@master ~]# mahout seqdirectory -i/data/mahout/20news/20news-all -o /data/mahout/20news/output/20news-seq
[root@master ~]# hadoop fs -text/data/mahout/20news/output/20news-seq/part-m-00000 | head -n 20
4.使用Mahout挖掘工具对数据集user-item-score.txt(用户-物品-得分)进行物品推荐,要求采用基于项目的协同过滤算法,欧几里得距离公式定义,并且每位用户的推荐个数为3,设置非布尔数据,最大偏好值为4,最小偏好值为1,将推荐输出结果保存到output目录中,通过-cat命令查询输出结果 part-r-00000中的内容。将以上执行推荐算法的命令和查询结果以文本形式提交到答题框中。
[hdfs@master ~]$ hadoop fs -mkdir -p /data/mahout/project
[hdfs@master ~]$ hadoop fs -put user-item-score.txt /data/mahout/project
[hdfs@master ~]$ mahout recommenditembased -i /data/mahout/project/user-item-score.txt -o /data/mahout/project/output -n 3 -b false -s SIMILARITY_EUCLIDEAN_DISTANCE --maxPrefsPerUser 4 --minPrefsPerUser 1 --maxPrefsInItemSimilarity 4 --tempDir /data/mahout/project/temp
[hdfs@master ~]$ hadoop fs -cat/data/mahout/project/output/part-r-00000
Flume题:
1.在master节点安装启动Flume组件,打开Linux Shell运行flume-ng的帮助命令,查看Flume-ng的用法信息,将查询结果以文本形式提交到答题框中。
[root@master ~]# flume-ng help
2.根据提供的模板log-example.conf文件,使用Flume NG工具收集master节点的系统日志/var/log/secure,将收集的日志信息文件的名称以“xiandian-sec”为前缀,存放于HDFS文件系统的/1daoyun/file/flume目录中,并且定义在HDFS中产生的文件的时间戳为10分钟。进行收集后,查询HDFS文件系统中/1daoyun/file/flume的列表信息。将以上操作命令和结果信息以及修改后的log-example.conf文件内容提交到答题框中。
[root@master ~]# hadoop fs -ls /1daoyun/file/flume
[root@master ~]# cat log-example.conf
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /var/log/secure
a1.sources.r1.channels = c1
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.sinks.k1.type = hdfs
a1.sinks.k1.channel = c1
a1.sinks.k1.hdfs.path =hdfs://master:8020/1daoyun/file/flume
a1.sinks.k1.hdfs.filePrefix = xiandian-sec
a1.sinks.k1.hdfs.round = true
a1.sinks.k1.hdfs.roundValue = 10
a1.sinks.k1.hdfs.roundUnit = minute
3.根据提供的模板hdfs-example.conf文件,使用Flume NG工具设置master节点的系统路径/opt/xiandian/为实时上传文件至HDFS文件系统的实时路径,设置HDFS文件系统的存储路径为/data/flume/,上传后的文件名保持不变,文件类型为DataStream,然后启动flume-ng agent。将以上操作命令和修改后的hdfs-example.conf文件内容提交到答题框中。
[root@master ~]# flume-ng agent --conf-filehdfs-example.conf --name master -Dflume.root.logger=INFO,cnsole
[root@master ~]# cat hdfs-example.conf
master.sources = webmagic
master.sinks = k1
master.channels = c1
master.sources.webmagic.type = spooldir
master.sources.webmagic.fileHeader = true
master.sources.webmagic.fileHeaderKey = fileName
master.sources.webmagic.fileSuffix = .COMPLETED
master.sources.webmagic.deletePolicy = never
master.sources.webmagic.spoolDir = /opt/xiandian/
master.sources.webmagic.ignorePattern = ^$
master.sources.webmagic.consumeOrder = oldest
master.sources.webmagic.deserializer =org.apache.flume.sink.solr.morphline.BlobDeserializer$Builder
master.sources.webmagic.batchsize = 5
master.sources.webmagic.channels = c1
master.channels.c1.type = memory
master.sinks.k1.type = hdfs
master.sinks.k1.channel = c1
master.sinks.k1.hdfs.path =hdfs://master:8020/data/flume/%{dicName}
master.sinks.k1.hdfs.filePrefix = %{fileName}
master.sinks.k1.hdfs.fileType = DataStream
Spark题:
1.在先电大数据平台部署Spark服务组件,打开Linux Shell启动spark-shell终端,将启动的程序进程信息以文本形式提交到答题框中。
[root@master ~]# spark-shell
2.启动spark-shell后,在scala中加载数据“1,2,3,4,5,6,7,8,9,10”,求这些数据的2倍乘积能够被3整除的数字,并通过toDebugString方法来查看RDD的谱系。将以上操作命令和结果信息以文本形式提交到答题框中。
scala> val num=sc.parallelize(1 to 10)
scala> val doublenum = num.map(_*2)
scala> val threenum = doublenum.filter(_ % 3 == 0)
scala> threenum.collect
scala> threenum.toDebugString
3.启动spark-shell后,在scala中加载Key-Value数据(“A”,1),(“B”,2),(“C”,3),(“A”,4),(“B”,5),(“C”,4),(“A”,3),(“A”,9), (“B”,4),(“D”,5),将这些数据以Key为基准进行升序排序,并以Key为基准进行分组。将以上操作命令和结果信息以文本形式提交到答题框中。
scala> val kv1=sc.parallelize(List((“A”,1),(“B”,2),(“C”,3),(“A”,4),(“B”,5),(“C”,4),(“A”,3), (“A”,9), (“B”,4), (“D”,5)))
scala> kv1.sortByKey().collect
scala> kv1.groupByKey().collect
4.启动spark-shell后,在scala中加载Key-Value数据(“A”,1),(“B”,3),(“C”,5),(“D”,4),(“B”,7),(“C”,4),(“E”,5),(“A”,8), (“B”,4),(“D”,5),将这些数据以Key为基准进行升序排序,并对相同的Key进行Value求和计算。将以上操作命令和结果信息以文本形式提交到答题框中。
scala> valkv2=sc.parallelize(List((“A”,1),(“B”,3),(“C”,5),(“D”,4),(“B”,7),(“C”,4),(“E”,5),(“A”,8),(“B”,4),(“D”,5)))
scala> kv2.sortByKey().collect
scala> kv2.reduceByKey(+).collect
5.启动spark-shell后,在scala中加载Key-Value数据(“A”,4),(“A”,2),(“C”,3),(“A”,4),(“B”,5),(“C”,3),(“A”,4),以Key为基准进行去重操作,并通过toDebugString方法来查看RDD的谱系。将以上操作命令和结果信息以文本形式提交到答题框中。
scala> valkv1=sc.parallelize(List((“A”,4),(“A”,2),(“C”,3),(“A”,4),(“B”,5),(“C”,3),(“A”,4)))
scala> kv1.distinct.collect
scala> kv1.toDebugString
6.启动spark-shell后,在scala中加载两组Key-Value数据(“A”,1),(“B”,2),(“C”,3),(“A”,4),(“B”,5)、(“A”,1),(“B”,2),(“C”,3),(“A”,4),(“B”,5),将两组数据以Key为基准进行JOIN操作,将以上操作命令和结果信息以文本形式提交到答题框中。
scala> val kv5=sc.parallelize(List((“A”,1),(“B”,2),(“C”,3),(“A”,4),(“B”,5)))
scala> val kv6=sc.parallelize(List((“A”,1),(“B”,2),(“C”,3),(“A”,4),(“B”,5)))
scala> kv5.join(kv6).collect
7.登录spark-shell,定义i值为1,sum值为0,使用while循环,求从1加
到100的值,最后使用scala的标准输出函数输出sum值。将上述所有操作命令和返回结果以文本形式提交到答题框。
8.登录spark-shell,定义i值为1,sum值为0,使用for循环,求从1加到
100的值,最后使用scala的标准输出函数输出sum值。将上述所有操作命令和返回结果以文本形式提交到答题框。
scala> var i=1
scala> var sum=0
scala> for(i<- 1 to 100) sum+=i
9.任何一种函数式语言中,都有map函数与faltMap这两个函数:map函数的用法,顾名思义,将一个函数传入map中,然后利用传入的这个函数,将集合中的每个元素处理,并将处理后的结果返回。
而flatMap与map唯一不一样的地方就是传入的函数在处理完后返回值必须
是List,所以需要返回值是List才能执行flat这一步。
(1)登录spark-shell,自定义一个list,然后利用map函数,对这个list进行元素乘2的操作,将上述所有操作命令和返回结果以文本形式提交到答题框。
(2)登录spark-shell,自定义一个 list,然后利用flatMap函数将list转换为单个字母并转换为大写,将上述所有命令和返回结果以文本形式提交到答题框。
scala> import scala.math._
scala> val nums=List(1,2,3,4,5,6,7,8,9)
scala> nums.map(x=>x*2)
scala> val data=List(“Hadoop”,“Java”,“Spark”)
scala> data.flatMap(_.toUpperCase)
10.登录大数据云主机master节点,在root目录下新建一个abc.txt,里面的内容为:
hadoop hive
solr redis
kafka hadoop
storm flume
sqoop docker
spark spark
hadoop spark
elasticsearch hbase
hadoop hive
spark hive
hadoop spark
然后登录spark-shell,首先使用命令统计abc.txt的行数,接着对abc.txt 文档中的单词进行计数,并按照单词首字母的升序进行排序,最后统计结果行数,将上述操作命令和返回结果以文本形式提交到答题框。
11.登录spark-shell,自定义一个List,使用spark自带函数对这个List进行去重操作,将操作命令和返回结果以文本形式提交到答题框。
12.在Spark-Shell中使用scala语言对sample-data目录中的文件使用flatMap语句进行数据压缩,压缩的所有数据以空格为分隔符,压缩后对字母进行Key:Value计数(字母为Key,出现次数为Value),将以上操作命令和结果信息显示如下。
scala> val rdd4 = sc.textFile(“hdfs://10.0.0.115:8020/sample-data/”)
scala> rdd4.toDebugString
scala> val words=rdd4.flatMap(.split(" "))
scala> val wordscount=words.map(word=>(word,1)).reduceByKey(+_)
scala> wordscount.collect
13.在Spark-Shell中使用scala语言加载search.txt文件数据,其数据结构释义如下表所示。加载完成后过滤掉不足6列的行数据和第四列排名为2、第五列点击顺序号为1的数据,并进行计数。将以上操作命令和结果信息显示如下。
scala> val ardd =sc.textFile("/data/search.txt")
scala> val mapardd =ardd.map((.split(’\t’))).filter(.length >= 6)
scala> val filterardd =mapardd.filter((3).toString!=“2”).filter((4).toString!=“1”)
scala> filterardd.count