自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(117)
  • 资源 (1)
  • 收藏
  • 关注

原创 大数据高频面试题【目录】

大数据高频面试题【目录】(小标题既超链接,点击可直接跳转)手写代码 Linux & Shell Hadoop Flume Kafka Hive HBase Sqoop Scala Spark 项目中的常见问题 JavaSE Redis MySQL JVM 必会手写代码用心学习、用心做事、注意细节。...

2020-07-11 09:25:53 624 1

原创 大数据高频面试题-手写代码

手写代码2.1 冒泡排序/** * 冒泡排序 时间复杂度 O(n^2) 空间复杂度O(1) */public class BubbleSort { public static void bubbleSort(int[] data) { System.out.println("开始排序"); int arrayLength = data.length; for (int i = 0; i < arrayLength - 1; i++) {.

2020-07-11 08:12:05 524

原创 大数据高频面试题-JVM

第13章 JVM13.1 JVM内存分哪几个区,每个区的作用是什么? 13.2 java类加载过程? 13.3 java中垃圾收集的方法有哪些? 13.4 如何判断一个对象是否存活?(或者GC对象的判定方法) 13.5 什么是类加载器,类加载器有哪些? 13.6 简述java内存分配与回收策略以及Minor GC和Major GC(full GC)13.1 JVM内存分哪几个区,每个区的作用是什么?java虚拟机主要分为以下几个区:方法区:有时候也成为永久代,...

2020-07-11 07:51:49 325

原创 大数据高频面试题-MySql

第12章 MySql12.1 行锁,表锁 12.2 索引 12.3 常见面试sql12.1 MyISAM与InnoDB的区别 对比项 MyISAM InnoDB 外键 不支持 支持 事务 不支持 支持 行表锁 表锁,即使操作一条记录也会锁住整个表,不适合高并发的操作 ...

2020-07-10 09:49:04 1018

原创 大数据高频面试题-Redis(答案精简)

第11章 Redis(答案精简)11.1 缓存穿透 11.2 哨兵模式 11.3 数据类型 11.4 持久化 11.5 悲观锁11.1 缓存穿透、缓存雪崩、缓存击穿1)缓存穿透是指查询一个一定不存在的数据。由于缓存命不中时会去查询数据库,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。解决方案:是将空对象也缓存起来,并给它设置一个很短的过期时间,最长不超过5分钟② 采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitma...

2020-07-10 09:43:01 252

原创 大数据高频面试题-JavaSE(答案精简)

第10章 JavaSE(答案精简)10.1 hashMap底层源码,数据结构 10.2 Java自带有哪几种线程池? 10.3 HashMap和HashTable区别 10.4 TreeSet和HashSet区别 10.5 String buffer和String build区别 10.6 Final、Finally、Finalize 10.7 ==和Equals区别10.1 hashMap底层源码,数据结构hashMap的底层结构在jdk1.7中由数组+链表实现,在jdk...

2020-07-10 09:39:59 312

原创 大数据高频面试题-项目中常见问题

项目中遇到过哪些问题8.1 Hadoop宕机 8.2 Ganglia监控 8.3 Flume小文件 8.4 Kafka挂掉 8.5 Kafka消息数据积压,Kafka消费能力不足怎么处理? 8.6 Kafka数据重复 8.7 Mysql高可用 8.8 自定义UDF和UDTF解析和调试复杂字段 8.9 Sqoop数据导出Parquet 8.10 Sqoop数据导出控制 8.11 Sqoop数据导出一致性问题 8.12 SparkStreaming优雅关闭 8...

2020-07-10 09:38:49 1496

原创 大数据高频面试题-Scala

4.9Scala4.9.1 元组 4.9.2 隐式转换 4.9.3 函数式编程理解 4.9.4 样例类 4.9.5 柯里化 4.9.6 闭包4.9.1 元组1)元组的创建val tuple1 = (1, 2, 3, "heiheihei")println(tuple1)2)元组数据的访问,注意元组元素的访问有下划线,并且访问下标从1开始,而不是0val value1 = tuple1._4println(value1)3)元组的遍历方式1:...

2020-07-10 09:22:18 367

