大数据复习练习

大数据复习练习题

  • 填空题
  • 简答题
  • 简单分析题
  • 程序设计题
  • 程序设计题

填空题

  1. (数据)过观察、实验或计算得出的结果。(消息)是较为宏观的概念,它是由数据的有序排列组合而成。
  2. 大数据的数据类型包括(结构化数据)和(非结构化数据),前者占10%左右,后者占90%左右。
  3. HDFS伪分布式配置中属性dfs.replication的值应该设置为(1)
  4. DFS的数据复制采用了(流水线复制)的策略
  5. 为了解决单点故障问题,HDFS2.0采用了(高可用)结构。
  6. Base中需要根据表的行键的值对表进行分区,每个行区间构成一个分区,被称为(Region
  7. (云计算)数据提供了技术基础,(物联网)是大数据重要的数据来源。
  8. 在每个Region服务器上只有的是(HLog)
  9. ARN中的(ApplicationMaster)负责执行以下任务:为应用程序申请资源,并分配给内部任务;任务调度、监控与容错。

简答题

  1. 在Hadoop伪分布式安装后,执行Start-dfs.sh命令,会启动哪几个线程?每个线程分别有什么作用?

  1. NameNode:hadoop中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问,保存有元数据。

  2. SecondaryNameNode:提供周期检查点和清理任务。

  3. DataNode:负责管理连接到节点的存储。每个存储数据的节点运行一个datanode守护进程。

  4. Zookeeper在HBase中有哪些作用?


  1. 协调服务:管理HBase集群中各个节点的状态信息,协调各个节点之间的通信和协作,确保各个节点之间的一致性和可靠性。
  2. 元数据管理:HBase的元数据信息存储在ZooKeeper中,HBase可以通过ZooKeeper来获取和维护元数据信息。
  3. 选主机制:HBase集群的Master节点是由ZooKeeper进行选举产生的,ZooKeeper会负责监控Master节点的状态,并在Master节点发生故障时进行重新选举。
  • 保存 Meta 表位置、记录并监听 Master 主备状态
  1. 百度云数据库支持关系型数据库MySQL,分布式非关系型数据库存储服务MongoDB、键值型非关系型数据库Redis,请分别说明这三种数据库是如何运用CAP理论的?

CAP是一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)。

  1. MySQL(关系型数据库)

    • MySQL单机部署时,MySQL可以保证一致性和可用性,不涉及分区容错性。集群部署,MySQL倾向于保证一致性和可用性,牺牲一定的分区容错性。
  2. MongoDB(分布式非关系型数据库)

    • MongoDB默认设计为满足CAP理论中的AP(可用性和分区容错性)。MongoDB通过副本集来保证高可用性,副本集中的每个节点都可以处理读取请求,即使某些节点之间通信出现问题(分区),系统仍然可以继续运行。
  3. Redis(键值型非关系型数据库)

    • Redis可以为单机或主从复制模式。在单实例中,Redis同时保证一致性和可用性。在集群模式下,Redis倾向于保证AP(可用性和分区容错性)。

