RDD:弹性分布式数据集 (Resilient Distributed DataSet)。 Spark 中最基本的数据抽象是 RDD。 创建RDD方法两种: 1.Driver并行化现有的Scala集合 2.引用外部存储系统 动作算子:map、filter、flatMap、mapPartition、mapPartitionwithIndex、coalesce、repartition、union、join、 cogroup、reduceByKey、aggregateByKey(部分即可) 转换算子:reduce、collect 、first、take 、aggregate、countByKey、foreach(部分即可) 所有的转换算子都是lazy执行的,只有在动作算子触发的时候任务才会被提交,这个时候转换算子才 会真正去执行。转换算子的返回值是RDD、而动作算子的返回值可以是Unit、Array,一个任务中只 能有一个动作算子,但是允许有多个转换算子。 ①.Local:  运行在一台机器上,通常是练手或者测试环境。 ②.Standalone:构建一个基于Mster+Slaves的资源调度集群,Spark任务提交给Master运行。是Spark自身的一个调度系统。 ③.Yarn: Spark客户端直接连接Yarn,不需要额外构建Spark集群。有yarn-client和yarn-cluster两种模式,主要区别在于:Driver程序的运行节点。 ④.Mesos:国内大环境比较少用。 kafka: 开源的流处理平台,该平台提供了消息的订阅与发布的消息队列,一般用作系统间解耦、异步通信、削峰填谷等作用。 这种情况一般是 数据倾斜只会发生在shuffle过程中。这里给大家罗列一些常用的并且可能会触发shuffle操作的算子:distinct、groupByKey、reduceByKey、aggregateByKey、join、cogroup、repartition等。出现数据倾斜时,可能就是你的代码中使用了这些算子中的某一个所导致的。 HBase 是一个基于Hadoop的分布式,可扩展,巨大数据仓库. ①.固定格式 ②.不可使用随机的 UUID ③.将查询的数据作为rowKey的组成部分 ①.Rowkey设计为Hash、随机值 ②.在Hbase上嫁接MQ充当缓冲区 ③.Rowkey设计为 hash+ElasticSearch 充当二次索引 ①.继承Thread类 ②.实现Runnable接口 ③.通过Callable和FutureTask创建线程 ④.通过线程池创建线程 线程池就是首先创建一些线程,它们的集合称为线程池。使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务。 答:写N个queue,将具有相同key的数据都存储在同一个queue,然后对于N个线程,每个线程分别消费一个queue即可。 参考博客: https://blog.csdn.net/qq_31329893/article/details/90451889 答: 10条或以上 存在,第二个表中存在多个key相等的状态,这时,对于第一个表就有一行数据对应多行。 ①.数据类型 参考博客: https://blog.csdn.net/joananjin/article/details/80002364 ①.构造方法 参考博客: https://blog.csdn.net/qq_41933748/article/details/82670072 @SpringBootApplication application.yml 配置文件( ① FIFO   ② Capacity Scheduler(容量调度器)  ③ Fair Sceduler(公平调度器)  又是你!!!HashMap !!! 参考博客: https://www.cnblogs.com/duodushuduokanbao/p/9492952.html 题 : CODE: 参考博客:https://blog.csdn.net/virus2014/article/details/52274849
概述
本篇博客将收集总结一些,本博主面试 大数据开发工程师 岗位遇到的面试题,虽然不一定高频,但是也算经验之谈,希望对各位有所帮助。一
1.什么是Spark RDD2.Spark算子有哪些3.Spark 有几种部署方式4.什么是kafka 架构5.hive出现reduce端OOM,怎么检查问题数据倾斜造成的,这时去查找聚合算子,修改该算子。6.什么是Hbase7.Hbase的Rowkey设计原则8.规避Hbase热点写问题9.多线程的创建10.线程池 (根据个人理解)
二
1.怎么保证kafka的数据顺序消费2.hive中,一个10条数据的表left join 一个5条数据的表 on l.key=r.key 会产生多少条数据3.hbase与传统数据库的区别
 ②.数据操作
 ③.存储模式
 ④.数据维护
 ⑤.可伸缩性
 ⑥.事务4.抽象类和接口有何区别
 ②.成员变量
 ③.抽象方法
 ④.方法的访问类型
 ⑤.静态方法
 ⑥.静态成员变量
 ⑦.实现与继承5.SpringBoot的入口类、入口类的一些注解和配置文件
 @MapperScan(…)
 用在入口类上{}<==>application.properties)6.Yarn的调度器单一队列 生产环境不使用多队列,同时执行 ,并行度=队列数多队列,执行并行度 >=队列数7.HashMap1. 计算插入元素的key的hash值(n-1)& hash ,判断数组中是否存在该值,不存在则直接放入。存在,进行 key的 equals 判断。
 2. 如果,2个key相等,则覆盖。如果key不等 :分为 如果是链表结构 则放入链表,判断长度是否>8,大于则链表转为红黑树。如果是红黑树,则直接放入节点中。
 3..计算节点数是否大于阈值 (),大于,则扩容2倍。8.算法 (这个题的我的答案肯定不是最优解,希望有仁兄给小弟指正~)假设某几天的股票价格已知【假设数组的数据已知】,你要先买进股票(必须先买)再卖出,求你采用最优化交易手段后,获得的最大利润是多少。package com.baizhi; public class Temp { public static void main(String[] args) { /**          * 根据题意,假设,我们已知某5天的股票价格是 3,4,1,2,5          */ double[] prices = {3.0, 4.0, 1.0, 2.0, 5.0}; //定义一个标记值,这个值是个负值 double flag = Integer.MAX_VALUE+1; /**          * 思路:我们总是要先买股票,然后才能卖出,也就是说,卖出的价格只可能是在前一次价格之后          */         System.out.println("flag = " + flag); for (int i = 0; i < prices.length ; i++) { for (int j = i+1; j < prices.length; j++) { /**                  * 后面的价格减去前面的价格,获取差价是正数并且是最大的部分,即是我们的最大收益                  */ double temp =  prices[j] - prices[i]; //如果,这个差值大于flag,对flag,进行交换 if(temp>flag){                     flag = temp; } } }         System.out.println("最大可获取收益是 t" + flag); } } 9.你设计的第8个程序的时间复杂度是多少(告辞,日后再解决)
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算
官方软件产品操作指南 (170)