原创 大数据高频面试题-Sqoop参数

4.8 Sqoop参数4.8.1 Sqoop导入导出Null存储一致性问题 4.8.2 Sqoop数据导出一致性问题 4.8.3 Sqoop底层运行的任务是什么 4.8.4 Sqoop数据导出的时候一次执行多长时间4.8.0Sqoop参数/opt/module/sqoop/bin/sqoop import \--connect \--username \--password \--target-dir \--delete-target-dir \--num-...

2020-07-10 09:19:20 413

原创 大数据高频面试题-HBase总结

4.7 HBase总结4.7.1 HBase存储结构 4.7.2 rowkey设计原则 4.7.3 RowKey如何设计 4.7.4 Phoenix二级索引4.7.1 HBase存储结构4.7.2 rowkey设计原则1)rowkey长度原则2)rowkey散列原则3)rowkey唯一原则4.7.3 RowKey如何设计(1)生成随机数、hash、散列值(2)字符串反转4.7.4 Phoenix二级索引(讲原理)注:内容源自“尚硅谷”网络...

2020-07-10 09:16:39 315

原创 大数据高频面试题-Hive总结

4.6 Hive总结4.6.1 Hive的架构 39 4.6.2 Hive和数据库比较 39 4.6.3 内部表和外部表 39 4.6.4 4个By区别 39 4.6.5 窗口函数 40 4.6.6 自定义UDF、UDTF 40 4.6.7 Hive优化 414.6.1 Hive的架构4.6.2 Hive和数据库比较Hive和数据库除了拥有类似的查询语言,再无类似之处。1)数据存储位置Hive存储在HDFS。数据库将数据保存在块设备或者本地文件系统中...

2020-07-10 09:12:04 404 1

原创 大数据高频面试题-Flume相关总结

4.4Flume相关总结4.4.1 Flume组成,Put事务,Take事务 4.4.2 Flume拦截器 4.4.3 Flume Channel选择器 4.4.4 Flume监控器 4.4.5 Flume采集数据会丢失吗? 4.4.6 Flume内存 4.4.7 FileChannel优化 4.4.8 HDFS Sink小文件处理4.4.1 Flume组成,Put事务,Take事务1)Flume组成,Put事务,Take事务Taildir Source:断点续...

2020-07-10 09:07:37 340

原创 大数据高频面试题-Kafka相关总结

4.5Kafka相关总结4.5.1 Kafka架构 4.5.2 Kafka压测 4.5.3 Kafka的机器数量 4.5.4 Kafka的日志保存时间 4.5.5 Kafka的硬盘大小 4.5.6 Kafka监控 4.5.7 Kakfa分区数 4.5.8 副本数设定 4.5.9 多少个Topic 4.5.10 Kafka丢不丢数据 4.5.11 Kafka的ISR副本同步队列 4.5.12 Kafka分区分配策略 4.5.13 Kafka中数据量计算...

2020-07-10 09:07:30 243

原创 大数据高频面试题-Hadoop相关总结

4.2 Hadoop相关总结4.2.1 Hadoop常用端口号dfs.namenode.http-address:50070 dfs.datanode.http-address:50075 SecondaryNameNode辅助名称节点端口号:50090 dfs.datanode.address:50010 fs.defaultFS:8020 或者9000 yarn.resourcemanager.webapp.address:8088 历史服务器web访问端口:198884.2.

2020-07-09 23:00:20 347

原创 大数据高频面试题-Linux&Shell

4.1Linux&Shell相关总结4.1.1 Linux常用命令 序号 命令 命令解释 1 top 查看内存 2 df -h 查看磁盘存储情况 3 iotop 查看磁盘IO读写(yum install iotop安装) 4 .

2020-07-09 22:51:46 433

原创 大数据高频面试题-Spark

4.10Spark4.10.1 Spark有几种部署方式?请分别简要论述1)Local:运行在一台机器上,通常是练手或者测试环境。2)Standalone:构建一个基于Mster+Slaves的资源调度集群,Spark任务提交给Master运行。是Spark自身的一个调度系统。3)Yarn: Spark客户端直接连接Yarn,不需要额外构建Spark集群。有yarn-client和yarn-cluster两种模式,主要区别在于:Driver程序的运行节点。4)Mesos:国内大环境比较.

