当前位置:文档之家› spark面试题Miles

spark面试题Miles

spark面试题Miles
spark面试题Miles

spark面试题Miles

13、hadoop和spark的都是并行计算,那么他们有什么相同和区别?

两者都是用mr模型来进行并行计算,hadoop的一个作业称为job,job里面分为map task和reduce task,每个task都是在自己的进程中运行的,当task 结束时,进程也会结束。

spark用户提交的任务成为application,一个application对应一个sparkcontext,app中存在多个job,每触发一次action操作就会产生一个job。

这些job可以并行或串行执行,每个job中有多个stage,每个stage里面有多个task,组成taskset由TaskSchaduler分发到各个executor中执行,executor 的生命周期是和app一样的,即使没有job运行也是存在的,所以task可以快速启动读取内存进行计算。

hadoop的job只有map和reduce操作,表达能力比较欠缺而且在mr过程中会重复的读写hdfs,造成大量的io操作,多个job需要自己管理关系。

spark的迭代计算都是在内存中进行的,API中提供了大量的RDD操作如join,groupby等,而且通过DAG图可以实现良好的容错。

16、简单说一下hadoop和spark的shuffle过程?

hadoop:map端保存分片数据,通过网络收集到reduce端。

spark:spark的shuffle是在DAGSchedular划分Stage的时候产生的,TaskSchedule要分发Stage到各个worker的executor。

减少shuffle可以提高性能。

17、RDD机制?

rdd分布式弹性数据集,简单的理解成一种数据结构,是spark框架上的通用货币。

所有算子都是基于rdd来执行的,不同的场景会有不同的rdd实现类,但是都可以进行互相转换。

rdd执行过程中会形成dag图,然后形成lineage保证容错性等。

从物理的角度来看rdd存储的是block和node之间的映射。

18、spark有哪些组件?

(1)master:管理集群和节点,不参与计算。

(2)worker:计算节点,进程本身不参与计算,和master汇报。

(3)Driver:运行程序的main方法,创建spark context对象。

(4)spark context:控制整个application的生命周期,包括dagsheduler 和task scheduler等组件。

(5)client:用户提交程序的入口。

19、spark工作机制?

用户在client端提交作业后,会由Driver运行main方法并创建spark context

上下文。

执行rdd算子,形成dag图输入dagscheduler,按照rdd之间的依赖关系划分stage输入task scheduler。

task scheduler会将stage划分为task set分发到各个节点的executor中执行。

20、spark的优化怎么做?

通过spark-env文件、程序中sparkconf和set property设置。

(1)计算量大,形成的lineage过大应该给已经缓存了的rdd添加checkpoint,以减少容错带来的开销。

(2)小分区合并,过小的分区造成过多的切换任务开销,使用repartition。

21、kafka工作原理?

producer向broker发送事件,consumer从broker消费事件。

事件由topic区分开,每个consumer都会属于一个group。

相同group中的consumer不能重复消费事件,而同一事件将会发送给每个不同group的consumer。

Scala的特点?Scala是兼容的Scala是简洁的Scala是高层级的Scala是静态类型的

和Java的区别?

(1)scala与java都有7中数值类型:int、short、long、byte、float、double、boolean这7种,但是scala中这7种值类型是类,在java中属于基本类型,java中,数据类型分成基本类型和引用类型,scala中不区分。

(2)scala中的变量或函数的类型总是写在变量或者函数名的后面

(3)scala中的操作符与java中的操作符没有什么不同,但是在scala中,操作符是方法,在java中操作符不是方法,且在scala中,除了字母数字之外的其他特殊字符也可以作为方法

(4)scala中的通配符是_,java中的通配符是*

(5)scala中的unit相当于java中的void

(6)scala中的if/else的表达式与java中的差不多,但是scala中有值(7)scala中没有static,但是可以用object来达到java中相同的效果,scala 中的object可以实现单例对象

.RDD的数据结构是怎么样的?

RDD的全称:弹性分布式数据集合,它是spark的基本数据结构,spark中的所有数据都是通过RDD的形式进行组织。

RDD是不可变的数据集合,不可变的意思是RDD中的每个分区数据是只读的。RDD数据集是要做逻辑分区的(这里的分区类似hadoop中的逻辑切片split),每个分区可以单独在集群节点进行计算。

RDD数据集中的数据类型可以包含任何java类型、scala类型、python类型或者自定义的类型。

RDD擅长的领域:迭代式的数据处理,比如机器学习。

1.分区列表,Partition List。这里的分区概念类似hadoop中的split切片概念,即数据的逻辑切片

2.针对每个split(切片)的计算函数,即同一个RDD 的每个切片的数据使用相同的计算函数

3.对其他rdd的依赖列表

4.可选,如果是(Key,Value)型的RDD,可以带分区类

5.可选,首选块位置列表(hdfs block location);

简要描述Spark分布式集群搭建的步骤

1. 下载Spark的发?行行版

2. 解压缩?文件

3. 设置环境变量量

cd spark-1.6.3-bin-hadoop2.6

export SPARK_HOME=`pwd`

export PATH=${SPARK_HOME}/bin:$PATH

4. 本地运?行行Spark

4.1 运?行行SparkPi

$SPARK_HOME/bin/run-example SparkPi

4.2 运?行行spark-shell

$SPARK_HOME/bin/spark-shell

在提示符中开始运?行行Spark程序

5. 集群模式运?行行Spark

5.1 配置集群模式

cd $SPARK_HOME/conf

vim spark-env.sh

加?入如下内容

