大数据面试

为什么有外部表和内部表?区别是什么?

早期也是没有内部表和外部表的说法的,在传统的RDMS数据数据库领域中,如果想要对一个数据库表进行例如增删改查等操作,就需要在数据库引擎中规范建立对应的数据库表,并且把数据导入其中才可以操作。
但是随着行业、大数据组件的不断发展,这种传统的玩法已经不能满足使用了,因此就提出了能不能通过外部表的形式与外界任何形式的数据建立连接。
在hive中,我们只需要通过简单的create external table … location '/xxx/xxx’的sql语句就建立一张外部表,通过location可以指向任何兼容数据的位置。
外部表与内部表不同的是:删除内部表会直接删除元数据(metadata)及存储数据;删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除;对内部表的修改会将修改直接同步给元数据,而对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE table_name)。
因为外部表真正的执行不在数据库引擎中,像一些删除操作、修改操作都是不太好支持的,所以还是具有一定的局限性。目前除了hive,还有clickhouse、doris、starrocks等等工具都支持外部表功能。

spark比mapreduce快的原因是什么?mapreduce就一定比spark慢嘛?

在早期spark还没有出现的时候,是没人觉得mapreduce慢的,直到spark的出现,让众多大数据开发人员眼前一亮,经过统计,某些情况下,spark的处理效率要比mapreduce快100倍。
内存计算:mapreduce在编程模型上,只有简单map和reduce,而且map阶段的所以数据都要写入到磁盘,导致磁盘io开销很大,速度也很慢,而spark是完全基于内存的计算框架,只有当内存溢出的时候,才会写入到磁盘,这减少了磁盘读写操作,提高了计算效率。
DAG调度:Spark使用DAG(Directed Acyclic Graph)调度引擎,可以在内存中构建一个DAG,以避免重复计算和数据复制。而MapReduce使用简单的Map-Shuffle-Reduce模型,不能充分利用资源,导致资源浪费。
数据结构:Spark支持弹性分布式数据集(RDDs),允许对数据进行多次处理,并在多个计算节点之间共享数据。而MapReduce只能处理一次MapReduce操作,并将中间结果写入磁盘,从而导致性能损失。
并行度:Spark的并行度更高,可以将数据分成更小的块进行处理。Spark还可以动态调整并行度,以根据数据的大小和计算节点的数量进行自适应优化。而MapReduce的并行度较低,只能使用固定数量的计算节点进行处理。
同时spark针对大量场景,提供了丰富的算子和api,让开发者使用更加灵活方便。
综上所述,Spark具有更好的性能和灵活性,适用于大规模数据处理和机器学习任务。
但是,spark也并非是一定就比spark慢,当做一个简单的数据转换,且只需要Map操作时,mapreduce的处理效率要比Spark高,因为Spark预处理和启动的成本比较高,MapReduce在处理大规模数据时仍然具有一定的优势,因为它可以处理更大的数据集并具有更高的容错性。

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

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

相关文章

Android Studio字体大小调节

外观页面字体调节 settings->Appearance->User cunstom font 代码字体调节 Settings->Editor->Font此时logcat窗口、Build窗口和Ternimal窗口字体大小也会同步调节(2023.2.1版本上验证)

在 Amazon Bedrock 上使用 Anthropic Claude 系统 Prompt

系统 prompt 是定义生成式 AI 模型对用户输入的响应策略的一种好方法。这篇博文将介绍什么是系统 prompt,以及如何在基于 Anthropic Claude 2.x 和 3 的应用中使用系统 prompt。 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例…

HDFSRPC协议详解

本文主要阐述HDFSRPCserver端一个socket连接接收字节流的构成,帮助读者理解HDFSRPC协议。注意hadoop版本为3.1.1。 写在前面 关于proto写入和读取,使用writeDelimitedTo和read,应该是通用的方式,不作过多的介绍。 处理rpc各种情…

使用 Watt Toolkit (原名 Steam++)加速github访问

这里写自定义目录标题 安装使用可能问题SSL certificate problem 参考 安装 访问 官网下载 下载安装(或解压) 使用 打开 Steam 可执行文件点击网络加速按钮,再选择平台加速选项卡,勾选github项开启加速:点击一键加速按钮关闭加速&#xff…

Electron内调用网页出现 $ is not defined 或者 jQuery is not defined

打包了一个electron应用,引入一个部署好的网页。意外发现,之前在浏览器好好的功能,此刻在electron内部却出现报错: "$ is not defined"\"jQuery is not defined"\ "Luckysheet is not defined" ...…

【测试开发学习历程】压缩、打包与软件安装

