只有论述题

·简述HDFS上传文件工作流程

正确答案:

client 通过namenode 分配DataNode节点 并记录存储位置

 ·简述 Name Node与 SecondaryName Node的区别与联系。

正确答案:

  区别(1)NameNode负责管理整个文件系统的元数据,以及每一个路径(文件)所对应的数据块信息。(2)SecondaryNameNode主要用于定期合并命名空间镜像和命名空间镜像的编辑日志。

 联系(1)SecondaryNameNode中保存了一份和namenode一致的镜像文件(fsimage)和编辑日志(edits)。(2)在主namenode发生故障时,(假设没有及时备份数据),可以从SecondaryNameNode恢复数据。

·简述什么是SSH以及SSH协议解决的问题。

正确答案:

SSH为Secure Shell的缩写,它是一种网络安全协议,专为远程登录会话和其他网络服务提供安全性的协议。通过使用SSH服务,可以把传输的数据进行加密,

有效防止远程管理过程中的信息泄露问题。

·简述Shuffle工作流程。

正确答案:

map阶段处理的数据如何传递给reduce阶段,是MapReduce框架中关键的一个流程,这个流程就叫shuffle。

shuffle: 洗牌、发牌--(核心机制:数据分区,排序,合并)。

shuffle是Mapreduce的核心,它分布在Mapreduce的map阶段和reduce阶段。一般把从Map产生输出开始到Reduce取得数据作为输入之前的过程称作shuffle。

1.Collect阶段:将MapTask的结果输出到默认大小为100M的环形缓冲区,保存的是key/value,Partition分区信息等。

2.Spill阶段:当内存中的数据量达到一定的阀值的时候,就会将数据写入本地磁盘,在将数据写入磁盘之前需要对数据进行一次排序的操作,如果配置了

combiner,还会将有相同分区号和key的数据进行排序。

3.Merge阶段:把所有溢出的临时文件进行一次合并操作,以确保一个MapTask终只产生一个中间数据文件。

4.Copy阶段: ReduceTask启动Fetcher线程到已经完成MapTask的节点上复制一份属于自己的数据,这些数据默认会保存在内存的缓冲区中,当内存的缓冲区

达到一定的阀值的时候,就会将数据写到磁盘之上。

5.0Merge阶段:在ReduceTask远程复制数据的同时,会在后台开启两个线程对内存到本地的数据文件进行合并操作。6.Sort阶段:在对数据进行合并的同时,会进行排序操作,由于MapTask阶段已经对数据进行了局部的排序,ReduceTask只需保证Copy的数据的 终整体有效性

即可。

Shuffle中的缓冲区大小会影响到mapreduce程序的执行效率,原则上说,缓冲区越大,磁盘io的次数越少,执行速度就越快。缓冲区的大小可以通过参数调

整, 参数:io.sort.mb 默认100M

·简述有监督学习、无监督学习、半监督学习和强化学习。

正确答案:

 有监督学习是指用已经做过标记的数据来训练分类器,无监督学习是指用类别未知的数据来训练分类器,半监督学习介于两者之间,即部分数据做标记部分数据未做标记。强化学习也是使用未标记的数据,但是可以通过某种方法知道你是离正确答案越来越近还是越来越远(即奖惩函数),强调的是如何基于环境而行动以取得最大化的收益。

·大数据分层架构中,各层的作用和常用组件有哪些?

分层结构有哪些好处

正确答案:

       大数据分层架构通常包括以下几层:1. 数据采集层:负责从各种数据源(如传感器、日志、数据库等)中采集数据,并将其传输到下一层进行处理。常用组件包括FlumeKafka等。2. 数据存储层:负责存储采集到的数据,通常使用分布式文件系统(如HDFS)或分布式数据库(如HBase)。常用组件包括HDFSHBase等。3. 数据处理层:负责对存储在数据存储层中的数据进行处理和分析,以提取有价值的信息。常用组件包括MapReduceSparkFlink等。4. 数据查询层:负责对处理后的数据进行查询和分析,以支持业务需求。常用组件包括HivePrestoImpala等。5. 数据可视化层:负责将查询结果以可视化的方式呈现给用户,以便用户更好地理解和利用数据。常用组件包括TableauPower BI等。 

    分层结构的好处包括:1. 灵活性:分层结构可以根据业务需求进行调整和扩展,从而满足不同的数据处理需求。2. 可维护性:分层结构使得各个层之间的耦合度降低,从而更容易进行维护和升级。3. 可扩展性:分层结构可以支持水平扩展,从而可以处理更大规模的数据。4. 安全性:分层结构可以通过在不同层之间设置安全措施来保护数据的安全性。

·简述大数据处理的四个基本阶段

正确答案:

数据采集、数据存储、数据分析和计算、数据可视化

·简述可视化技术支持计算机辅助数据认识的三个基本阶段