HADOOP_CONF_DIR=/home/bigdata/hadoop-2.6.0/etc/hadoop(Hadoop的安装?见参考?文档

5.2 运?行行SparkPi

export MASTER=yarn-client

$SPARK_HOME/bin/run-example SparkPi

export MASTER=yarn-cluster

$SPARK_HOME/bin/run-example SparkPi

5.2 运?行行Spark-shell

$SPARK_HOME/bin/spark-shell --master yarn-client

spark on yarn的两种模式? client 模式?和cluster模式?

yarn-cluster和yarn-client模式的区别其实就是Application Master进程的区别,yarn-cluster模式下,driver运行在AM(Application Master)中,它负责向YARN申请资源,并监督作业的运行状况。当用户提交了作业之后,就可以关掉Client,作业会继续在YARN上运行。

而yarn-client模式下,Application Master仅仅向YARN请求executor,client 会和请求的container通信来调度他们工作,也就是说Client不能离开。

数据倾斜

Spark如何处理非结构化数据?

通过Scala的函数式编程进行基于RDD的非结构化数据处理。

7.快在哪里呢?Spark和Mapreduce快?为什么快呢?快在哪里呢?

1.统一的RDD抽象和操作

2.基于内存的迭代式计算

3.它可以把整个执行过程做一个图,然后进行优化。

8.spark sql又为什么比hive快呢

1.消除了冗余的HDFS读写

2.消除了冗余的MapReduce阶段

3.JVM的优化

RDD的数据结构是怎么样的?

1.一个分片列表 partition list

2.一个计算函数compute,对每一个split进行计算

3.对其他rdd的依赖列表dependencies list.依赖又份宽依赖和窄依赖。

4.partitioner for key-value RDDs.比如说 hash-partitioned rdd(这是

可选的,并不是所有的add都会有这个特征)

5.对每一个split计算的优先位置 Preferred Location。比如对一个hdfs

文件进行计算时,可以获取优先计算的block locations

.Spark工作的一个流程

1.构建Spark Application的运行环境(启动SparkContext),SparkContext 向资源管理器(可以是Standalone、Mesos或YARN)注册并申请运行Executor 资源;

2.资源管理器分配Executor资源,Executor运行情况将随着心跳发送到资源管理器上;

3.SparkContext构建成DAG图,将DAG图分解成Stage,并把Taskset发送给Task Scheduler。Executor向SparkContext申请Task,Task Scheduler将Task 发放给Executor运行同时SparkContext将应用程序代码发放给Executor。

4.Task在Executor上运行,运行完毕释放所有资源。

stage怎么划分的?

划分Stage的一个主要依据是当前计算因子的输入是否是确定的,如果是则将其分在同一个Stage,避免多个Stage之间的消息传递开销

400-820-7975

宽依赖窄依赖是什么?

窄依赖(图左):父partition对子partition是一对一或多对一。

宽依赖(图右):父partition对子partition是一对多。

如果两个RDD在进行join操作时,一个RDD的partition仅仅和另一个RDD 中已知个数的Partition进行join,那么这种类型的join操作就是窄依赖

?7.问了shuffle过程。

?

?Spark的Shuffle总体而言就包含两个基本的过程:Shuffle write和Shuffle read。ShuffleMapTask的整个执行过程就是Shuffle write。将数据根据Hash的结果,将各个Reduce分区的数据写到各自的磁盘文件中,写数据时不做排序操作。

?首先是将map的输出结果送到对应的缓冲区bucket里面,每个bucket 里的文件会被写入本地磁盘文件ShuffleBlockFile中,形成一个FileSegment文件。

?Shuffle read指的是reducer对属于自己的FileSegment文件进行fetch 操作,这里采用的netty框架,fetch操作会等到所有的Shuffle Write 过程结束后再进行,.reducer通过fetch得到的FileSegment先放在缓冲区softBuffer中,默认大小48MB。

?Spark性能优化主要有哪些手段?

?过对Stage/Cache/Partition、资源、内存/GC的优化,

?SPARK优势和劣势

?速度

?其次,Spark是一个灵活的运算框架,适合做批次处理、工作流、交互式分析、流量处理等不同类型的应用,因此Spark也可以成为一个用途广泛的运算引擎,并在未来取代Map/Reduce的地。

?最后,Spark可以与Hadoop生态系统的很多组件互相操作。Spark可以运行在新一代资源管理框架YARN上,它还可以读取已有并存放在Hadoop 上的数据,这是个非常大的优势。

?劣势

?稳定性方面,

?不能处理大数据,

?不能支持复杂的SQL统计;

最全大数据程序员面试题库

最全大数据程序员面试题库 大数据开发面试题库,千锋讲师总结了很多,经过总结学生在面试中遇到的问题,还有讲师多年的经验精心编制。就是要宠千锋学生到底,不仅教授你专业的大数据技术,更要让你从容的面对面试官,在众多的竞争者中脱颖而出。 好了,废话不多说,直接上题库。。。。。。 1.scala 语言有什么特点,什么是函数式编程?有什么优点 2.scala 伴生对象有什么作用 3.scala 并发编程是怎么弄得,你对actor 模型怎么理解有何优点 4.scala case class 有什么重要 5.scala akka 框架有没有接触过,有什么重要 6.scala 为什么设计var 和val 7.SDD,DAG,Stage怎么理解? 8.宽依赖窄依赖怎么理解? 9.Stage是基于什么原理分割task的? 10.血统的概念

11.任务的概念 12.容错方法 13.粗粒度和细粒度 14.Spark优越性 15.Spark为什么快 16.Transformation和action是什么?区别?举几个常用方法 17.SDD怎么理解 18.spark 作业提交流程是怎么样的,client和cluster 有什么区别,各有什么作用 19.spark on yarn 作业执行流程,yarn-client 和yarn cluster 有什么区别 20.spark streamning 工作流程是怎么样的,和storm 比有什么区别 21.spark sql 你使用过没有,在哪个项目里面使用的 22.spark 机器学习和spark 图计算接触过没,,能举例说明你用它做过什么吗? 23.spark sdd 是怎么容错的,基本原理是什么? 大数据时代,中国IT环境也将面临重新洗牌,不仅仅是企业,更是程序员们转型可遇而不可求的机遇。随着互联网时代的迅猛发展,大数据全面融入了现代社会的生产、生活中,并将大大改变全球的经济。大数据,它其实不仅仅是一种技术,更是战略资源。 千锋不仅仅注重学生的专业技能培训,还注重学生的素质培养,开班第一天起,每节课的课前十分钟分享,锻炼学员的沟通表达能力,在工作中减少沟通成

面试十大问题雷区

―So, do you have any questions for me?‖ This common refrain toward the close of a job interview can make even the best of us stammer when the tables are turned. But with the national unemployment rate over 8%, sharp interview skills are more important than ever. ―那么,你有什么想问的吗?‖这个面试结束前最常见的问题能让即使原本处于上风的面试者也顿时变得结结巴巴。在失业率超过8%的当前趋势下,面试技巧的掌握比以往任何时候都具有意义。 Most employers agree that, ―No, I have no questions,‖ is the worst possible response. ―Th e most frustrating thing for a recruiter is when you don‘t have any questions at all,‖ says recruiter Abby Kohut of https://www.doczj.com/doc/506309705.html,. 很多招聘人员都同意―不了,我没什么想问的‖这样的回答是他们认为最糟糕的回复。―对于公司的招聘人员来说,没什么比应聘者毫无疑问更让人沮丧的事情了。‖Absolutely网站的招聘者,Abby Kohut说道。 We asked professional recruiters to brief us on the top ten most common interview questions to scratch off our lists immediately. 我们向专业招聘人员要来了―10个最糟糕的面试提问‖,这些问题应该立马从我们的脑子里删除。 Questions You Should Never Ask in a Job Interview 面试时你永远不要问的那些问题: 1. Anything related to salary or benefits 1.关于薪水和福利的任何事,都不要问 ―Company benefits [and salary negotiations] don‘t come into play until an offer has been extended,‖ says Kohut. The same prin ciple applies to sick time and vacation days. It‘s best to avoid any question that sounds like yo u assume you already have the position–unless, of course, your interviewer brings it up first. ―除非已正式雇佣,否则公司的薪水、福利以及关于薪水的谈判永远都不会展现给应聘者,‖Kohut说道。同样,病假、假期等相关的问题也不能问。除非对方已经暗示你将得到这份工作,否则,不要提出任何以上提到的问题,这会让人觉得你已有胜券在握的感觉。 2. Questions that start with “why?” 2.不要提出任何以“为什么”开头的问题 Why? It‘s a matter of psychology. These kinds of questions put people on the defensive, says Kohut. She advises repositioning a question such as, ―Why did the company lay off people last year?‖ to a less confrontational, ―I read about the layoffs you had. What‘s your opinion on how the company is positioned for the future?‖ 为什么呢?因为这是个心理学问题。以―为什么‖开头的问题会让人变得具有防御意识,Kohut解释道。她建议可以换个方式问问题,比如,把―为什么贵公司去年要裁员?‖的问题巧妙转变成:―我听说去年贵公司裁员了一部分人,请问,您对于公司未来的定位有什么看法?‖ 3. “Who is your competition?” 3.“我的竞争者都有些谁?” This is a great example of a question that could either make you sound thoughtful … or totally backfire and reveal that you d id zero research about the company prior to the interview, says Jacqui Barrett-Poindexter of https://www.doczj.com/doc/506309705.html,. Before asking any question, determine whether it‘s something you could have figured out yourself through a Google search. If it is, a) don‘t ask it and b) do that Google search before your interview! 这个问题是把双刃剑,它也许会让你显得考虑周全…也可能带来出其不意的反效果,让用人单位觉得你根本没有事先做好对公司的研究、也丝毫不重视这次面试——来自CareerTrend网站的Jacqui Barrett-Poindexter说道。在问出任何一个问题前,请先自问:这个问题我能不能自己用google找到答案?如果能,那么,请1)千万别问这个问题2)面试前先用google搜一搜! 4. “How often do reviews occur?” 4.“公司多久对员工进行一次评估?”

腾讯首席工程师测试面试题库

腾讯首席工程师IT大数据技术测试题Spark学习------CentOS环境spark安装[root@spark-master ~]# source /etc/profile 二、hadoop分布式安装与配置 1.安装与配置 把下载的安装包拷贝到服务器上,并解压到安装目录,通常应该对解压出来的文件夹重命名的,便于后面配置,我这里就偷懒直接用解压后的文件名。 然后切换到conf目录下看到有一些模板文件,我们把其中带 spark-env.sh.template 、spark-defaults.conf.template和slaves.template的文件进行复制并重命名(主要是把后面的template后缀去掉),然后修改里面的内容。 #解压安装包到安装目录 [root@spark-master ~]# tar -xvf /opt/spark/spark-2.3.2-bin-hadoop2.7.tgz -C /opt/spark/ [root@spark-master ~]# cd /opt/spark/spark-2.3.2-bin-hadoop2.7/ [root@spark-master spark-2.3.2-bin-hadoop2.7]# cd conf #拷贝slaves和spark-env.sh文件 [root@spark-master conf]# cp slaves.template slaves [root@spark-master conf]# cp spark-env.sh.template spark-env.sh [root@spark-master conf]# vim slaves #修改slaves配置文件如下 spark-slave1 spark-slave2 [root@spark-master conf]# vim spark-env.sh #修改spark-env.sh配置文件如下 export JAVA_HOME=/usr/java/jdk1.8.0_152 export SCALA_HOME=/opt/scala/scala-2.12.7

21个必知数据科学面试题和答案

21个必知数据科学题和答案 2016-03-10分类:其他 最近KDnuggets上发的“20个问题来分辨真假数据科学家”这篇文章非常热门,获得了一月的阅读量排行首位。 但是这些问题并没有提供答案,所以KDnuggets的小编们聚在一起写出了这些问题的答案。我还加了一个特别提问——第21问,是20个问题里没有的。 下面是答案。 Q1.解释什么是正则化,以及它为什么有用。 回答者:Matthew Mayo 正则化是添加一个调优参数的过程模型来引导平滑以防止过拟合。(参加KDnuggets文章《过拟合》) 这通常是通过添加一个常数到现有的权向量。这个常数通常要么是L1(Lasso)要么是L2(ridge),但实际上可以是任何标准。该模型的测算结果的下一步应该是将正则化训练集计算的损失函数的均值最小化。 Xavier Amatriain在这里向那些感兴趣的人清楚的展示了L1和L2正则化之间的比较。 图1.Lp球:p的值减少,相应的L-p空间的大小也会减少。 Q2.你最崇拜哪些数据科学家和创业公司? 回答者:Gregory Piatetsky 这个问题没有标准答案,下面是我个人最崇拜的12名数据科学家,排名不分先后。 Geoff Hinton, Yann LeCun, 和 Yoshua Bengio-因他们对神经网络的坚持不懈的研究,和开启了当前深度学习的革命。 Demis Hassabis,因他在DeepMind的杰出表现——在Atari游戏中实现了人或超人的表现和最近Go的表现。来自datakind的Jake Porway和芝加哥大学DSSG的Rayid Ghani因他们让数据科学对社会产生贡献。 DJ Patil,美国第一首席数据科学家,利用数据科学使美国政府工作效率更高。 Kirk D. Borne,因其在大众传媒中的影响力和领导力。

阿里校园招聘历年经典面试题汇总:算法工程师

阿里校园招聘历年经典面试题汇总:算法工程师 (1)、jvm 原理 (2)、minor GC 与 Full GC (3)、HashMap 实现原理 (4)、java.util.concurrent 包下使用过哪些 (5)、concurrentMap 和 HashMap 区别 (6)、信号量是什么,怎么使用? (7)、阻塞队列了解吗?怎么使用? (8)、JAVA NIO 是什么? (9)、类加载机制是怎样的 (10)、什么是幂等性 (11)、有哪些 JVM 调优经验 (12)、分布式 CAP 了解吗? (13)、hdfs怎么添加Datanode,添加后hdfs会有什么操作? (14)、Hbase 跟关系数据库对比优缺点?为什么 Hbase 索引速度快 (15)、Hbase 大压缩与小压缩区别 (16)、Hive 与 Hbase 的使用场景 (17)、简单说说Spark功能,spark 与hive有无依赖关系? (18)、zookeeper 有什么应用场景,怎么选举的?3 个节点挂掉一个能正常工作吗? (19)、Hbase 中 zookeaper 作用 (20)、Hbase 写操作什么时候返回 (21)、mysql 有哪些存储引擎?各自特点 (22)、用过哪些设计模式?怎样实现线程安全单例模式? (23)、用过哪些RPC框架? (24)、什么是AOP? (25)、决策树算法怎么实现的? (26)、java垃圾回收会出现不可回收的对象吗?怎么解决内存泄露问题?怎么

定位问题源? (27)、终止线程有几种方式?终止线程标记变量为什么是 valotile 类型?(28)、用过哪些并发的数据结构? cyclicBarrier 什么功能?信号量作用?数据库读写阻塞怎么解决? (29)、乐观锁与悲观锁,怎么实现乐观锁? (30)、开发过分布式框架?怎么实现分布式事务? (31)、spark streaming与storm区别? (32)、找到最大子数组的 start,和end下标 (33)、用过 CDH中什么任务调度? (34)、spark streaming时间间隔设置很小会出现什么状况? (35)、搜索引擎了解多少?你认为搜索引擎的难点在哪里? (36)、RPC 了解吗?怎么监控 RPC 状态,找出出现问题的 RPC 连接?(37)、spring 框架了解多少? (38)、flume应用场景 (39)、找出一串字符中第一个不重复字符的下标。 点击查看详细面经〉〉〉〉〉〉〉〉〉〉〉〉 更多精品干货>>>>>>>>>>> 更多阿里机器学习/数据挖掘经典面试题 其他名企机器学习/数据挖掘经典面试题

大数据常见面试题

大数据常见面试题 经历了水深火热的大数据学习,终于拨开云雾见天明了,但你离成功总是还差了一步,那就是拿到大数据工程师的Offer。 在电脑旁奋斗了无数个日夜,代码敲了无数遍,项目整改了无数遍,只为了得到一份自己满意的高薪资高待遇的Offer。但这个收获不仅仅需要你学到娴熟的大数据技术,还需要在面试之前精心准备,了解自己要应聘的企业发展状况、自己应聘岗位的技术要求等等,除此之外,多看一些大数据面试题也是很有必要的,给自己涨涨经验。 千锋小编虽然不能帮你调查你理想企业的发展状况,但大数据常见面试题早已经为你准备好了,需要的尽快收入囊中吧! 1.scala 语言有什么特点,什么是函数式编程?有什么优点 2.scala 伴生对象有什么作用 3.scala 并发编程是怎么弄得,你对actor 模型怎么理解有何优点 4.Spark如何处理结构化数据,Spark如何处理非结构话数据? 5.Spark性能优化主要有哪些手段?

6.对于Spark你觉得他对于现有大数据的现状的优势和劣势在哪里? 7.对于算法是否进行过自主的研究设计? 8.简要描述你了解的一些数据挖掘算法与内容 9.怎么用spark做数据清洗 10.跟我聊聊spark的应用,商场里广告投放,以及黄牛检测 11.spark读取数据,是几个Partition呢?hdfs几个block 就有几个Partition? 12.Mogodb和hbase的区别 13.开发中遇到的问题 14.HIVE的优化 15.linux的启动顺序 16.编译好的scala程序,运行时还需要scala环境吗 17.Write a java program to implement Stack in java. 18.Linkedlist和ArrayList的区别 19.hadoop中combiner的作用 20.用mr设计一个分组排重计数算法 21.用MapReduce找出存在公共好友的两个人 22.hdfs存储机制 23.MapReduce原理 24.hadoop运行原理 25.hadoop 的namenode 宕机,怎么解决 26.Hbase 的特性,以及你怎么去设计rowkey 和columnFamily ,怎么去

32道常见的Kafka面试题及答案

1、K afka都有哪些特点? ?高呑吐量、低延迟:kafka每秒可以处理儿十万条消息,它的延迟最低只声儿毫秒,每个topic可以分多个Partition, COnSIImer group对PartitiOn进行 COnSUme 操作。 ?可扩展性:kafka集群支持热扩展 ?持久性、可幕性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢 ?容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败) ?高并发:支持数千个客户端同时读写 2、请简述下你在哪些场景下会选择Kafka? ?日志收集:一个公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种COnSUmer,例如hadoop> HBaSe> SOIr等。 ?消息系统:解耦和生产者和消费者、缓存消息等。 ?用户活动跟踪:Kafka经常被用来记录Web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka 的topic 中,然后订阅者通过订阅这些topic来做实时的监控分析,或者装载到hadoop>数据仓库中做离线分析和挖掃。 ?运营指标:KJfka也经常用来记录运营监控数据。包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告。 ? 流式处理:比如SPark Streaming和FIink 3、Kafka的设计架构你知道吗?简单架构如下