目录 一、压缩与打包 (一)概念 (二)压缩命令gzip (三)压缩命令bzip2 (四)打包命令tar (五)压缩命令zip 二、常用的安装软件的方式 (一&am…

《智能便利,畅享便利柜平台的架构奇妙之旅》

便利柜平台作为一种智能化、便捷的自助服务解决方案,正在逐渐走进人们的生活。本篇博客将深入探讨便利柜平台的架构设计理念、优势和实践,帮助读者了解如何构建智能便利柜平台,提供更便捷的自助服务体验。 ### 便利柜平台架构设计 #### 1. …

Java8中Stream流API最佳实践Lambda表达式使用示例

文章目录 一、创建流二、中间操作和收集操作筛选 filter去重distinct截取跳过映射合并多个流是否匹配任一元素:anyMatch是否匹配所有元素:allMatch是否未匹配所有元素:noneMatch获取任一元素findAny获取第一个元素findFirst归约数值流的使用中…

Android 子线程为什么不能更新UI?

Android 应用的 UI 是在主线程上进行绘制和更新的。 当我们在子线程中直接进行 UI 更新时,会导致以下问题: 1. 线程安全问题:多个线程同时操作 UI,可能导致 UI 组件的状态不一致或者出现竞争条件。 2. 卡顿和 ANR:如果…

Redis有没有可能丢数据

Redis在某些情况下有可能会丢失数据。尽管Redis是一个高性能的内存数据库,但是由于其工作方式和特性,存在一些情况下可能导致数据丢失的情况,包括: 内存溢出: 如果Redis实例的内存用尽,而没有足够的空间来处…

数据结构入门篇 之 【双链表】的实现讲解(附完整实现代码及顺序表与线性表的优缺点对比)

一日读书一日功,一日不读十日空 书中自有颜如玉,书中自有黄金屋 一、双链表 1、双链表的结构 2、双链表的实现 1)、双向链表中节点的结构定义 2)、初始化函数 LTInit 3)、尾插函数 LTPushBack 4)、头…

单据分页的实现

单据分页的实现 1. AceWzcgfkjtMaintainProxy.java package nc.ui.jych.wzcgfkjt.ace.serviceproxy;import nc.bs.framework.common.NCLocator; import nc.itf.jych.IWzcgfkjtMaintain; import nc.ui.uif2.components.pagination.IPaginationQueryService; import nc.vo.jych.…

软考高级:信息系统开发方法2(形式化方法、统计过程方法等)概念和例题

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

RTC协议与算法基础 - RTP/RTCP

首先,需要说明下,webrtc的核心音视频传输是通过RTP/RTCP协议实现的,源码位于src/modules/rtp_rtcp目录下: 下面让我们对相关的内容基础进行简要分析与说明: 一、TCP与UDP协议 1.1、TCP协议 TCP为了实现数据传输的可…

【Python】新手入门学习:详细介绍依赖倒置原则(DIP)及其作用、代码示例

【Python】新手入门学习:详细介绍依赖倒置原则(DIP)及其作用、代码示例 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、Py…

如何将.txtpb在IDE中彩色高亮显示

1. 问题描述 文件内容片段如下,它采用了一种键值对的格式,其中还包括了注释。我们可以采用一种近似的语言色彩识别方案处理它,比如YAML或者Python的语法高亮规则,因为这两种语言在处理键值对和注释的表示上与内容片段相似。当然也…

【QT+QGIS跨平台编译】之七十三:【QGIS_Analysis跨平台编译】—【错误处理:字符串错误】

文章目录 一、字符串错误二、处理方法三、涉及到的文件一、字符串错误 常量中有换行符错误:(也有const char * 到 LPCWSTR 转换的错误) 二、处理方法 需要把对应的文档用记事本打开,另存为 “带有BOM的UTF-8” 三、涉及到的文件 涉及到的文件有: src\analysis\processin…

spring boot-操作excel(EasyExcel 快速开始)/ spring boot接受文件参数 File

文章目录 一、spring boot 操作excel1. 技术选型1.1 EasyExcel1.2 POI 二、EasyExcel使用0. 工作中使用总结1. maven 引入2. demo1:excel写入文件3. demo2:SpringBoot项目中集成EasyExcel实现Excel文件的下载response的三个属性:编码、类型、…

gcc -static参数

在使用 GCC(GNU Compiler Collection)编译器编译C语言或C语言程序时,-static 选项告诉编译器生成一个完全静态链接的可执行文件。这就意味着程序需要的所有库在编译时都会被包含在执行文件中,它不会在运行时链接动态库&#xff08…

openssl3.2 - exp - 选择最好的内建椭圆曲线

文章目录 openssl3.2 - exp - 选择最好的内建椭圆曲线概述笔记将 openssl ecparam -list_curves 实现迁移到自己的demo工程备注END openssl3.2 - exp - 选择最好的内建椭圆曲线 概述 在openssl中使用椭圆曲线, 只允许选择椭圆曲线的名字, 无法给定椭圆曲线的位数. 估计每种椭…