参加大数据比赛的想法

准备了3个多月的大数据比赛,今天比完了,内心有一些想法,在听了老师的建议之后决定还是写个博客纪念一下,也是一段回忆。同时,这样也可以记录自己现在有哪些不足的地方,更好的学习。

比赛的前一天
1.mapreduce
原本以为mapreduce学习的差不多了,但在看一个自己写的案例代码和笔记的时候还是不知道排序和分区的执行顺序,虽然之前也看了博客和相关的书籍,但是对mapreduce的执行原理理解的不是很清楚而原理理解的不清楚,对编写MR程序有着很大的影响,所以这次比赛虽然结束了,我还是要再看看,从底层好好的学学。

2.hive
因为比赛之前基本上都在学mapreduce,而hive是暑假学的,且前两天就看了看笔记,没有做什么具体的操作,所以就做了一下去年大数据比赛的hive数据预处理部分,在做到第四小题的时候,我不知道不同类型的空值如何判断,后来从网上搜了下有很多如何判断int类型和string类型空值判断的介绍以及如何调整系统默认空值,但没有搜到hive如何判断一个浮点类型的字段数据是否是空值,hive很多细节没有学好,同时很多复杂的功能也没有进行深层次的学习

3.讨论感想

我们计信院参加的三个队进行了赛前讨论,因为比赛可以带纸质材料,所以我们每个队都准备了纸质的材料,原本以为准备的材料很充分的我,在讨论的时候发现并不是,他们都准备了去年比赛的题目和答案,而我想都没有想到,也没有问他们都准备了什么,下次再遇到这样的事情,要问问别人准备了什么,这样准备的会更充足

比赛当天

比赛当天其实也就是今天啊,主要想说一下遇到的问题。

1.建maven项目,导jar包
在规定比赛时间到了后发生一些小插曲,这就不细说了,使比赛延后了两个小时,在进入比赛平台,登陆虚拟机,打开eclipse,发现里面没有建好的maven,这让我傻眼了,因为之前自己电脑里的maven是让同学帮我建的,然后在微信群里也问了主办方有关eclipse里环境有没有配置好的问题,就抱着侥幸的心理前一天晚上没有学如何建一个maven项目,结果后来比赛的环境就没有搭好,要自己导jar包,然而之前因为同学帮我建好了,自己也没有导过几次jar包,在比赛的时候结果就不会了,出来混真的是迟早都要还的呀

  • mapreduce程序运行方式
    比赛前,运行mapreduce程序一直都是先导出一个jar包放在本地,然后通过xftp将jar包传输到linux上,之后在虚拟机的终端里使用hadoop jar命令运行jar包得出结果,虽然知道还有一种方法就是在eclipse里直接运行,但嫌配置太麻烦,就一直没有配置。在比赛的时候,原本想跟平时一样导出jar包再进行运行,结果电脑虚拟机的配置不够,太卡,不能导jar包,而我只会这一种方法,后来在那里工作人员的帮助下,我的代码可以在eclipse上运行了,但还是浪费了时间,在过程中我发现在eclipse上直接运行比较节省时间,还是要学学怎么样在eclipse里直接运行mapreduce程序代码,不能只会在终端运行呀。文件的输入输出路径,设置的和在虚拟机里运行的不一样,在虚拟机里运行是通过参数args[]进行传递,而如果是在eclipse里直接运行是通过文路径进行传递。

3.其它

  • 在比赛中还遇到了很多其它的问题,如:不知道如何复制一个文件从一个目录到另一个目录,队员跟我说用cp命令,linux命令还不是很熟
  • 预处理第二题是一个简单的join,之前我也写过类似的案例,但当时没有做出来结果,等到考卷可以看到的时候再写写
  • 有些有可能拿分的没有写,如hive部分,执着于写数据分析和数据预处理部分,这样有些分就丢了
  • 后来想加载一个类自带的方法时,一直是在下面出现,就被挡住了,然后问工作人员说是用Shift+Alt+s+o;
 最后,试卷如下:


2019年安徽省大数据与人工智能应用赛题A
 													队伍编号:        

说明:本次比赛为操作题。请在相应的虚拟机上作答,请遵守考试规则。
第一部分:大数据平台部署()
场景说明
目前,大数据技术及应用已经深入到各行各业,各高校也在积极建设信息化、智慧化校园,那么大数据中心建设必不可少,它可以服务于学校上游和下游,解决数据孤岛问题。假设现在某大学正在假设大数据中心,首先搭建大数据基础平台,用于数据存储和批量计算以及实时查询,现在请你完成Hadoop和Hive两个大数据框架的搭建及运维:
任务一、Hadoop安装()

1、配置SSH免密登录(截图成功ssh登录到子节点截图)

2、安装配置JDK(截图java -version命令)
3、解压Hadoop安装包并修改配置文件
4、配置环境变量(截图profile文件配置的关键位置)
5、拷贝hadoop到其他的机器上(截图拷贝命令)
6、初始化hadoop集群(截图执行命令)
7、启动Hadoop集群(启动成功后执行jps命令,截图主节点和子节点的进程)
任务二、配置Hive集群环境(5分)
Hive是基于Hadoop的一个数据仓库工具,其运行依赖Hadoop和Mysql,其中Hadoop为其提供Hdfs文件系统,Mysql为其提供元数据存储。下面我们开始搭建Hive。
1、Mysql安装(截图mysql搭建成功show databases命令结果界面2分)
2、Hive搭建(关键步骤截图2分)   
3、启动测试hive(截图搭建成功show databases命令结果界面1分)