Kafka 架构分为以下儿个部分 ? PrOdUCer :消息生产者,就是向kafka broker 发消息的客户端。 ? COnSUmer :消息消费者,向kafka broker 取消息的客户端。 ? TOPiC :可以理解为一个队列,一个TOPiC 又分为一个或多个分区, ? COnSUmer Group :这是kafka 用来实现一个topic 消息的广播(发给所有的 COnSUmer )和单播(发给任意一个COnSUmer )的手段。一个topic 可以有多 个 COnSUmer GrOUPo ? BrOker :—台kafka 服务器就是一个broker t > 一个集群由多个broker 组成。 一个broker 可以容纳多个topic o ? Partition :为了实现扩展性,一个非常大的topic 可以分布到多个broker 上, 每个PartitiOn 是一个有序的队列。PartitiOn 中的每条消息都会被分配一个有 序的id (OffSet ) o 将消息发给COnSUmer, kafka 只保证按一个PartitiOn 中的 消息的顺序,不保证一个topic 的整体(多个PartitiOn 间)的顺序。 ?OffSg kafka 的存储文件都是按照Offset.kafka 来命名,用OffSet 做名字的 好处是方便查找。例如你想找位于2049的位置,只要找到2048.kafka 的文 件即可。当然 the first OffSet 就是 OOOOOOOOOOO.kafkao K ㈱架构 KafkaJWli 鵰 BrOke rI TOPiCA TOPiCA r Paftition PartitiOn I Leader Follows Consum 堺8野寵 ! ConSUnlergr ProdUC ZoOkee ^f message to A-I COnSUme message to B ?0 Partib RrOAIC COnSUme messa ge froπ ZOoke eper .≡iSS TOPiC A Parti message ! to A-Γt J RePIiCat)OnAι,0 RePlCatio

