生活工程体验信仰哲学精神
投稿投诉
精神世界
探索历史
哲学文学
艺术价值
信仰创造
境界审美
体验技术
技能工具
工程信息
医学生产
生活运用
操作能力

面试

1月5日 壹世缘投稿
  Spark【面试】
  1、简答说一下hadoop的mapreduce编程模型
  首先maptask会从本地文件系统读取数据,转换成keyvalue形式的键值对集合
  使用的是hadoop内置的数据类型,比如longwritable、text等
  将键值对集合输入mapper进行业务处理过程,将其转换成需要的keyvalue在输出
  之后会进行一个partition分区操作,默认使用的是hashpartitioner,可以通过重写hashpartitioner的getpartition方法来自定义分区规则
  之后会对key进行进行sort排序,grouping分组操作将相同key的value合并分组输出,在这里可以使用自定义的数据类型,重写WritableComparator的Comparator方法来自定义排序规则,重写RawComparator的compara方法来自定义分组规则
  之后进行一个combiner归约操作,其实就是一个本地段的reduce预处理,以减小后面shufle和reducer的工作量
  reducetask会通过网络将各个数据收集进行reduce处理,最后将数据保存或者显示,结束整个job
  2、hadoop的TextInputFormat作用是什么,如何自定义实现
  InputFormat会在map操作之前对数据进行两方面的预处理
  1是getSplits,返回的是InputSplit数组,对数据进行split分片,每片交给map操作一次
  2是getRecordReader,返回的是RecordReader对象,对每个split分片进行转换为keyvalue键值对格式传递给map
  常用的InputFormat是TextInputFormat,使用的是LineRecordReader对每个分片进行键值对的转换,以行偏移量作为键,行内容作为值
  自定义类继承InputFormat接口,重写createRecordReader和isSplitable方法
  在createRecordReader中可以自定义分隔符
  3、hadoop和spark的都是并行计算,那么他们有什么相同和区别
  两者都是用mr模型来进行并行计算,hadoop的一个作业称为job,job里面分为maptask和reducetask,每个task都是在自己的进程中运行的,当task结束时,进程也会结束
  spark用户提交的任务成为application,一个application对应一个sparkcontext,app中存在多个job,每触发一次action操作就会产生一个job
  这些job可以并行或串行执行,每个job中有多个stage,stage是shuffle过程中DAGSchaduler通过RDD之间的依赖关系划分job而来的,每个stage里面有多个task,组成taskset有TaskSchaduler分发到各个executor中执行,executor的生命周期是和app一样的,即使没有job运行也是存在的,所以task可以快速启动读取内存进行计算
  hadoop的job只有map和reduce操作,表达能力比较欠缺而且在mr过程中会重复的读写hdfs,造成大量的io操作,多个job需要自己管理关系
  spark的迭代计算都是在内存中进行的,API中提供了大量的RDD操作如join,groupby等,而且通过DAG图可以实现良好的容错
  4、为什么要用flume导入hdfs,hdfs的构架是怎样的
  flume可以实时的导入数据到hdfs中,当hdfs上的文件达到一个指定大小的时候会形成一个文件,或者超过指定时间的话也形成一个文件
  文件都是存储在datanode上面的,namenode记录着datanode的元数据信息,而namenode的元数据信息是存在内存中的,所以当文件切片很小或者很多的时候会卡死
  5、mapreduce程序运行的时候会有什么比较常见的问题
  比如说作业中大部分都完成了,但是总有几个reduce一直在运行
  这是因为这几个reduce中的处理的数据要远远大于其他的reduce,可能是因为对键值对任务划分的不均匀造成的数据倾斜
  解决的方法可以在分区的时候重新定义分区规则对于value数据很多的key可以进行拆分、均匀打散等处理,或者是在map端的combiner中进行数据预处理的操作
  6、简单说一下hadoop和spark的shuffle过程
  hadoop:map端保存分片数据,通过网络收集到reduce端
  spark:spark的shuffle是在DAGSchedular划分Stage的时候产生的,TaskSchedule要分发Stage到各个worker的executor
  减少shuffle可以提高性能
  7、Hive中存放是什么?
  表。
  存的是和hdfs的映射关系,hive是逻辑上的数据仓库,实际操作的都是hdfs上的文件,HQL就是用sql语法来写的mr程序。
  8、Hive与关系型数据库的关系?
  没有关系,hive是数据仓库,不能和数据库一样进行实时的CURD操作。
  是一次写入多次读取的操作,可以看成是ETL工具。
  9、Flume工作机制是什么?
  核心概念是agent,里面包括source、chanel和sink三个组件。
  source运行在日志收集节点进行日志采集,之后临时存储在chanel中,sink负责将chanel中的数据发送到目的地。
  只有成功发送之后chanel中的数据才会被删除。
  首先书写flume配置文件,定义agent、source、chanel和sink然后将其组装,执行flumeng命令。
  10、Sqoop工作原理是什么?
  hadoop生态圈上的数据传输工具。
  可以将关系型数据库的数据导入非结构化的hdfs、hive或者bbase中,也可以将hdfs中的数据导出到关系型数据库或者文本文件中。
  使用的是mr程序来执行任务,使用jdbc和关系型数据库进行交互。
  import原理:通过指定的分隔符进行数据切分,将分片传入各个map中,在map任务中在每行数据进行写入处理没有reduce。
  export原理:根据要操作的表名生成一个java类,并读取其元数据信息和分隔符对非结构化的数据进行匹配,多个map作业同时执行写入关系型数据库
  11、Hbase行健列族的概念,物理模型,表的设计原则?
  行健:是hbase表自带的,每个行健对应一条数据。
  列族:是创建表时指定的,为列的集合,每个列族作为一个文件单独存储,存储的数据都是字节数组,其中的数据可以有很多,通过时间戳来区分。
  物理模型:整个hbase表会拆分为多个region,每个region记录着行健的起始点保存在不同的节点上,查询时就是对各个节点的并行查询,当region很大时使用。META表存储各个region的起始点,ROOT又可以存储。META的起始点。
  rowkey的设计原则:各个列簇数据平衡,长度原则、相邻原则,创建表的时候设置表放入regionserver缓存中,避免自动增长和时间,使用字节数组代替string,最大长度64kb,最好16字节以内,按天分表,两个字节散列,四个字节存储时分毫秒。
  列族的设计原则:尽可能少(按照列族进行存储,按照region进行读取,不必要的io操作),经常和不经常使用的两类数据放入不同列族中,列族名字尽可能短。
  12、SparkStreaming和Storm有何区别?
  一个实时毫秒一个准实时亚秒,不过storm的吞吐率比较低。
  13、mllib支持的算法?
  大体分为四大类,分类、聚类、回归、协同过滤。
  14、简答说一下hadoop的mapreduce编程模型?
  首先maptask会从本地文件系统读取数据,转换成keyvalue形式的键值对集合。
  将键值对集合输入mapper进行业务处理过程,将其转换成需要的keyvalue在输出。
  之后会进行一个partition分区操作,默认使用的是hashpartitioner,可以通过重写hashpartitioner的getpartition方法来自定义分区规则。
  之后会对key进行进行sort排序,grouping分组操作将相同key的value合并分组输出。
  在这里可以使用自定义的数据类型,重写WritableComparator的Comparator方法来自定义排序规则,重写RawComparator的compara方法来自定义分组规则。
  之后进行一个combiner归约操作,其实就是一个本地段的reduce预处理,以减小后面shufle和reducer的工作量。
  reducetask会通过网络将各个数据收集进行reduce处理,最后将数据保存或者显示,结束整个job。
  15、Hadoop平台集群配置、环境变量设置?
  zookeeper:修改zoo。cfg文件,配置dataDir,和各个zk节点的server地址端口,tickTime心跳时间默认是2000ms,其他超时的时间都是以这个为基础的整数倍,之后再dataDir对应目录下写入myid文件和zoo。cfg中的server相对应。
  hadoop:修改
  hadoopenv。sh配置java环境变量
  coresite。xml配置zk地址,临时目录等
  hdfssite。xml配置nn信息,rpc和http通信地址,nn自动切换、zk连接超时时间等
  yarnsite。xml配置resourcemanager地址
  mapredsite。xml配置使用yarn
  slaves配置节点信息
  格式化nn和zk。
  hbase:修改
  hbaseenv。sh配置java环境变量和是否使用自带的zk
  hbasesite。xml配置hdfs上数据存放路径,zk地址和通讯超时时间、master节点
  regionservers配置各个region节点
  zoo。cfg拷贝到conf目录下
  spark:
  安装Scala
  修改sparkenv。sh配置环境变量和master和worker节点配置信息
  环境变量的设置:直接在etcprofile中配置安装的路径即可,或者在当前用户的宿主目录下,配置在。bashrc文件中,该文件不用source重新打开shell窗口即可,配置在。bashprofile的话只对当前用户有效。
  16、Hadoop性能调优?
  调优可以通过系统配置、程序编写和作业调度算法来进行。
  hdfs的block。size可以调到128256(网络很好的情况下,默认为64)
  调优的大头:mapred。map。tasks、mapred。reduce。tasks设置mr任务数(默认都是1)
  mapred。tasktracker。map。tasks。maximum每台机器上的最大map任务数
  mapred。tasktracker。reduce。tasks。maximum每台机器上的最大reduce任务数
  mapred。reduce。slowstart。completed。maps配置reduce任务在map任务完成到百分之几的时候开始进入
  这个几个参数要看实际节点的情况进行配置,reduce任务是在33的时候完成copy,要在这之前完成map任务,(map可以提前完成)
  mapred。compress。map。output,mapred。output。compress配置压缩项,消耗cpu提升网络和磁盘io
  合理利用combiner
  注意重用writable对象
  17、Hadoop高并发?
  首先肯定要保证集群的高可靠性,在高并发的情况下不会挂掉,支撑不住可以通过横向扩展。
  datanode挂掉了使用hadoop脚本重新启动。
  18、hadoop的TextInputFormat作用是什么,如何自定义实现?
  InputFormat会在map操作之前对数据进行两方面的预处理。
  1是getSplits,返回的是InputSplit数组,对数据进行split分片,每片交给map操作一次。
  2是getRecordReader,返回的是RecordReader对象,对每个split分片进行转换为keyvalue键值对格式传递给map。
  常用的InputFormat是TextInputFormat,使用的是LineRecordReader对每个分片进行键值对的转换,以行偏移量作为键,行内容作为值。
  自定义类继承InputFormat接口,重写createRecordReader和isSplitable方法。
  在createRecordReader中可以自定义分隔符。
  19、hadoop和spark的都是并行计算,那么他们有什么相同和区别?
  两者都是用mr模型来进行并行计算,hadoop的一个作业称为job,job里面分为maptask和reducetask,每个task都是在自己的进程中运行的,当task结束时,进程也会结束。
  spark用户提交的任务成为application,一个application对应一个sparkcontext,app中存在多个job,每触发一次action操作就会产生一个job。
  这些job可以并行或串行执行,每个job中有多个stage,stage是shuffle过程中DAGSchaduler通过RDD之间的依赖关系划分job而来的,每个stage里面有多个task,组成taskset有TaskSchaduler分发到各个executor中执行,executor的生命周期是和app一样的,即使没有job运行也是存在的,所以task可以快速启动读取内存进行计算。
  hadoop的job只有map和reduce操作,表达能力比较欠缺而且在mr过程中会重复的读写hdfs,造成大量的io操作,多个job需要自己管理关系。
  spark的迭代计算都是在内存中进行的,API中提供了大量的RDD操作如join,groupby等,而且通过DAG图可以实现良好的容错。
  20、为什么要用flume导入hdfs,hdfs的构架是怎样的?
  flume可以实时的导入数据到hdfs中,当hdfs上的文件达到一个指定大小的时候会形成一个文件,或者超过指定时间的话也形成一个文件。
  文件都是存储在datanode上面的,namenode记录着datanode的元数据信息,而namenode的元数据信息是存在内存中的,所以当文件切片很小或者很多的时候会卡死。
  21、mapreduce程序运行的时候会有什么比较常见的问题?
  比如说作业中大部分都完成了,但是总有几个reduce一直在运行。
  这是因为这几个reduce中的处理的数据要远远大于其他的reduce,可能是因为对键值对任务划分的不均匀造成的数据倾斜。
  解决的方法可以在分区的时候重新定义分区规则对于value数据很多的key可以进行拆分、均匀打散等处理,或者是在map端的combiner中进行数据预处理的操作。
  22、简单说一下hadoop和spark的shuffle过程?
  hadoop:map端保存分片数据,通过网络收集到reduce端。
  spark:spark的shuffle是在DAGSchedular划分Stage的时候产生的,TaskSchedule要分发Stage到各个worker的executor。
  减少shuffle可以提高性能。
  23、RDD机制?
  rdd分布式弹性数据集,简单的理解成一种数据结构,是spark框架上的通用货币。
  所有算子都是基于rdd来执行的,不同的场景会有不同的rdd实现类,但是都可以进行互相转换。
  rdd执行过程中会形成dag图,然后形成lineage保证容错性等。
  从物理的角度来看rdd存储的是block和node之间的映射。
  24、spark有哪些组件?
  (1)master:管理集群和节点,不参与计算。
  (2)worker:计算节点,进程本身不参与计算,和master汇报。
  (3)Driver:运行程序的main方法,创建sparkcontext对象。
  (4)sparkcontext:控制整个application的生命周期,包括dagsheduler和taskscheduler等组件。
  (5)client:用户提交程序的入口。
  25、spark工作机制?
  用户在client端提交作业后,会由Driver运行main方法并创建sparkcontext上下文。
  执行add算子,形成dag图输入dagscheduler,按照add之间的依赖关系划分stage输入taskscheduler。
  taskscheduler会将stage划分为taskset分发到各个节点的executor中执行。
  26、spark的优化怎么做?
  通过sparkenv文件、程序中sparkconf和setproperty设置。
  (1)计算量大,形成的lineage过大应该给已经缓存了的rdd添加checkpoint,以减少容错带来的开销。
  (2)小分区合并,过小的分区造成过多的切换任务开销,使用repartition。
  27、kafka工作原理?
  producer向broker发送事件,consumer从broker消费事件。
  事件由topic区分开,每个consumer都会属于一个group。
  相同group中的consumer不能重复消费事件,而同一事件将会发送给每个不同group的consumer。
  28、ALS算法原理?
  答:对于userproductrating数据,als会建立一个稀疏的评分矩阵,其目的就是通过一定的规则填满这个稀疏矩阵。
  als会对稀疏矩阵进行分解,分为用户特征值,产品特征值,一个用户对一个产品的评分可以由这两个矩阵相乘得到。
  通过固定一个未知的特征值,计算另外一个特征值,然后交替反复进行最小二乘法,直至差平方和最小,即可得想要的矩阵。
  29、kmeans算法原理?
  随机初始化中心点范围,计算各个类别的平均值得到新的中心点。
  重新计算各个点到中心值的距离划分,再次计算平均值得到新的中心点,直至各个类别数据平均值无变化。
  30、canopy算法原理?
  根据两个阈值来划分数据,以随机的一个数据点作为canopy中心。
  计算其他数据点到其的距离,划入t1、t2中,划入t2的从数据集中删除,划入t1的其他数据点继续计算,直至数据集中无数据。
  31、朴素贝叶斯分类算法原理?
  对于待分类的数据和分类项,根据待分类数据的各个特征属性,出现在各个分类项中的概率判断该数据是属于哪个类别的。
  32、关联规则挖掘算法apriori原理?
  一个频繁项集的子集也是频繁项集,针对数据得出每个产品的支持数列表,过滤支持数小于预设值的项,对剩下的项进行全排列,重新计算支持数,再次过滤,重复至全排列结束,可得到频繁项和对应的支持数。