正确答案:

数据表达

数据操作

数据分析

·简述数据可视化流程的四个基本步骤。

正确答案:

数据获取

数据处理

可视化模式

可视化应用

·简述Hive的特点是什么。

正确答案:

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

·简述Hive中内部表与外部表区别。

正确答案:

创建表阶段:

外部表创建表的时候,不会移动数到数据仓库目录中(/user/hive/warehouse),只会记录表数据存放的路径,内部表会把数据复制或剪切到表的目录下。

删除表阶段:

外部表在删除表的时候只会删除表的元数据信息不会删除表数据,内部表删除时会将元数据信息和表数据同时删除

·怎样对聚类算法的结果进行评价?

正确答案:

1. 内部评价指标:这些指标只考虑聚类结果本身,而不考虑真实标签。例如,轮廓系数、DB指数、Dunn指数等。2. 外部评价指标:这些指标需要已知真实标签,用于评估聚类结果与真实标签之间的相似度。例如,准确率、召回率、F1值等。3. 可视化评价:通过可视化聚类结果,人工判断聚类效果的好坏。例如,使用散点图、热力图等方式展示聚类结果。

·如下数据集中,决策目标为是否适合打网球,计算节点为“天气”的信息增益

log2(9/14)=-0.6374299206152917

log2(5/14)=-1.4854268271702418

天气

温度

湿度

是否有风

是否适合打网球 晴 热 高 否 否 晴 热 高 是 否 阴 热 高 否 是 雨 温 高 否 是 雨 凉爽 中 否 是 雨 凉爽 中 是 否 阴 凉爽 中 是 是 晴 温 高 否 否 晴 凉爽

中 否 是 雨 温 中 否 是 晴 温 中 是 是 阴 温 高 是 是 阴 热 中 否 是 雨 温 高 是 否

正确答案:

信息增益=节点分裂前的熵减去分裂后的熵。

节点分裂前的熵:

其中:P1=9/14 是否适合打网球=是 的概率;P2=5/14 是否适合打网球=否 的概率;

en=-9/14*math.log2(9/14)-5/14*math.log2(5/14)= 0.9402859586706311

计算

天气=晴的熵

en(2/5,3/5)=-2/5log2/5-3/5log3/5=0.971

天气=阴的熵

en(4/4,0)=-1log1-0log0=0

天气=雨的熵

en(3/5,2/5)=-3/5log3/5-2/5log2/5=0.971

天气的期望信息熵

5/14*0.971+4/14*0+5/14*0.971=0.693

天气的信息增益 0.940-0.693=0.247

简述大数据分析项目的生命周期(主要阶段)以及项目的主要参与人员。

大数据分析的生命周期:

分析一个项目主要分为:发现、数据准备、规划模型、建立模型、沟通结果和实施这几个阶段

第 1 阶段——发现:在这个阶段,团队成员需要学习业务领域的相关知识,其中包括项目的相关历史。比如,可以了解该组织或者业务单位以前是否进行过类似项目,能否借鉴相关经验。团队还需要评估可以用于项目实施的人员、技术、时间和数据。在这个阶段,重点要把业务问题转化为分析挑战以待在后续阶段解决,并且制定初始假设用于测试和开始学习数据。 第 2 阶段——数据准备:第 2 阶段需要准备好分析沙盘,以便团队在项目过程中进行使用数据和进行数据分析。团队需要执行提取、加载和转换(ELT)或者提取、转换和加载(ETL)来将数据导入沙盘。ELT 和 ETL 有时被缩写为 ETL。数据应在 ETL 过程中被转换成可以被团队使用和分析的格式。在这个阶段,分析团队需要彻底熟悉数据,并且逐步治理数据。

第 3 阶段——规划模型:在该阶段,团队需要确定在后续模型构建阶段所采用的方法、技术 和工作流程。团队会探索数据以了解变量之间的关系,然后挑选关键变量和最合适的模型。 第 4 阶段——建立模型:在第 4 阶段,团队创建用于测试、培训和生产的数据集。此外, 团队在这个阶段构建并运行由上阶段确定的模型。团队还需要考虑现有的工具是否能够满 足模型的运行需求,还是需要一个更强大的模型和工作流的运行环境(例如,更快的硬件 和并行处理)。 第 5 阶段——沟通结果:在第 5 阶段,团队需要与主要利益相关人进行合作,以第 1 阶段制定的标准来判断项目结果是成功还是失败。团队应该鉴别关键的发现,量化其 商业价值,并以适当的方式总结发现并传达给利益相关人。

第 6 阶段——实施:在第 6 阶段,团队应该提交最终报告、简报、代码和技术文档。 此外,团队可以在生产环境中实施一个试点项目来应用模型。

一个成功分析项目的关键角色