E n i g m a 算 法 详 解

成为专业程序员路上用到的各种优秀资料、神器及框架 本文是鄙人工作这几年随手收集整理的一些自认为还不错的资料,成长的道理上需要积累,这么长时间了,是时候放出来分享下了,或许能帮助到你。 欢迎点赞,让更多人看到,让福利普照。 因为本文以后不会更新,但项目依旧会更新。 所以,更好的做法是,请到GitHub上Star:stanzhai-be-a-professional-programmer 成为一名专业程序员的道路上,需要坚持练习、学习与积累,技术方面既要有一定的广度,更要有自己的深度。 笔者作为一位tool mad,将工作以来用到的各种优秀资料、神器及框架整理在此,毕竟好记性不如烂键盘,此项目可以作为自己的不时之需。 本人喜欢折腾,记录的东西也比较杂,各方面都会有一些,内容按重要等级排序,大家各取所需。 这里的东西会持续积累下去,欢迎Star,也欢迎发PR给我。 技术站点必看书籍大牛博客GitHub篇工具篇 平台工具常用工具第三方服务爬虫相关(好玩的工具)安全相关Web服务器性能-压力测试工具-负载均衡器大数据处理-数据分析-分布式工具Web前端语言篇 https://www.doczj.com/doc/506309705.html,C 游戏开发相关日志聚合,分布式日志收集RTP,实时传输协议与音视频