2020-07-09 22:49:31 1394

原创 大数据知识点梳理-Hadoop生态之Hive

1.3.1 *描述-下Hive动态分区和分桶使用场景和使用方法? 1.分区 按照数据表的某列或某些列分为多个分区,分区从形式上可以理解为文件夹,比如我们要收集某个大型网站的日志数据,一个网站每天的日志数据存在同一张表上,由于每天会生成大量的日志,导致数据表的内容巨大,在查询时进行全表扫描耗费的资源非常多。那其实这个情况下,我们可以按照日期对数据表进行分区,不同日期的数据存放在不同的分区,在查询时只要指定分区字段的值就可以直接从该分区查找。分区是以字段的形式在表结构中存在,通过des...

2020-07-01 22:11:18 504

原创 大数据知识点梳理-Hadoop生态之MapReduce

1.2 MapReduce特别说明:“红色字体”标题均为高频面试题1.2.1 *MR的执行流程? 1.2.2 *MapReduce写过吗?有哪些关键类? mapper 的方法有哪些? setup方法是干嘛的?它是每读取一行数据就调用一次这个方法吗? 1.2.3 有个需求,要求-条指令可以把所有文件都shuffle到同一partition 中,用MapReduce的话,你怎么写? 1.2.4 *Hadoop Shuffle原理(越详细越好)? 1.2.5 *combine函数的作用? 1.2

2020-06-29 22:23:12 460

原创 Pandas常用统计学方法

常用统计学方法 获取最小元素 df.min(axis=1) 获取最小元素的索引值 df.idxmin(axis=1) 获取最大值 df.max(axis=1) 获取最大元素的索引值 df.idxmax(axis=1) 获取元素的平均值 df.mean(axis=1) 获取元素的的中位数 df.median(axis=1) 获取元素的和 df.sum(axis=1) 对数组按元素进行连加 df.cumsum(axis=1) ...

2020-06-29 14:22:07 620

原创 大数据知识点梳理-Hadoop生态之HDFS

1.1 HDFS特别说明:“红色字体”标题均为高频面试题1.1.1 *HDFS读写流程? 1.1.2 *简单说明下HDFS中,NameNode, DataNode的作用? 1.1.3 *SecondaryNameNode的作用?或者是NameNode的启动过程? 1.1.4集群安全模式?什么情况下会进入到安全模式?安全模式的解决办法? 1.1.5 *为什么HDFS不适合存小文件? 1.1.6 *HDFS支持的存储格式和压缩算法? 1.1.7说一下HDFS的可靠性策略? 1.1.8 *H

2020-06-28 22:07:04 671

原创 大数据相关知识点

