大数据面试题

Hadoop 相关试题
1、 hive内部表和外部表的区别
内部表:加载数据到hive所在的hdfs目录,删除时,元数据和数据文件都删除
外部表:不加载数据到hive所在的hdfs目录,删除时,只删除表结构。
2、 hive表关联查询,造成数据倾斜的原因,如何避免?
倾斜原因:
map输出数据按key Hash的分配到reduce中,由于key分布不均匀、业务数据本身的特点、建表时考虑不周、等原因造成的reduce 上的数据量差异过大。
1)、key分布不均匀;
2)、业务数据本身的特性;
3)、建表时考虑不周;
4)、某些SQL语句本身就有数据倾斜;
如何避免: 对于key为空产生的数据倾斜,可以对其赋予一个随机值。
Spark 相关试题
3、 Spark中Work的主要工作是什么?
主要功能:管理当前节点内存,CPU的使用状况,接收master分配过来的资源指令,通过ExecutorRunner启动程序分配任务,worker就类似于包工头,管理分配新进程,做计算的服务,相当于process服务。需要注意的是:1)worker会不会汇报当前信息给master,worker心跳给master主要只有workid,它不会发送资源信息以心跳的方式给mater,master分配的时候就知道work,只有出现故障的时候才会发送资源。2)worker不会运行代码,具体运行的是Executor是可以运行具体appliaction写的业务逻辑代码,操作代码的节点,它不会运行程序的代码。
4、 Spark为什么比mapreduce快?
1)基于内存计算,减少低效的磁盘交互;2)高效的调度算法,基于DAG;3)容错机制Linage,精华部分就是DAG和Lingae。
5、 spark有哪些组件?
主要有如下组件:
1)master:管理集群和节点,不参与计算。
2)worker:计算节点,进程本身不参与计算,和master汇报。
3)Driver:运行程序的main方法,创建spark context对象。
4)spark context:控制整个application的生命周期,包括dagsheduler和task scheduler等组件。
5)client:用户提交程序的入口。
6、 spark工作机制?
用户在client端提交作业后,会由Driver运行main方法并创建spark context上下文。执行add算子,形成dag图输入dagscheduler,按照add之间的依赖关系划分stage输入task scheduler。 task scheduler会将stage划分为task set分发到各个节点的executor中执行。
7、 spark的优化怎么做?
大体可以分为三个方面来进行,1)平台层面的调优:防止不必要的jar包分发,提高数据的本地性,选择高效的存储格式如parquet,2)应用程序层面的调优:过滤操作符的优化降低过多小任务,降低单条记录的资源开销,处理数据倾斜,复用RDD进行缓存,作业并行化执行等等,3)JVM层面的调优:设置合适的资源量,设置合理的JVM,启用高效的序列化方法如kyro,增大off head内存等等
8、 简要描述Spark分布式集群搭建的步骤
1)准备linux环境,设置集群搭建账号和用户组,设置ssh,关闭防火墙,关闭seLinux,配置host,hostname
2)配置jdk到环境变量
3)搭建hadoop集群,如果要做master ha,需要搭建zookeeper集群
修改hdfs-site.xml,hadoop_env.sh,yarn-site.xml,slaves等配置文件
4)启动hadoop集群,启动前要格式化namenode
5)配置spark集群,修改spark-env.xml,slaves等配置文件,拷贝hadoop相关配置到spark conf目录下
6)启动spark集群。
9、 什么是RDD机制?
rdd分布式弹性数据集,简单的理解成一种数据结构,是spark框架上的通用货币。
所有算子都是基于rdd来执行的,不同的场景会有不同的rdd实现类,但是都可以进行互相转换。
rdd执行过程中会形成dag图,然后形成lineage保证容错性等。 从物理的角度来看rdd存储的是block和node之间的映射。
10、 Spark Job默认的调度模式是什么?答:FIFO B FAIR
数据挖掘算法类面试题
1、 什么是数据挖掘(简单描述)。
数据挖掘就是由数据准备,数据挖掘和对结果的解释评估三部分组成。数据准备包括数据选取,数据预处理和数据变化。数据挖掘部分包括确定挖掘的任务或目的,选择挖掘算法。最后将结果可视化或者转化为易于理解的形式。
2、 为什么会产生过拟合,有哪些方法可以预防或克服过拟合?
所谓过拟合(Overfit),是这样一种现象:一个假设在训练数据上能够获得比其他假设更好的拟合,但是在训练数据外的数据集上却不能很好的拟合数据。
过拟合产生的原因:出现这种现象的主要原因是训练数据中存在噪音或者训练数据太少。
解决方法:
1、 增大数据量
2、 减少feature个数(人工定义留多少个feature或者算法选取这些feature)
3、 正则化(留下所有的feature,但对于部分feature定义其parameter非常小)
4、 交叉验证,重采样评价模型效能,K折交叉验证
5、 保留一个验证数据集检验
3、 索引为什么能加快查询速度?
索引的原理:通过不断的缩小想要获得数据的范围来筛选最终想要的结果,同时把随机的事件变成顺序事件,也就是我们总是通过同一种查找方式来锁定数据。
索引的数据结构:B+树
目前大部分数据库系统及文件系统都采用B-Tree和B+Tree作为索引结构。B+树提高了磁盘IO性能和遍历元素的效率
4、 对于抽样有哪些分类?
随机抽样,分层抽样(分块)每一层进行随机抽样,系统抽样(固定规则),整群抽样(先聚类,再抽样)
5、 无监督和有监督算法的区别?分别举例。
监督学习:通过已有的训练样本(即已知数据以及其对应的输出)来训练,从而得到一个最优模型,再利用这个模型将所有新的数据样本映射为相应的输出结果,对输出结果进行简单的判断从而实现分类的目的,那么这个最优模型也就具有了对未知数据进行分类的能力。包括所有的回归算法分类算法,比如线性回归、决策树、KNN、SVM等。
无监督学习:我们事先没有任何训练数据样本,需要直接对数据进行建模发现数据的结构。常见的无监督学习算法有聚类和降维:K-Means 聚类,层次聚类(系统聚类),主成分分析(PCA),奇异值分解(SVD)。
6、 KNN-k近邻分类算法的思想
KNN算法用于分类的核心思想是:存在一个样本数据集合,我们知道样本集中每个数据与其所属分类的关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们只选择样本数据集中前k个最相似的数据,这就是k近邻算法中k的出处(通常k<20)。最后,我们选择k个最相似数据中出现次数最多的分类,作为新数据的分类。
7、 KNN中常用的距离或相似度度量方法
在KNN算法中常使用欧氏距离、曼哈顿距离和夹角余弦来计算距离从而来衡量各个对象之间的非相似度。在实际中使用哪一种衡量方法需要具体情况具体分析。对于关系型数据,常使用欧氏距离;对于文本分类来说,使用夹角余弦来计算相似度就比欧式距离更合适。
8、 什么是逻辑回归?
一、寻找危险因素,如寻找某一疾病的危险因素等
二、 预测,如果建立了logistic回归模型,则可以根据模型,预测不同的自变量情况下,发生某病或某种情况的概率有多大。
三、 判别, 实际上跟预测有些类似,判断某个人属于某病或某种情况的概率有多大。
9、 逻辑回归如何实现?
逻辑回归可以分两步,第一步是线性回归,第二步通过逻辑函数,即sigmoid函数,将线性函数转换为非线性函数。
10、 逻辑回归与支持向量机SVM的区别?

  1. 损失函数不同,损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。SVM的处理方法是考虑支持向量(距离超平面最近的这几个满足 的样本点),逻辑回归通过非线性映射,减小了离分类平面较远的点的权重,相对增加与分类最相关的数据点的权重。
  2. SVM考虑局部(支持向量),而logistic回归考虑全局。
    11、 什么是聚类?
    聚类是指根据一定的准则,把一份事物按照这个准则归纳成互不重合的几份,机器学习中,聚类指按照一个标准,这个标准通常是相似性,把样本分成几份,是得相似程度高的聚在一起,相似程度低的互相分开。
    12、 机器学习中,为什么要对数据做归一化?
    归一化后加快的梯度下降对最优解的速度。
    归一化有可能提高精度。
    13、 归一化的好处?
    归一化加快了梯度下降求解最优解的速度
    归一化还可能会提高精度。
    14、 归一化的种类?
    线性归一化。利用max和min进行归一化,如果max和min不稳定,则常用经验值来替代max和min。
    标准差归一化。利用所有样本的均值和方差将样本归一化为正态分布。
    非线性归一化。比如指数、对数、三角函数等。
    15、归一化和标准化的区别
    标准化是依照特征矩阵的列处理数据,其通过求z-score的方法,将样本的特征值转换到同一量纲下。归一化是依照特征矩阵的行处理数据,其目的在于样本向量在点乘运算或其他核函数计算相似性时,拥有统一的标准,也就是说都转化为“单位向量”。
    对于深度网络而言,归一化的目的是方便比较,可以加快网络的收敛速度;标准化是将数据利用z-score(均值、方差)的方法转化为符合特定分布的数据,方便进行下一步处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值