技术站点 在线学习:Coursera、edX、Udacity?- way to explore国内老牌技术社区:OSChina、博客园、CSDN、51CTO 免费的it电子书:IT eBooks - Free Download - Big Library在线学习:Udemy Crowd-sourced code mentorship. and Practice coding with fun programming challenges - CodinGameDevStore:开发者服务商店MSDN:微软相关的官方技术集中地,主要是文档类必看书籍 SICP(Structure and Interpretation of Computer Programs)深入理解计算机系统代码大全2人件人月神话软件随想录算法导论(麻省理工学院出版社)离散数学及其应用设计模式编程之美黑客与画家编程珠玑The Little SchemerSimply Scheme_Introducing_Computer_ScienceC++ PrimeEffective C++TCP-IP详解Unix 编程艺术技术的本质软件随想录计算机程序设计艺术职业篇:程序员的自我修养,程序员修炼之道,高效能程序员的修炼《精神分析引论》弗洛伊德《失控》《科技想要什么》《技术元素》凯文凯利程序开发心理学天地一沙鸥搞定:无压力工作的艺术大牛博客 云风(游戏界大牛): 云风的 Tian (binghe)R大【干货满满】RednaxelaFX写的文章-回答的导航帖陈皓-左耳朵耗子:酷

史上最全的spark面试题