第二部分:大数据预处理部分(20分)

原来的日志数据格式是如下的:
appid ip mid userid login_type request status http_referer user_agent time

1、数据清洗:将 user_agent 为null的数据删除(10分)
规则一:如果数据中mid为null的数据,请过滤掉
规则二:将数据中字段login_type的值为1的全部替换为 “本系统登录”
规则三:将数据中字段status的值为0的全部替换为 ”第三方集成”


2、数据清洗:将不规整数据转化为规整数据(10)


但是如果需要按照省份来统计uv、pv,其所包含的信息还不够,我们需要对这些数据做一定的预处理,
对于其中包含的IP信息,我们需要将其对应的IP信息解析出来; 
所以按照上面的分析,我们希望预处理之后的日志数据包含如下的数据字段:
appid;
ip;//通过ip来衍生出来的字段 province和city
province;
city;……………………………………….
第三部分:大数据分析(25分)
	某学校有学生成绩文件:
包含学生课程名称,学生姓名,学生成绩等字段;
1、利用maperreduce操作统计每门课程的参考人数和课程平均分(5分)
2、统计每门课程参考学生的平均分,并且按课程存入不同的结果文件,要求一门课程一个结果文件,并且按平均分从高到低排序,分数保留一位小数。(10分)
任务三、基于hive的数据仓库离线计算编程(10分)
Hive作为基于hadoop的海量数据处理工具之一,在企业中有广泛应用。可以将复杂的MapReduce计算逻辑使用SQL逻辑处理。

1、 创建一个数据库,以你的组名命名,创建成功后使用use命令切换为该库,并执行set hive.cli.print.current.db=true;截图作

2、 建一个hive内部表,命名格式为:你的组名_日期_表名称,截图建表成功(2分)

3、 studentsScore.txt 导入hive表中(2分)。


4、使用sql语句统计上面创建的表中每门课程的平均分数,课程,平均分(4分)。


第四部分:可视化(15分)
数据: 
有泰坦尼克号 公开数据集合数据:共有891行、12列。这代表本训练集共有891条数据,每条数据有12类信息。包括:
• PassengerId => 乘客ID
• Survived => 获救情况(1为获救,0为未获救)
• Pclass => 乘客等级(1/2/3等舱位)
• Name => 乘客姓名
• Sex => 性别
• Age => 年龄
• SibSp => 堂兄弟/妹个数
• Parch => 父母与小孩个数
• Ticket => 船票信息
• Fare => 票价
• Cabin => 客舱
• Embarked => 登船港口

要求用以上数据集合做可视化数据分析:
1、利用柱状图各乘客等级的获救与遇难情况(5分)
2、通过一张大图里分列几个小图来展示获救乘客的各种属性(10分)
了解到乘客的信息,获救人数与未获救人数比较,不同获救乘客等级之间获救人数比较,获救人员各年龄段分布,各口岸上船的乘客比较。如下:
1)柱状图展示 获救与遇难信息(3)
2)柱状图展示 乘客等级与人数信息(2)
3)散点图 展示 年龄与获救分布情况(5)
4)折线图 展示 各等级的乘客年龄分布(3)
5)柱状图 展示 各登船口岸上船人数(2)

第五部分 人工智能(10分)
目前人工智能技术广泛应用于各个场景,如分类聚类,图片图像识别,音视频检测等等。下面请你搭建人工智能中深度学习常用的框架之一 TensorFLow 并完成简单测试任务,本次实验在Linux环境下安装TensorFlow。
一、TensorFlow安装(7分)
1 Linux安装python3环境
2 使用pip3安装pip3 tensorflow 

二、TensorFlow测试,将测试结果截图(3分)
进入python命令下,测试tensorflow:
    import tensorflow as tf
    sess = tf.Session()
    hello=tf.constant('Hello,Tensorflow!')
    print(sess.run(hello))
回车,若在终端下显示 Hello,Tensorflow! 则表示安装tensorflow成功


第六部分:综合题(20分)

字段含义:id,小区名称,所在区域,总价(万元),单价(元/平米),房屋户型,所在楼层,建筑面积(),户型结构,套内面积(),建筑类型,房屋朝向,建筑结构,装修情况,梯户比例,配备电梯,产权年限,挂牌时间,交易权属,上次交易,房屋用途,房屋年限,产权所属,抵押信息,房本备件
1、 使用Spark将数据集中”房屋用途” 是 普通住宅 并且 交易权属 是 商品房 的相关的数据提取出来,并回写到ershoufang.txt文件中,如果文件ershoufang.txt存在就删除原有的文件 (请提供编程代码)(3分)。
代码文件:
生成的结果文件:
2 使用Spark统计”房屋用途” 是 普通住宅 相关的 所在区域的占比(请提供完整代码和结果截图5分)。
代码文件:
结果截图:

4 统计关于二手房分析。(本题可以使用你擅长的编程语言和框架)
4.1 各区域二手房房源数量,按照区域对数据集中房源数量进行计算,按照房源数排序(请提供完整代码和结果截图2分)
代码文件:
结果截图:
4.1 各区域二手房平均房价,按照区域对数据集中平均总价进行计算,按照平均总价排序(请提供完整代码和结果截图2分)
代码文件:
结果截图:

4.2 计算各区域二手房单价前5条的房源信息(请提供完整代码和结果截图4分)
代码文件:
结果截图: 

4.3 针对于上述指标统计,请简要结合你分析的数据结果,描述当前二手房房价以及单价的分布情况(4分)。










评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值