投诉 评论 转载

四种妇科病容易缠上白领女性白领女性的工作压力大,常常由于忙碌的工作与生活而忽略了自身的健康,久积成病,给健康埋下隐患。如对于妇科炎症没有及早治疗,生活没有规律等等,都将威胁到女性的健康。白领女性的健康存……技术我院心内科完成起搏器及除颤领域终极挑战近日,我院心内科主任肖俊会带领心脏介入团队,成功为一名71岁高龄的晚期心衰患者植入心脏再同步化并植入心脏复律除颤器手术(CRTD)。这项技术目前是起搏器及除颤领域中的终极挑战,……妻子怀孕要求邻居关掉WiFi,邻居孩子礼貌回复,网友牙痒痒文爸妈指南(文章原创,欢迎个人转发分享)图来源网络(如有侵权,请联系删除)令年轻家庭最高兴的事情要说怀孕是第二,其他就没有能排第一的了。尤其现在大家结婚年龄都……干燥天气,拒绝来电说起冬天那些恼人的琐事,就不得不提起静电了。一脱衣服就噼里啪啦响,甚至火星四溅;衣服经常黏着头发,甩都甩不掉;开门拿东西被电击,跟人接触指尖遭触电干燥的冬季,静电让人特别……香肠晒多久可以吃香肠灌好后建议风干和阴干香肠晒多久可以吃具体晾晒时间要取决于温度、风力等等因素。一般来说,晒710天差不多了。吃的话,35天后就可以了。注意,不要晒得太干,否则口感就差了。晒好后用塑料袋装好,放……白领保健经常想放屁,屁多怎么办?放屁是人或动物一种正常生理现象,有屁就放当然最符合生理规律。但有的场合,有屁就放会相当尴尬。屁,能否可控可治?且听听医生的意见吧。白领保健经常想放屁,屁多怎么办?……妆前乳和粉底液什么时候用控油妆前乳什么时候用对于新手化妆的女生来说,什么时候用什么化妆品,哪个步骤应该做什么,总是搞不清楚,化妆的顺序很重要,决定了你的妆容能不能持久,会不会卡粉等等,今天我们就先来了解一下妆前乳和粉底液……没有安全感的孩子,生活上有哪些表现安全感有一天,一位妈妈领着一个3、4岁的小女孩儿,向我问路。我给她们指了路,然后冲着小女孩儿温柔的一笑,想要用我迷人的微笑,给孩子带来一天的好心情,没想到,孩子害羞的躲到……面试Spark【面试】1、简答说一下hadoop的mapreduce编程模型首先maptask会从本地文件系统读取数据,转换成keyvalue形式的键值对集合使用……警惕中年女性的身体雷区女性韧带天生脆弱医学专家提醒女人要小心,不要受伤,因为与男人相比,女人更容易拉伤膝、踝等关节的韧带。一旦韧带拉伤,得用好几个月才能治愈。医生认为这可能是女人宽大的髋部使膝……宝宝每日护牙功课,你真的做对了吗?宝宝的身体发育情况一直是家长关注的焦点,特别是牙齿健康这个不容忽视的问题。毕竟一副好的牙齿要伴随一个人的一生,既是重要的门面,也关系到吃饭、说话等多个方面的发展。因此,伊可新专……发生食物中毒如何自救食物中毒是生活中比较容易遇到的一种情况,所以我们应该多了解一些食物中毒的自救方法,以便不时之需。下面为大家介绍发生食物中毒如何自救。食物中毒后第一反应往往是腹部的不适,中……
上课外班和不上课外班的孩子,差别不止一点,明眼人很容易看出早晨如何做一个温柔的闹钟?可以从3点出发,叫醒孩子更容易一线护士10岁儿子打赏主播10万我们到底该不该让孩子玩手机BIBMOM海贼团是怎样的存在母亲一发病就动手,女儿满身伤疤妈妈只有我了,再疼也得忍着三十而已钟晓芹怀孕胎停咋回事?探寻当代女性生育困难真相月子篇(顺产妇第3天食谱)首批丁克族现已步入晚年,如今他们后悔了吗?听听过来人咋说乡村纪事想起看瓜的五保户奎爷爷随着人口的不断增长,未来可能成为主流的6种食物缺锌的3个征兆,早预防赢在起跑线育儿分享为何孩子在幼儿园很独立,回家却变成粘人精?

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找