史上最全的spark面试题——持续更新中 - 为了九亿少女的期待 - CSDN博客 1.spark中的RDD是什么,有哪些特性? 答:RDD(Resilient Distributed Dataset)叫做分布式数据集,是spark中最基本的数据抽象,它代表一个不可变,可分区,里面的元素可以并行计算的集合 Dataset:就是一个集合,用于存放数据的 Destributed:分布式,可以并行在集群计算 Resilient:表示弹性的,弹性表示 1.RDD中的数据可以存储在内存或者磁盘中; 2.RDD中的分区是可以改变的; 五大特性: 1.A list of partitions:一个分区列表,RDD中的数据都存储在一个分区列表中 2.A function for computing each split:作用在每一个分区中的函数 3.A list of dependencies on other RDDs:一个RDD依赖于其他多个RDD,这个点很重要,RDD的容错机制就是依据这个特性而来的 4.Optionally,a Partitioner for key-value RDDs(eg:to say that the RDD is hash-partitioned):可选的,针对于kv类型的RDD才有这个特性,作用是决定了数据的来源以及数据处理后的去向 5.可选项,数据本地性,数据位置最优 2.概述一下spark中的常用算子区别 (map,mapPartitions,foreach,foreachPatition) 答:map:用于遍历RDD,将函数应用于每一个元素,返回新的 RDD(transformation算子) foreach:用于遍历RDD,将函数应用于每一个元素,无返回值(action算子)mapPatitions:用于遍历操作RDD中的每一个分区,返回生成一个新的 RDD(transformation算子) foreachPatition:用于遍历操作RDD中的每一个分区,无返回值(action算子) 总结:一般使用mapPatitions和foreachPatition算子比map和foreach更加高效,推荐

2019最新BAT大数据面试题

1、kafka的message包括哪些信息 一个Kafka的Message由一个固定长度的header和一个变长的消息体body组成header部分由一个字节的magic(文件格式)和四个字节的CRC32(用于判断body消息体 是否正常)构成。当magic的值为1的时候,会在magic和crc32之间多一个字节的数据:attributes(保存一些相关属性,比如是否压缩、压缩格式等等);如果magic的值为0,那么不存在attributes属性 body是由N个字节构成的一个消息体,包含了具体的key/value消息 2、怎么查看kafka的offset 0.9版本以上,可以用最新的Consumer client 客户端,有consumer.seekToEnd() / c onsumer.position() 可以用于得到当前最新的offset: 3、hadoop的shuffle过程 一、Map端的shuffle Map端会处理输入数据并产生中间结果,这个中间结果会写到本地磁盘,而不是HDFS。每个Map的输出会先写到内存缓冲区中,当写入的数据达到设定的阈值时,系统将会启动一个线程将缓冲区的数据写到磁盘,这个过程叫做spill。 在spill写入之前,会先进行二次排序,首先根据数据所属的partition进行排序,然后每个partition中的数据再按key来排序。partition的目是将记录划分到不同的Reducer 上去,以期望能够达到负载均衡,以后的Reducer就会根据partition来读取自己对应的数据。接着运行combiner(如果设置了的话),combiner的本质也是一个Reducer,其目的是对将要写入到磁盘上的文件先进行一次处理,这样,写入到磁盘的数据量就会减少。最后

spark面试题Miles

spark面试题Miles

13、hadoop和spark的都是并行计算,那么他们有什么相同和区别? 两者都是用mr模型来进行并行计算,hadoop的一个作业称为job,job里面分为map task和reduce task,每个task都是在自己的进程中运行的,当task 结束时,进程也会结束。 spark用户提交的任务成为application,一个application对应一个sparkcontext,app中存在多个job,每触发一次action操作就会产生一个job。 这些job可以并行或串行执行,每个job中有多个stage,每个stage里面有多个task,组成taskset由TaskSchaduler分发到各个executor中执行,executor 的生命周期是和app一样的,即使没有job运行也是存在的,所以task可以快速启动读取内存进行计算。 hadoop的job只有map和reduce操作,表达能力比较欠缺而且在mr过程中会重复的读写hdfs,造成大量的io操作,多个job需要自己管理关系。 spark的迭代计算都是在内存中进行的,API中提供了大量的RDD操作如join,groupby等,而且通过DAG图可以实现良好的容错。 16、简单说一下hadoop和spark的shuffle过程? hadoop:map端保存分片数据,通过网络收集到reduce端。 spark:spark的shuffle是在DAGSchedular划分Stage的时候产生的,TaskSchedule要分发Stage到各个worker的executor。 减少shuffle可以提高性能。 17、RDD机制? rdd分布式弹性数据集,简单的理解成一种数据结构,是spark框架上的通用货币。 所有算子都是基于rdd来执行的,不同的场景会有不同的rdd实现类,但是都可以进行互相转换。 rdd执行过程中会形成dag图,然后形成lineage保证容错性等。 从物理的角度来看rdd存储的是block和node之间的映射。 18、spark有哪些组件? (1)master:管理集群和节点,不参与计算。 (2)worker:计算节点,进程本身不参与计算,和master汇报。 (3)Driver:运行程序的main方法,创建spark context对象。 (4)spark context:控制整个application的生命周期,包括dagsheduler 和task scheduler等组件。 (5)client:用户提交程序的入口。 19、spark工作机制? 用户在client端提交作业后,会由Driver运行main方法并创建spark context