简单分析题

  • 请分别对下面的命令进行解释
  1. hdfs dfs -ls /

    • 列出HDFS根目录下的所有文件和目录。
  2. hdfs dfs -mkdir -p /tmp/test_hdfs

    • 在HDFS中创建目录。-p 参数允许创建多级目录,如果父目录不存在则会一并创建。在 /tmp 下创建名为 test_hdfs 的目录
  3. hdfs dfs -put testfile.zip /tmp/test_hdfs

    • 将本地文件系统中的 testfile.zip 文件上传到HDFS的 /tmp/test_hdfs 目录下。
  4. create ‘exam_info’, ‘info’

    • HBase shell命令,创建一个名为 exam_info 的表,并定义一个名为 info 的列族。
  5. put ‘exam_info’, ‘123001’, ‘info:name’, ‘Elle’

    • HBase shell命令,向 exam_info 表中插入数据。将 123001 作为行键,info:name 作为列名,Elle 作为该列的值。
  6. get ‘exam_info’, ‘123001’, ‘info:name’

    • exam_info 表中检索数据。获取行键为 123001 的记录中,列名为 info:name 的值。
  7. scan ‘exam_info’, {COLUMNS => ‘info:name’}

    • 扫描 exam_info 表,只返回列族 info 中列名为 name 的数据。
  8. deleteall ‘exam_info’, ‘123001’

    • 删除 exam_info 表中行键为 123001 的所有数据。
  9. HDFS代码命令解释题目

    FileSystem fs = FileSystem.get(new URI("hdfs://192.168.1.2:9000"), new Configuration(), "root"); 
    fs.deleteOnExit("/java");
    
    • 获取HDFS文件系统的实例,指定HDFS的URI和配置。deleteOnExit 方法,标记文件系统中的 /java 目录,在JVM退出时自动删除该目录。
  10. Hbase命令解释题

    Configuration configuration = HBaseConfiguration.create(); 
    Connection connection = ConnectionFactory.createConnection(configuration); 
    Table table = connection.getTable(TableName.valueOf("student")); 
    Put put = new Put("2022001".getBytes()); 
    put.addColumn("info".getBytes(), "name".getBytes(), "Kate".getBytes()); 
    table.put(put); 
    table.close();
    
    1. 首先创建一个HBase配置对象,然后创建一个HBase连接。
    2. 接着,它获取一个 student 的表的实例,创建一个 Put 对象来插入数据,指定行键为 2022001,列族为 info,列名为 name,值为 Kate
    3. 最后,将这个 Put 对象通过 table.put() 方法插入到表中,并关闭表连接。

程序设计题

  • 公司为购物平台,业务量非常庞大,现在需要为一个公司建立大数据平台,全面支持公司业务,需提供以下业务:实时的订单处理,时间跨度在数百毫秒到数秒之间;基于历史订单的查询,时间跨度在数分钟之间;对于平台各种数据的批处理分析,提供较复杂的业务,时间跨度在数小时之间。请结合所学的知识,提供一个该大数据平台的设计方案,请从数据库选择,数据采集开始设计,画出该平台的层次结构图,并说明每层有什么作用,采用什么工具或技术。

  1. 数据库选择
  • 实时订单处理:使用Kafka和Flink,因为它们支持高吞吐量的实时数据流处理
  • 历史订单查询:使用HBase,分布式的、可扩展的大数据存储系统,适合随机、实时读写访问模式
  • 批处理分析:使用Hadoop和Hive,适合处理大规模数据集的批处理任务
  1. 数据采集
  • 使用Flume或Logstash进行日志和事件数据的收集。
  • 使用Sqoop进行关系数据库数据的导入。
  1. 层次结构图
Flume/Sqoop
数据源
数据采集层
实时处理层
数据存储层
业务应用层
数据分析层

  1. 各层作用及采用工具或技术
  • 数据采集层

    • 作用:负责从各种数据源(如日志文件、数据库、API等)收集数据。
    • 工具/技术:Flume, Sqoop,。
  • 实时处理层

    • 作用:处理实时数据流,进行订单处理等实时业务。
    • 工具/技术:Kafka, Flink。
  • 数据存储层

    • 作用:存储结构化和非结构化数据,支持快速查询和历史数据分析。
    • 工具/技术:HBase, HDFS。
  • 业务应用层

    • 作用:提供用户界面和业务逻辑处理,如订单管理、用户界面等。
    • 工具/技术:Web应用框架(如Spring Boot), RESTful API。
  • 数据分析层

    • 作用:进行复杂的数据分析和报告生成,支持决策制定。
    • 工具/技术:Hive, Spark。

程序设计题

  • 下列是一组数据,该数据包含两列,分别为姓名和出生年份,请统计出有哪些年份及数据中该年份的出生人数。原始数据:
Amber 2000
Lily 2001
Lesile 2001
Kate 2000
Mike 2001
Jason 1999
Rachel 1999
  • 参考代码
