首页 > 其他分享 >大数据复习练习

大数据复习练习

时间:2024-06-23 18:59:08浏览次数:3  
标签:info 复习 练习 hadoop org apache import 数据

大数据复习练习题

填空题

  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> { //记住父类参数
   
    @Override
    protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
    	//将年份提取作为key,value为1
    	Text year =new Text(); //key
    	String 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> { //记住父类参数
    
    @Override
    protected 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和reducer
        job.setMapperClass(ExamMapper.class);
        job.setReducerClass(ExamReducer.class);
     	//设置mapper输出的k、v
        job.setMapOutputKeyClass(Text.class);
        job.setMapOutputValueClass(IntWritable.class);
        //设置reducer输出的k、v
        job.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);
    }
}

标签:info,复习,练习,hadoop,org,apache,import,数据
From: https://blog.csdn.net/yang2330648064/article/details/139902608

相关文章

  • python数据分析
    数据可视化基础定义与目的定义1.数据可视化是将数据以图形或图像的形式展示出来的过程2.目的是帮助人们更直观地理解、分析和解释数据目的1.揭示数据中的模式、趋势和关联2.辅助决策制定和问题解决3.增进数据沟通和交流数据可视化类型matplotlib库实现简单数据可视化......
  • 一个使用Python和假设的天气API来获取和展示天气数据的简单脚本示例
    要使用Python编写一个天气预测的脚本,我们通常需要依赖于现有的天气API来获取实时或历史天气数据,并且结合机器学习或统计模型来进行预测。然而,由于天气预测是一个复杂的任务,通常需要大量的计算资源和专业的气象知识,这里我们将简化这个过程,只展示如何使用Python和一个假设的天......
  • [MYSQL] 数据库基础
    1.什么是数据库从数据库的名字可以看出,它是用来操作(增删查改....)数据的,事实上也的确如此,通过数据库,我们可以更方便.更高效的来操作.管理数据以文件形式存储数据的缺点文件的安全问题文件不利于数据的查询和删除文件不利于存储海量数据操作文件并不方便为了解决上述......
  • MySQL 数据抽稀 每分钟取一条
    抽稀十分钟一条WITHdata_01AS(SELECT*FROMcd_ret_well_resulttrWHEREwell_name='74-77'andMOD(MINUTE(inputtime),10)=0ORDERBYinputtimeasc),data_02AS(SELECT*,ROW_NUMBER()OVER(PARTITIONBYDATE_FORMAT(inputtime,'%Y-%m-%d%H:%i'......
  • 【06】数据模型和工作量证明-工作量证明
    1.工作量证明的背景比特币是通过工作量证明来竞争记账权,并获得比特币奖励。简单来讲就是谁能够根据区块数据更快的计算得到满足条件的哈希值,谁就可以胜出,这个块才会被添加到区块链中。我们把这个过程称为挖矿。比特币每10分钟产生1个区块。2.工作量证明算法1.获取区块头......
  • nginx架构&&基本数据结构&&配置&&模块&&请求详解
    初探nginx架构众所周知,nginx性能高,而nginx的高性能与其架构是分不开的。那么nginx究竟是怎么样的呢?这一节我们先来初识一下nginx框架吧。nginx在启动后,在unix系统中会以daemon的方式在后台运行,后台进程包含一个master进程和多个worker进程。我们也可以手动地关掉后台模式,让ng......
  • CAN总线基础(2)--数据帧深层解析
    (一)五种基本的帧类型作用以及介绍数据帧: 是用于传输数据的基本单元。它包含一个帧头、标识符、控制位、数据长度和数据等字段。遥控帧: 是一种特殊的CAN数据帧,用于向其他节点发送命令或请求。错误帧: 是指在CAN总线上出现了错误,例如误码、冲突等,无法正确接收的数据帧。......
  • 阿里巴巴关键字搜索商品API返回值探索:数据驱动的电商产品创新策略
    阿里巴巴关键字搜索商品API返回值探索与数据驱动的电商产品创新策略密切相关。以下是对API返回值结构的解析以及如何利用这些数据驱动电商产品创新策略的详细阐述:一、阿里巴巴关键字搜索商品API返回值探索阿里巴巴关键字搜索商品API的返回值结构通常是一个JSON格式的数据包,包......
  • 【python】python 大型商超会员数据研究分析可视化 (源码+数据集+论文)【独一无二】
    ......
  • 【建设方案】大数据湖一体化建设方案(ppt原件)
    1、背景:大数据湖的发展背景与建设理念2、体系:大数据湖体系规划与建设思路3、生态圈:探索新兴业务入湖建设模式4、共享:大数据湖统一访问共享规划5、运营:大数据湖一体化运营管理建设(本方案及更多方案原件可获取)获取方式:本文末个人名片直接获取,或者进主页。    ......