还剩11页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
面试笔试题目及参考答案20xxlT20xx年前端面试题目
1.
1、前端MV框架的意义早期前端都是比较简洁,基本以页面为工作单元,内容以阅读型为主,也间或有简洁的表单操作,基本不太须要框架随着AJAX的出现,Web
2.0的兴起,人们可以在页面上可以做比较困难的事情了,然后前端框架才真正出现了假如是页面型产品,多数的确不太须要它,因为页面中的JavaScript代码,处理交互的确定远远超过处理模型的,但是假如是应用软件类产品,这就太须要了长期做某个行业软件的公司,一般都会沉淀下来一些业务组件,主要体现在数据模型、业务规则和业务流程,这些组件基本都存在于后端,在前端很少有相应的组织从协作关系上讲,很多前端开发团队每个成员的职责不是很清晰,有了前端的MV框架,这个状况会大有改观之所以感受不到MV框架的重要性,是因为Model部分代码较少,View的相对多一些假如主要在操作View和Controller,那当然jQuery这类库比较好用了参考《前端MV框架的意义》实现方法很简洁选取一个小表,假设是Filel,将其参加join的key抽取出来,保存到文件File3中,File3文件一般很小,可以放到内存中在map阶段,运用DistributedCache将File3复制到各个TaskTracker上,然后将File2中不在File3中的key对应的记录过滤掉,剩下的reduce阶段的工作与reduceside join相同
4、reduce sidejoin+BloomFilter在某些状况下,SemiJoin抽取出来的小表的key集合在内存中照旧存放不下,这时候可以运用BloomFiler以节约空间BloomFilter最常见的作用是推断某个元素是否在一个集合里面它最重要的两个方法是add和contains最大的特点是不会存在falsenegative,即假如contains返回false,则该元素确定不在集合中,但会存在确定的true negative,即假如contains返回true,则该元素可能在集合中因而可将小表中的key保存到BloomFilter中,在map阶段过滤大表,可能有一些不在小表中的记录没有过滤掉但是在小表中的记录确定不会过滤掉,这没关系,只不过增加了少量的网络10而已ActiveMQ面试题及答案1什么是ActiveMQactiveMQ是一种开源的,实现了JMS
1.1规范的,面对消息M0M的中间件,为应用程序供应高效的、可扩展的、稳定的和平安的企业级消息通信
2、Activemq的瓶颈值依据网上一般评测文档上来看,每秒的消息吞吐在2000以上,acticemq也可以集群化部署,也是运用zookeeper■来搭建
3、ActiveMQ服务器宕机怎么办?这得从ActiveMQ的储存机制说起在通常的状况下,非许久化消息是存储在内存中的,许久化消息是存储在文件中的,它们的最大限制在配置文件的节点中配置但是,在非许久化消息积累到确定程度,内存告急的时候,ActiveMQ会将内存中的非许久化消息写入临时文件中,以腾出内存虽然都保存到了文件里,但它和许久化消息的区分是,重启后许久化消息会从文件中复原,非许久化的临时文件会干脆删除那假如文件增大到达了配置中的最大限制的时候会发生什么?我做了以下试验设置2G左右的许久化文件限制,大量生产许久化消息直到文件达到最大限制,此时生产者堵塞,但消费者可正常连接并消费消息,等消息消费掉一部分,文件删除又腾出空间之后,生产者又可接着发送消息,服务自动复原正常设置2G左右的临时文件限制,大量生产非许久化消息并写入临时文件,在达到最大限制时,生产者堵塞,消费者可正常连接但不能消费消息,或者原本慢速消费的消费者,消费突然停止整个系统可连接,但是无法供应服务,就这样挂了具体缘由不详,解决方案尽量不要用非许久化消息,非要用的话,将临时文件限制尽可能的调大
4、AcitveMQ的作用、原理(生产者、消费者p2p、订阅实现流程)Activemq的作用就是系统之间进行通信当然可以运用其他方式进行系统间通信,假如运用Activemq的话可以对系统之间的调用进行解耦,实现系统间的异步通信原理就是生产者生产消息,把消息发送给activemqActivemq接收到消息,然后查看有多少个消费者,然后把消息转发给消费者,此过程中生产者无需参加消费者接收到消息后做相应的处理和生产者没有任何关系
5、activemq在项目中如何应用的Activemq在项目中主要是完成系统之间通信,并且将系统之间的调用进行解耦例如在添加、修改商品信息后,须要将商品信息同步到索引库、同步缓存中的数据以及生成静态页面一系列操作在此场景下就可以运用activemqo一旦后台对商品信息进行修改后,就向activemq发送一条消息,然后通过activemq将消息发送给消息的消费端,消费端接收到消息可以进行相应的业务处理
7、rabbitmq如何实现集群高可用?集群是保证服务牢靠性的一种方式,同时可以通过水平扩展以提升消息吞吐实力RabbitMQ是用分布式程序设计语言erlang开发的,所以天生就支持集群接下来,将介绍RabbitMQ分布式消息处理方式、集群模式、节点类型,并动手搭建一个高可用集群环境,最终通过java程序来验证集群的高可用性RabbitMQ分布式的消息处理方式有以下三种lClustering不支持跨网段,各节点需运行同版本的Erlang和RabbitMQ,应用于同网段局域网2Federation允许单台服务器上的Exchange或Queue接收发布到另一台服务器上Exchange或Queue的消息,应用于广域网3Shovel与Federation类似,但工作在更低层次RabbitMQ对网络延迟很敏感,在LAN环境建议运用clustering方式;在WAN环境中,则运用Federation或Shovel我们平常说的RabbitMQ集o群,说的就是clustering方式,它是RabbitMQ内嵌的一种消息处理方式,而Federation或Shovel则是以plugin形式存在
1.
2、请简述盒模型IE6盒子模型与W3C盒子模型文档中的每个元素被描绘为矩形盒子盒子有四个边界外边距边界margin,边框边界bder,内边距边界padding与内容边界contentCSS3中有个box-sizing属性可以限制盒子的计算方式,content-box padding和bder不被包含在定义的width和height之内对象的实际宽度等于设置的width值和bder padding之和(W3C盒子模型)bder-box padding和bder被包含在定义的width和height之内(对象的实际宽度就等于设置的width值IE6盒子模型)参考《盒模型》
1.
3、请你谈谈Cookie的弊端a.每个特定的域名下最多生成的cookie个数有限制b.IE和Opera会清理近期最少运用的cookie,Firefox会随机清理cookiec.cookie的最大大约为4096字节,为了兼容性,一般不能超过4095字节d.平安性问题假如cookie被人拦截了,那人就可以取得全部的session信息
1.
4、阅读器本地存储在HTML5中供应了sessionstage和localStageosessionstage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁,是会话级别的存储localstage用于许久化的本地存储,除非主动删除数据,否则数据是恒久不会过期的
1.
5、web stage和cookie的区分a.Cookie的大小是受限的b.每次你请求一个新的页面的时候Cookie都会被发送过去,这样无形中奢侈了带宽c.cookie还须要指定作用域,不行以跨域调用d.Web Stage拥有setitem,getltem等方法,cookie须要前端开发者自己封装setCookie,getCookiee.Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在,而Web Stage仅仅是为了在本地“存储〃数据而生f.IE
7、IE6中的UserData通过简洁的代码封装可以统一到全部的阅读器都支持web stage
6.
6、对BFC规范的理解BFC全称是Block FmattingContext,即块格式化上下文它是CSS
2.1规范定义的,关于CSS渲染定位的一个概念BFC是页面CSS视觉渲染的一部分,用于确定块盒子的布局及浮动相互影响范围的一个区域BFC的一个最重要的效果是,让处于BFC内部的元素与外部的元素相互隔离,使内外元素的定位不会相互影响利用BFC可以闭合浮动,防止与浮动元素重叠参考《Learning BFC》
6.
7、线程与进程的区分a.一个程序至少有一个进程,一个进程至少有一个线程b.线程的划分尺度小于进程,使得多线程程序的并发性高c.进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率d.每个独立的线程有一个程序运行的入口、依次执行序列和程序的出口但是线程不能够独立执行,必需依存在应用程序中,由应用程序供应多个线程执行限制e.多线程的意义在于一个应用程序中,有多个执行部分可以同时执行但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源支配
6.
8、你都运用哪些工具来测试代码的性能?JSPerf,Dromaeo
6.
9、你遇到过比较难的技术问题是你是如何解决的?
6.
10、常运用的库有哪些常用的前端开发工具开发过什么应用或组件?Hadoop面试题及答案
一、什么是HadoopHadoop是一个开源软件框架,用于存储大量数据,并发处理/查询在具有多个商用硬件(即低成本硬件)节点的集群上的那些数据总之,Hadoop包括以下内容:HDFS(Hadoop DistributedFile System,Hadoop分布式文件系统)HDFS允许你以一种分布式和冗余的方式存储大量数据例如,1GB(即1024MB)文本文件可以拆分为16_128MB文件,并存储在Hadoop集群中的8个不同节点上每个分裂可以复制3次,以实现容错,以便假如1个节点故障的话,也有备份HDFS适用于依次的〃一次写入、多次读取〃的类型访问MapReduce一个计算框架它以分布式和并行的方式处理大量的数据当你对全部年龄18的用户在上述1GB文件上执行查询时,将会有8个映射〃函数并行运行,以在其128MB拆分文件中提取年龄18的用户,然后reduce〃函数将运行以将全部单独的输出组合成单个最终结果YARN(Yet AnotherResource Nagotiator,又一资源定位器)用于作业调度和集群资源管理的框架Hadoop生态系统,拥有15多种框架和工具,如Sqoop,Flume,Kafka,Pig,Hive,Spark,Impala等,以便将数据摄入HDFS,在HDFS中转移数据(即变换,丰富,聚合等),并查询来自HDFS的数据用于商业智能和分析某些工具(如Pig和Hive)是MapReduce上的抽象层,而Spark和Impala等其他工具则是来自MapReduce的改进架构/设计,用于显著提高的延迟以支持近实时(即NRT)和实时处理
二、基于Hadoop的数据中心的好处是什么?随着数据量和困难性的增加,提高了整体SLA(即服务水平协议)例如,Shared Nothing〃架构,并行处理,内存密集型处理框架,如Spark和Impala,以及YARN容量调度程序中的资源抢占
1、缩放数据仓库可能会很昂贵添加额外的高端硬件容量以及获得数据仓库工具的许可证可能会显著增加成本基于Hadoop的解决方案不仅在商品硬件节点和开源工具方面更便宜,而且还可以通过将数据转换卸载到Hadoop工具(如Spark和Impala)来补足数据仓库解决方案,从而更高效地并行处理大数据这也将释放数据仓库资源
2、探究新的渠道和线索Hadoop可以为数据科学家供应探究性的沙盒,以从社交媒体,日志文件,电子邮件等地方发觉潜在的有价值的数据,这些数据通常在数据仓库中不行得
3、更好的灵敏性通常业务需求的变更,也须要对架构和报告进行更改基于Hadoop的解决方案不仅可以灵敏地处理不断进展的模式,还可以处理来自不同来源,如社交媒体,应用程序日志文件,image,PDF和文档文件的半结构化和非结构化数据
四、简洁描述如何安装配置一个apache开源版hadoop,只描述即可,无需列出完整步骤,能列出步骤更好1>安装JDK并配置环境变量(/etc/profi⑹;
2、关闭防火墙;
3、配置hosts文件,便利hadoop通过主机名访问(/etc/hosts);
4、设置ssh免密码登录;
5、解压缩hadoop安装包,并配置环境变量;
6、修改配置文件$HADOOP_HOME/conf;hadoop-env.sh core-site.xmlhdfs-site.xml mapred-site.xml;
7、格式化hdfs文件系统hadoop namenode-format;
8、启动hadoop$HADOOP_HOME/bin/start-all.sh;
9、运用jps查看进程
五、请列出正常工作的hadoop集群中hadoop都分别须要启动那些进程,他们的作用分别是什么,尽可能写的全面些
1、NameNode:HDFS的守护进程,负责记录文件是如何分割成数据块,以及这些数据块分别被存储到那些数据节点上,它的主要功能是对内存及10进行集中管理
2、Secondary NameNode帮助后台程序,与NameNode进行通信,以便定期保存HDFS元数据的快照
3、DataNode负责把HDFS数据块读写到本地的文件系统
4、JobTracker负责支配task,并监控全部运行的task5TaskTracker负责执行具体的task,并与JobTracker进行交互
六、请列出你所知道的hadoop调度器,并简要说明其工作方法比较流行的三种调度器有默认调度器FIFO,计算实力调度器CapacityScheduler,公允调度器Fair Scheduler
1、默认调度器FIFO hadoop中默认的调度器,接受先进先出的原则
2、计算实力调度器Capacity Scheduler选择占用资源小,优先级高的先执行
3、公允调度器Fair Scheduler同一队列中的作业公允共享队列中全部资源
七、Hive有那些方式保存元数据的,各有那些特点
1、内存数据库derby,较小,不常用;
2、本地mysql,较常用;
3、远程mysql,不常用
八、简述hadoop实现Join的几种方法1reduce sidejoinreduce sidejoin是一种最简洁的join方式,其主要思想如下在map阶段,map函数同时读取两个文件Filel和File2,为了区分两种来源的key/value数据对,对每条数据打一个标签tag,比如tag=0表示来自文件Filel,tag=2表示来自文件File2即map阶段的主要任务是对不同文件中的数据打标签在reduce阶段,reduce函数获得key相同的来自Filel和File2文件的value list,然后对于同一个key,对Filel和File2中的数据进行join笛卡尔乘积即reduce阶段进行实际的连接操作
2、map sidejoin之所以存在reduce sidejoin,是因为在map阶段不能获得全部须要的join字段,即同一个key对应的字段可能位于不同map中Reduce sidejoin是特殊低效的,因为shuffle阶段要进行大量的数据传输Map sidejoin是针对以下场景进行的优化两个待连接表中,有一个表特殊大,而另一个表特殊小,以至于小表可以干脆存放到内存中这样,我们可以将小表复制多份,让每个map task内存中存在一份(比如存放到hash table中),然后只扫描大表对于大表中的每一条记录key/value,在hash table中查找是否有相同的key的记录,假如有,则连接后输出即可为了支持文件的复制,Hadoop供应了一个类DistributedCache,运用该类的方法如下⑴用户运用静态方法DistributedCache.addCacheFile指定要复制的文件,它的参数是文件的URI(假如是HDFS上的文件,可以这样hdfs://namenode:9000/home/_X/file,其中9000是自己配置的NameNode端口号)JobTracker在作业启动之前会获得这个URI列表,并将相应的文件拷贝到各个TaskTracker的本地磁盘上
(2)用户运用DistributedCache.getLocalCacheFiles方法获得文件书目,并运用标准的文件读写API读取相应的文件
3、SemiJoinSemiJoin,也叫半连接,是从分布式数据库中借鉴过来的方法它的产生动机是:对于reduce sidejoin,跨机器的数据传输量特殊大,这成了join操作的一个瓶颈,假如能够在map端过滤掉不会参加join操作的数据,则可以大大节约网络10。