数据分析面试题及答案

数据分析面试题及答案 linux的启动顺序 通电后读取ROM的BIOS程序进行硬件自检,自检成功后把计算机控制权交给BIOS中BOOTsequence中的下一个有效设备,读取该设备MBR找到操作系统,载入linux的bootloader,一般是grub。之后载入kernel,执行/etc/rc.d/sysinit ,开启其他组件(/etc/modules.conf),执行运行级别,执行/etc/rc.d/rc.local ,执行/bin/login,最后shell启动。 使用过的开源框架介绍 Struts2 Spring hibernate mybatis hadoop hive hbase flume sqoop Zookeeper Mahout Kafka Storm Spark

擅长哪种技术 Hadoop。介绍 HIVE的优化 底层是MapReduce,所以又可以说是MapReduce优化。 小文件都合并成大文件 Reducer数量在代码中介于节点数*reduceT ask的最大数量的0.95倍到1.75倍 写一个UDF函数,在建表的时候制定好分区 配置文件中,打开在map端的合并 开发中遇到的问题 Hbase节点运行很慢,发现是Hfile过小,hbase频繁split。 修改了hfile大小。或者设置major compack设置为手动 Major compack设置为手动会出现什么问题 ? Zookeeper的二次开发 Flume 的实时和定时数据采集,项目和flume的解耦 Mogodb和hbase的区别 Mogodb是单机 Hbase是分布式?? 项目组多少人?人员分配?数据量?集群的配置?

大数据面试题

12. MyISAM 和InnoDB 存储引擎的区别 11. 事务的隔离机制,mysql 默认是哪一级 10. 主键和唯一索引的区别 9. Mysql 查询优化? 8. 为啥mysql 索引要用B+树而MongoDB 用B 树? 哪些支持hash 索引? 7. mysql 索引,哪些索引?实现原理?哪些存储引擎支持B 树索引, 6. 数据倾斜 哪些能正常工作,读写数据?region 分裂? 5. hbase 的ha ,zookeeper 在其中的作用,master 宕机的时候, 4. hbase master 和regionserver 的交互 3. hbase 读数据过程 2. hbase 和传统数据库的区别 1. mapreduce 过程 大数据面试题

23. spark 运行原理,从提交一个jar 到最后返回结果,整个过程 22. spark 运行架构 QJM 中用到的分布式一致性算法(就是paxos 算法) 21. hadoop namenode 的ha ,主备切换实现原理,日志同步原理, 使用场景 20. paxos 协议,multi-paxos ,zab ,raft 各种分布式协议内容, 19. zookeeper 实现原理,zab 协议以及原子广播协议 量排序 18. 用mapreduce 实现一个存储kv 数据的文件,对里面的v 进行全 17. 用mapreduce 实现两表join 16. mapreduce 实现二次排序 semi join 你可以通过什么算法去优化? 15. mapreduce 支持哪些join ,map 端?reduce 端?semi join ? 锁,表锁是怎么实现的? 14. mysql 中的各种锁,乐观锁,悲观锁(排他锁,共享锁);行 13. mysql 查询优化,慢查询怎么去定位?

CDA数据分析师认证考试

CDA数据分析师认证考试 一、行业背景: 这是一个用数据说话的时代,也是一个依靠数据竞争的时代。麦肯锡公司的研究预测称,到2018年,在“具有深入分析能力的人才”方面,美国可能面临着14万到19万的缺口,而“可以利用大数据分析来做出有效决策的经理和分析师”缺口则会达到150万。数据科学家将成为2017年最热门的职业。作为一个数学和统计学的强国,数据分析、数据挖掘和大数据价值挖掘在中国仍属于朝阳行业,数据分析人才仍然比较稀缺。数据积累越来越多,期待解决分析的数据问题也越来越多,人们逐渐习惯的使用数据作为决策的重要参考依据。据艾瑞的研究报告,未来与数据分析相关的就业岗位会在1000万左右,而目前来说国内的合格的数据分析师不足5万,建立一个科学有效的数据分析师培训体系迫在眉睫。 在这样一个以数据驱动的时代,在社会缺少专业系统的人才培养与认证机制的时代,CDA数据分析师应运而生。美国注册数据分析师协会(CERTIFIED DATA ANALYST INSTITUTE)推出CDA数据分析师LEVELⅠⅡⅢ资格标准,经管之家为中国区CDA数据分析师认证考试主办机构,并根据标准制定了规范的人才培养与考试认证机制。 二、CDA数据分析师简介: CDA(Certified Data Analyst),亦称“CDA数据分析师”,指在互联网、零售、金融、电信、医学、旅游等行业专门从事数据的采集、清洗、处理、分析并能制作业务报告、提供决策的新型数据分析人才。CDA 秉承着总结凝练最先进的商业数据分析实践为使命,明晰各类数据分析从业者的知识体系为职责,旨在加强全球范围内正规化、科学化、专业化的大数据及数据分析人才队伍建设,进一步提升数据分析师的职业素养与能力水平,促进数据分析行业的高质量持续快速发展。“CDA数据分析师认证”是一套专业化,科学化,国际化,系统化的人才考核标准,分为CDA LEVELⅠ,LEVEL Ⅱ,LEVEL Ⅲ,涉及金融、电商、医疗、互联网、电信等行业大数据及数据分析从业者所需要具备的技能,符合当今全球大 页脚内容1