业务用户:该角色对业务领域非常了解,并且通常会从分析结果中受益。他可以就项目的背景、成果的价值,以及项目成果如何实施向项目团队提供咨询和建议。通常情况下,由

业务分析师、直线经理(line manager)或者项目领域的资深领域专家担任这种角色。

项目发起人:该角色负责项目的发起工作。他会为项目提供动力和要求,并定义核心业务问题。通常情况下,该角色会为项目提供资金,设置项目事项的优先级,然后明

确项目预期结果,最后评估项目团队最终成果的价值。

项目经理:该角色负责项目进度和质量,确保项目达到预期目标。

商业智能分析师:该角色以报表的视角,基于对数据、关键绩效指标(KPI)、关键业务指标以及商业智能的深入理解来提供业务领域的专业知识和技能。他通常负责创建

仪表板和报告,并了解数据更新源(data feed)和来源(source)。

数据库管理员(DBA):该角色负责提供和配置数据库环境,以支持工作团队的分析需求。他的工作职责包括提供对关键数据库或者表格的访问,并确保数据资源库已被关联相应的安全级别。

数据工程师:该角色需要拥有深厚的技术功底,以便进行数据管理和数据提取时的 SQL查询优化,并负责将数据导入到第 1 章中提及的分析沙箱中去。分析使用的数据库由数据库管理员(DBA)负责安装和配置,而数据工程师则负责执行具体的数据提取工作以及大量的数据操作来协助分析工作。他会和数据科学家紧密合作,确保以正确的方式生成用作分析的数据。

六、论述题(共3题,10分)

·谈一下对大数据的认识,并举例说明大数据的应用

正确答案:

    大数据是指规模巨大、类型繁多的数据集合,这些数据集合通常难以用传统的数据处理工具进行处理和管理。

    大数据的特点包括四个方面:数据量大、数据类型多样、数据处理速度快、数据价值高。 

     大数据的应用非常广泛,以下是一些例子:1. 金融行业:银行和保险公司利用大数据分析客户的信用风险、投资风险和保险风险,以便更好地管理风险和提高收益。2. 零售行业:零售商可以利用大数据分析消费者的购买行为和偏好,以便更好地定位目标客户和优化产品组合。3. 医疗行业:医疗机构可以利用大数据分析患者的病历、药物使用和治疗效果,以便更好地诊断疾病和制定治疗方案。

解析:

·大数据中hadoop核心技术是什么?

正确答案:

HDFS

MApreduce

YARN

·展望一下大数据在商业应用中前景和可能面临的问题

正确答案:

问题:1、大数据杀熟

2、隐私保护

3、风险敏感问题

七、其它(共1题,10分)73、以下mapreduce程序代码段,实现的功能是?

public class Merge {

public static class Map extends Mapper<LongWritable, Text, Text, Text >

{

protected void map(LongWritable key, Text value, Mapper<LongWritable, Text, Text, Text>.Context context)

throws IOException, InterruptedException {

String str = value.toString();

String[] data = str.split(" ");

Text t1= new Text(data[0]);

Text t2 = new Text(data[1]);

context.write(t1,t2);

}

}

public static class Reduce extends Reducer<Text, Text, Text, Text>

{

protected void reduce(Text key, Iterable<Text> values, Reducer<Text, Text, Text, Text>.Context context)

throws IOException, InterruptedException {

List<String> list = new ArrayList<>();

for (Text text : values) {

String str = text.toString();

if(!list.contains(str)){

list.add(str);

}

}

Collections.sort(list);

for (String text : list) {

context.write(key, new Text(text));

}

}

/********** End **********/

}

public static void main(String[] args) throws Exception{

Configuration conf = new Configuration();

Job job = new Job(conf, "word count");

job.setJarByClass(Merge.class);

job.setMapperClass(Map.class);

job.setCombinerClass(Reduce.class);

job.setReducerClass(Reduce.class);

job.setOutputKeyClass(Text.class);

job.setOutputValueClass(Text.class);

String inputPath = "/user/tmp/input/"; //在这里设置输入路径

String outputPath = "/user/tmp/output/"; //在这里设置输出路径

FileInputFormat.addInputPath(job, new Path(inputPath));

FileOutputFormat.setOutputPath(job, new Path(outputPath));

System.exit(job.waitForCompletion(true) ? 0 : 1);

}

}

(10分)

正确答案:

使用

Map/Reduce

编程实现文件合并和去重操作。

/**

* @param args

* 对A,B两个文件进行合并,并剔除其中重复的内容,得到一个新的输出文件C

*/

//在这重载map函数,直接将输入中的value复制到输出数据的key上 注意在map方法中要抛出异常:throws IOException,InterruptedException

/********** Begin **********/

//在这重载reduce函数,直接将输入中的key复制到输出数据的key上 注意在reduce方法上要抛出异常:throws IOException,InterruptedException

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值