大数据面试题总结最近由于要准备面试就开始提早看些面试、笔试题。以下是自己总结的一些经常出现、有价值的试题,包含hadoop、hive、hbase、storm、spark等。答案仅供参考,如有错误,请指出。试题不定时更新。hadoop相关试题1、MapTask并行机度是由什么决定的?由切片数量决定的。2、MR是干什么的?MR将用户编写的业务逻辑代码和自带的默认组件结合起来组成一个完整的分布式应用程序放到hadoop集群上运行。MR的实例进程:driver(mr的job提交客...

2020-06-28 19:59:48 512

原创 大数据知识点梳理 -【目录】

一、Hadoop生态1.1 HDFS1.2 MapReduce1.3 Hive1.4 HBase二、Spark 技术栈2.1 Scala2.2 Spark Core2.3 Spark SQL2.4 SparkStreaming三、核心组件3.1 Flume3.2 Kafka四、数据仓库......4.1数据仓库基础..4.2用户留存和拉链表...五、大数据算法题5.1海量数据处理5.2数据结构六、大数据面试常见Jav...

2020-06-28 19:25:56 203

原创 大数据知识点梳理-Java之JVM

6.3JVM6.3.1请说明一下Java虚拟机的作用是什么? 解释运行字节码程序消除平台相关性。 jvm将Java字节码解释为具体平台的具体指令。--般的高级语言如要在不同的平台上运行,至少需要编译成不同的目标代码。而引入JVM后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java 虚拟机上运行的目标代码(字节码),就可以在多种平台.上不加修改地运行。Java 虚拟机在执行...

2020-06-28 19:12:14 262

原创 MongoDB 与 SQL 代码间转化

SQL与 MongoDB术语&解释常用基础转化SQL模板

2020-06-25 21:42:51 1922

原创 Kafka 事务特性分析

kafka transaction Kafka 事务特性分析1、特性背景支持事务消息有什么作用? 消息事务是实现分布式事务的一种方案,可以确保分布式场景下的数据最终一致性。2、分布式事务介绍当前系统架构主流是分布式架构与微服务架构 在这种架构下数据源不是单一的数据库,业务逻辑往往需要在多个数据库中实现原子操作,单个数据库中的强大的本地事务无法保证多节点原子操作。3、Kafka事务的使用Kafka中的事务特性主要用于以下两种场景:(1)生产者...

2020-06-25 21:36:48 352 1

原创 Spark内存溢出(决方法和优化)

# 可能会导致溢出的原因1. map过程产生大量对象导致内存溢出2.数据不平衡导致内存溢出3.coalesce调用导致内存溢出4.shuffle后内存溢出5. standalone模式下资源分配不均匀导致内存溢出6.在RDD中,共用对象能够减少OOM的情况# 优化技巧1.使用mapPartitions代替大部分map操作,或者连续使用的map操作2.broadcast join和普通join3.先filter在join4.partitonBy优化5.

2020-06-25 21:29:21 579

原创 IDEA常用快捷键

官网:https://www.jetbrains.com/idea/编写调试Alt+Insert,可以生成构造器/Getter/Setter等Ctrl+Alt+T,可以把代码包在一个块内,例如:try/catchCtrl+O,重写方法Ctrl+Enter,导入包,自动修正Ctrl+Alt+I,将选中的代码进行自动缩进编排,这个功能在编辑 JSP 文件时也可以工作Ctrl+Alt+L,格式化代码Ctrl+Alt+O,优化导入的类和包Ctrl+Alt+Space,类名自..

2020-06-24 22:24:35 91

原创 flume-demo.cnf

a1.sources = r1a1.sinks = k1a1.channels = c1a1.sources.r1.type = spooldira1.sources.r1.spoolDir = /data/flumea1.sinks.k1.type = hdfsa1.sinks.k1.hdfs.path = hdfs://hadoop-master:9000/user/root/flume/%y-%m-%d/%H%M/%Sa1.sinks.k1.hdfs.rollSize = 1024.

2020-06-13 19:42:03 187

原创 大数据知识点梳理-Java基础

面试指导: 以下精选了一些大数据面试中常问的Java问题,大数据开发使用的语言最多的是Java,所以在面试中会被问到一些Java核心的问题,需要能够回答。 其中,Java基础是关于Java的一些基础问题,必须能够回答。多线程和JVM是大数据面试中常问的一些问题,需要能够回答出核心内容。6.1 Java基础6.1.1 hashMap底层源码,数据结构底层结构: jdk7: 数组+链表 jdk8: 数组+链表+红黑树HashMap中维护了Node类型的数组tabl...

2020-05-29 22:23:55 319

原创 大数据知识点梳理-Java多线程

6.2 Java多线程6.2.1进程和线程的区别是什么?进程是执行着的应用程序,而线程是进程内部的一一个执行序列。一个进程可以有多个线程。线程又叫做轻量级进程。6.2.2 *创建线程有几种不同的方式?你喜欢哪一种?为什么?有三种方式可以用来创建线程:➢继承 Thread类➢实现 Runnable接口➢应用程序可以使用Executor框架来创建线程池 实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类。在应用设计中已经继承了别的对象的情况下,这需要多...

2020-05-29 21:57:44 135

原创 spark中cloalese与repartition的区别

repartition(numPartitions:Int):RDD[T] coalesce(numPartitions:Int,shuffle:Boolean=false):RDD[T]他们两个都是RDD的分区进行重新划分,repartition只是coalesce接口中shuffle为true的简易实现,(假设RDD有N个分区,需要重新划分成M个分区)N<M。一般情况下N个分区有数据分布不均匀的状况,利用HashPartitioner函数将数据重新分区为M个,这时需要将shuffle设

2020-05-29 11:35:52 654

原创 Spark的master和worker之间的通信方式Akka

akka是spark独有的node之间的RPC通信。RPC主要是用在大型企业里面,因为大型企业里面系统繁多,业务线复杂,而且效率优势非常重要的一块,这个时候RPC的优势就比较明显了。Spark在很多模块之间的通信选择是Scala原生支持的akka,一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用。在Spark中的Client,Master和Worker实际上都是一个actor...

2020-05-29 10:16:06 2294

原创 reduceByKey和groupByKey区别与用法

reduceByKey用于对每个key对应的多个value进行merge操作,最重要的是它能够在本地先进行merge操作,并且merge操作可以通过函数自定义。groupByKey也是对每个key进行操作,但只生成一个sequence。如果需要对sequence进行aggregation操作,那么,选择reduceByKey/aggregateByKey更好。这是因为groupByKey不能自定义函数,我们需要先用groupByKey生成RDD,然后才能对此RDD通过map进行自定义函数操作。当采用

2020-05-29 09:57:26 267

原创 spark应用转换流程

构建Spark Application的运行环境。创建SparkContext后,SparkContext向资源管理器注册并申请资源。这里说的资源管理器有Standalone、Messos、YARN等。事实上,Spark和资源管理器关系不大,主要是能够获取Executor进程,并能保持相互通信。在SparkContext初始化过程中,Spark分别创建作业调度模块DAGScheduler和任务调度模块TaskScheduler(此例为Standalone模式下,在YARN-Client模式下任务调度模块..

2020-05-29 09:22:38 666

原创 Spark On YARN相关的配置参数

关于Spark On YARN相关的配置参数,请参考Spark配置参数。本文主要讨论内存分配情况,所以只需要关注以下几个内心相关的参数:spark.driver.memory :默认值512m spark.executor.memory :默认值512m spark.yarn.am.memory :默认值512m spark.yarn.executor.memoryOverhead :值为 executorMemory * 0.07, with minimum of 384 spark.y

2020-05-29 09:18:28 349

转载 MyBatis 与 JDBC的区别

JDBC是Java提供的一个操作数据库的API;MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。MyBatis是对JDBC的封装。相对于JDBC,MyBatis有以下优点:1. 优化获取和释放我们一般在访问数据

2020-05-08 22:00:21 312

原创 解决Deepin系统QQ图片不显示的问题

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1

2020-05-05 09:55:45 630

原创 数据库连接池的使用 - Druid(德鲁伊)

1、数据库连接池1.1概念​ 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。面试题:什么是数据库连接池?目前的数据库连接做法:​ 需要链接数据就马上创建一个连接,使用完成之后,就将连接关闭了。下次...

2020-05-03 18:02:41 2834

原创 Log4j 日志级别

log4j提供了4种日志级别和2个日志开关。官方网址:http://logging.apache.org/log4j/1.2/4种日志级别: DEBUG:输出调试信息;指出细粒度信息事件对调试应用程序是非常有帮助的。 INFO:输出提示信息;消息在粗粒度级别上突出强调应用程序的运行过程。 WARN:输出警告信息;表明会出现潜在错误的情形。...

2020-04-20 21:44:11 364

原创 Linux系统中 systemd-journaldCPU占用异常的解决方法

一、待解决问题先贴几张图,问题解决之前最头疼的问题(因打印日志的高占用——以致CPU占用高达96%,已经无法满足日常使用)从图中可见systemd-journald占用了1/4的CPU资源(注:我是用的是Deepin系统)二、解决办法因为要解决这个问题,我在网上找了很多,其中大概都是如下的解决方法:https://www.jianshu.com/p/8b3fba13...

2020-04-18 22:07:19 10852 3

阿里巴巴Java开发规范文档.rar

《阿里巴巴Java开发手册(详尽版)》参考学习,文件来自于阿里巴巴云栖平台,网址:https://yq.aliyun.com/download/2719?do=login

2019-10-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除