//ExamMapper.java
import java.io.IOException;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;public class ExamMapper extends Mapper<LongWritable, Text, Text, IntWritable> { //记住父类参数@Overrideprotected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {//将年份提取作为key,value为1Text year =new Text(); //keyString str = value.toString(); //整行内容String[] parts = str.split(" "); // 数据以空格分隔String birthYear = parts[1]; // 出生年份是第二个字段year.set(birthYear);context.write(year, new IntWritable(1)); //key为年份 value默认为1}
}
//ExamReducer.java
import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;public class ExamReducer extends Reducer<Text, IntWritable, Text, IntWritable> { //记住父类参数@Overrideprotected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {//将map结果根据key值分类,将value值相加int sum = 0;for (IntWritable val : values) {sum += val.get();}context.write(key, new IntWritable().set(sum)); //根据key值 将vlaue相加}
}
//ExamJob.java
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;public class ExamJob {public static void main(String[] args) throws Exception {//获取作业对象Job job = Job.getInstance(new Configuration());//设置主类job.setJarByClass(ExamJob.class);//关联mapper和reducerjob.setMapperClass(ExamMapper.class);job.setReducerClass(ExamReducer.class);//设置mapper输出的k、vjob.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);//设置reducer输出的k、vjob.setOutputKeyClass(Text.class); //文本job.setOutputValueClass(IntWritable.class); //int//设置job输入、输出FileInputFormat.setInputPaths(job, new Path("file:///source.txt"));FileOutputFormat.setOutputPath(job, new Path("file:///output"));System.exit(job.waitForCompletion(true) ? 0 : 1);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/32932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

<router-view />标签的理解

< router-view />标签的理解 < router-view />用来承载当前级别下的子集路由的一个视图标签。显示当前路由级别下一级的页面。 App.vue是根组件&#xff0c;在它的标签里使用&#xff0c;而且配置好路由的情况下&#xff0c;就能在浏览器上显示子组件的效果。 如…

Python题目

实例 3.1 兔子繁殖问题&#xff08;斐波那契数列&#xff09; 兔子从出生后的第三个月开始&#xff0c;每月都会生一对兔子&#xff0c;小兔子成长到第三个月后也会生一对独自。初始有一对兔子&#xff0c;假如兔子都不死&#xff0c;那么计算并输出1-n个月兔子的数量 n int…

皇河将相董事长程灯虎出席第二十四届世纪大采风并获奖

仲夏时节,西子湖畔。第二十四届世纪大采风品牌人物年度盛典于6月16日至17日在杭州东方文化园隆重举行。本届盛典由亿央网、《华夏英才》电视栏目联合多家媒体共同主办,中世采文化发展集团承办,意尔康股份有限公司、宸咏集团协办,汇聚了来自全国政、商、产、学、研、媒等各界代表…

Eureka 服务注册与发现

目录 前言 注册中心 CAP 理论 常⻅的注册中心 CAP理论对比 Eureka 搭建 Eureka Server 引⼊ eureka-server 依赖 完善启动类 编写配置⽂件 启动服务 服务注册 引⼊ eureka-client 依赖 完善配置⽂件 启动服务 服务发现 引⼊依赖 完善配置⽂件 远程调⽤ 启动…

def __init__ python特殊方法(也称为魔法方法或双下划线方法)

这些特殊方法&#xff08;也称为魔法方法或双下划线方法&#xff09;是由 Python 的数据模型&#xff08;data model&#xff09;规定的&#xff0c;用于定义对象的行为。它们通常用于实现内置操作和函数的行为&#xff0c;如算术运算、比较操作、容器类型&#xff08;如列表和…

使用 devtool 本地调试 nodejs

安装 # 全局安装 $ npm install devtool -g # 或临时安装 $ npx devtool [file] [opts]用法 Usage:devtool [入口文件] [opts]Options:--watch, -w enable file watching (for development) # 动态检测文件变更&#xff0c;不用每次手动重启--quit, -q …

学懂C#编程:常用高级技术【元组的详细使用(二)】——元组的概念及使用

C#中的元组是一种轻量级的数据结构&#xff0c;用于将多个值组合成一个复合值。元组可以让你方便地在一个表达式中处理多个值&#xff0c;而无需创建一个新的类或结构体。C# 7及更高版本引入了对元组的更好支持&#xff0c;包括语法糖和命名元组成员&#xff0c;这极大地提高了…

昇思25天学习打卡营第2天|张量Tensor

一、张量的定义&#xff1a; 张量是一种特殊的数据结构&#xff0c;与数组和矩阵非常相似。张量&#xff08;Tensor&#xff09;是MindSpore网络运算中的基本数据结构&#xff08;也是所有深度学习模型的基础数据结构&#xff09;&#xff0c;下面将主要介绍张量和稀疏张量的属…

企业中订单超时关闭是怎么做的?我说用延迟消息,面试官让我回去等消息?

文章目录 背景时序图方案对比方案一 被动关闭方案二 定时关闭方案三 Rocket MQ延迟消息 总结 背景 订单超时未支付是电商中的一个核心场景&#xff0c;当用户创建订单后&#xff0c;超过一定时间没有支付&#xff0c;平台需要及时将该订单关闭。需要关闭的主要原因有以下几个&…

【database1】mysql:DDL/DML/DQL,外键约束/多表/子查询,事务/连接池

文章目录 1.mysql安装&#xff1a;存储&#xff1a;集合&#xff08;内存&#xff1a;临时&#xff09;&#xff0c;IO流&#xff08;硬盘&#xff1a;持久化&#xff09;1.1 服务端&#xff1a;双击mysql-installer-community-5.6.22.0.msi1.2 客户端&#xff1a;命令行输入my…

RTSP协议分析与安全实践

RTSP协议&#xff0c;全称实时流协议(Real Time Streaming Protocol)&#xff0c;前文已经简单介绍了RTSP相关协议&#xff1b; RTSP和RTP(RTCP) 这里再提一下RTSP和RTP/RTCP、RSVP的关系&#xff1b;如图&#xff1a; RTSP和HTTP 相似性&#xff1a;RTSP和HTTP协议都使用纯…

Android,RPC原理,C语言实现Binder跨进程通信Demo

RPC原理图 Binder C语言层的Demo演示 新建目录 把两个文件拷贝到我们的Demo下面 1.binder_server.c #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <linux/types.h> #include <stdbool.h> #include <string.h> #…

多路h265监控录放开发-(12)完成全部开始录制和全部停止录制代码

xviewer.h 新增 public: void StartRecord();//126 开始全部摄像头录制 void StopRecord();//126 停止全部摄像头录制 xviewer.cpp 新增 //视频录制 static vector<XCameraRecord*> records;//126void XViewer::StartRecord() //开始全部摄像头录制 126 {StopRecord…

cache2go源码分析

前言 cache2go是一个优秀的开源项目&#xff0c;具有过期功能的并发安全的golang缓存库。 源码分析 定义结构 定义一个缓存表 type CacheTable struct {sync.RWMutex// 一个表名name string// 全部缓存项items map[interface{}]*CacheItem// 清理时间触发cleanupTimer *ti…

基于JSP的“塞纳河畔左岸”的咖啡馆管理系统

开头语&#xff1a; 塞纳河畔左岸的咖啡&#xff0c;我手一杯品尝的你美~ 哎哟&#xff0c;不错哦&#xff01;我们今天来介绍一下咖啡馆管理系统&#xff01; 你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果你对咖啡馆管理系统感兴趣或有相关需求&#xff0c;欢迎联…

AGV机器人的调度开发分析(1)- 内核中的路线规划

准备开始写一个系列&#xff0c;介绍下AGV机器人的调度的开发和应用。 按照openTCS的核心内容&#xff0c;国内多家广泛应用于AGV的调度。那么架构图如下&#xff1a; Kernel中有一个是Routing&#xff0c;这是路由规划模块&#xff0c;需要实现的细节功能包括如下&#xff1a…

PDF 文件的加密与去密

一、参考内容 GitHub&#xff1a;PDF 文件的加密与去密

两个函数实现C语言日志记录(Linux/Ubuntu 24.04环境)

日志记录的结果如下所示&#xff1a; ------------ 2024_06_23_15_12_48.txt ------------ [2024-06-23 15:12:48][0.258337] web server root path: /home/buda/code/buda/vue/dist [2024-06-23 15:12:48][0.91629] web server listen port: 8888 [2024-06-23 15:12:48][0.5…

Django 模版转义

1&#xff0c;模版转义的作用 Django模版系统默认会自动转义所有变量。这意味着&#xff0c;如果你在模版中输出一个变量&#xff0c;它的内容会被转义&#xff0c;以防止跨站脚本攻击&#xff08;XSS&#xff09;。例如&#xff0c;如果你的变量包含HTML标签&#xff0c;这些…

长亭谛听教程部署和详细教程

PPT 图片先挂着 挺概念的 谛听的能力 hw的时候可能会问你用过的安全产品能力能加分挺重要 溯源反制 反制很重要感觉很厉害 取证分析 诱捕牵制 其实就是蜜罐 有模板直接爬取某些网页模板进行伪装 部署要求 挺低的 对linux内核版本有要求 需要root 还有系统配置也要修改 …