史上最全的大数据面试题,大数据开发者必看

【某公司笔试面试题】 1\使用mr,spark ,spark sql编写word count程序 【Spark 版本】 val conf=new SparkConf().setAppName("wd").setMaster("local[1]") val sc=new SparkContext(conf,2) //加载 val lines=sc.textFile("tructField("name",DataTypes.StringType,true)") val paris=lines.flatMap(line=>line.split("^A")) val words=paris.map((_,1)) val result=words.reduceByKey(_+_).sortBy(x=>x._1,false) //打印 result.foreach( wds=>{ println("单词:"+wds._1+" 个数:"+wds._2) } ) sc.stop() 【spark sql版本】 val conf=new SparkConf().setAppName("sqlWd").setMaster("local[1]") val sc=new SparkContext(conf) val sqlContext=new SQLContext(sc) //加载 val lines=sqlContext.textFile("E:\idea15\createRecommeder\data\words.txt") val words=lines.flatMap(x=>x.split(" ")).map(y=>Row(y)) val structType=StructType(Array(StructField("name",DataTypes.StringType,true))) val df=sqlContext.createDataFrame(rows,structType) df.registerTempTable("t_word_count") sqlContext.udf.register("num_word",(name:String)=>1) sqlContext.sql("select name,num_word(name) from t_word_count").groupBy(df.col("name")).count().show() sc.stop() 2\hive的使用,内外部表的区别,分区作用,UDF和Hive优化 (1)hive使用:仓库、工具

阿里首席工程师测试面试题库

阿里首席工程师IT大数据技术测试题Spark学习------CentOS环境spark安装[root@spark-master ~]# source /etc/profile 二、hadoop分布式安装与配置 1.安装与配置 把下载的安装包拷贝到服务器上,并解压到安装目录,通常应该对解压出来的文件夹重命名的,便于后面配置,我这里就偷懒直接用解压后的文件名。 然后切换到conf目录下看到有一些模板文件,我们把其中带 spark-env.sh.template 、spark-defaults.conf.template和slaves.template的文件进行复制并重命名(主要是把后面的template后缀去掉),然后修改里面的内容。 #解压安装包到安装目录 [root@spark-master ~]# tar -xvf /opt/spark/spark-2.3.2-bin-hadoop2.7.tgz -C /opt/spark/ [root@spark-master ~]# cd /opt/spark/spark-2.3.2-bin-hadoop2.7/ [root@spark-master spark-2.3.2-bin-hadoop2.7]# cd conf #拷贝slaves和spark-env.sh文件 [root@spark-master conf]# cp slaves.template slaves [root@spark-master conf]# cp spark-env.sh.template spark-env.sh [root@spark-master conf]# vim slaves #修改slaves配置文件如下 spark-slave1 spark-slave2 [root@spark-master conf]# vim spark-env.sh #修改spark-env.sh配置文件如下 export JAVA_HOME=/usr/java/jdk1.8.0_152 export SCALA_HOME=/opt/scala/scala-2.12.7

大数据开发面试题库

大数据开发面试题库 大数据开发面试题库,千锋讲师总结了很多,经过总结学生在面试中遇到的问题,还有讲师多年的经验精心编制。就是要宠千锋学生到底,不仅教授你专业的大数据技术,更要让你从容的面对面试官,在众多的竞争者中脱颖而出。 好了,废话不多说,直接上题库。。。。。。 1.scala 语言有什么特点,什么是函数式编程?有什么优点 2.scala 伴生对象有什么作用 3.scala 并发编程是怎么弄得,你对actor 模型怎么理解有何优点 4.scala case class 有什么重要 5.scala akka 框架有没有接触过,有什么重要 6.scala 为什么设计var 和val 7.SDD,DAG,Stage怎么理解? 8.宽依赖窄依赖怎么理解? 9.Stage是基于什么原理分割task的? 10.血统的概念 11.任务的概念

12.容错方法 13.粗粒度和细粒度 14.Spark优越性 15.Spark为什么快 16.Transformation和action是什么?区别?举几个常用方法 17.SDD怎么理解 18.spark 作业提交流程是怎么样的,client和cluster 有什么区别,各有什么作用 19.spark on yarn 作业执行流程,yarn-client 和yarn cluster 有什么区别 20.spark streamning 工作流程是怎么样的,和storm 比有什么区别 21.spark sql 你使用过没有,在哪个项目里面使用的 22.spark 机器学习和spark 图计算接触过没,,能举例说明你用它做过什么吗? 23.spark sdd 是怎么容错的,基本原理是什么? 大数据时代,中国IT环境也将面临重新洗牌,不仅仅是企业,更是程序员们转型可遇而不可求的机遇。随着互联网时代的迅猛发展,大数据全面融入了现代社会的生产、生活中,并将大大改变全球的经济。大数据,它其实不仅仅是一种技术,更是战略资源。 千锋不仅仅注重学生的专业技能培训,还注重学生的素质培养,开班第一天起,每节课的课前十分钟分享,锻炼学员的沟通表达能力,在工作中减少沟通成本即是提高工作效率。加上毕业前的就业指导课和专业的素质培养课,帮你规划

相关主题
文本预览
相关文档 最新文档