- 博客(46)
- 资源 (12)
- 收藏
- 关注
转载 hbase和hive的区别是什么?怎么区分两者之间的关系?
HIVE:hive,是一款开源的数据仓库1、hive不是数据库,而是数据仓库,主要依赖于hadoop来实现2、底层文件系统是hadoop的hdfs,实现对hdfs上结构化数据的SQL操作HQL,速度较慢3、计算引擎是hadoop的mapreduce4、依靠存储在其他关系型数据库metastore来对hdfs结构化数据进行管理,实现类似数据库的功能5、不具备数据库的一...
2019-03-25 08:34:47
8247
转载 深入理解HBase的系统架构
HBase的构成 Regions HBase的HMaster ZooKeeper HBase各组成部分之间的合作 HBase的第一次读写 HBase的META table Region Server的组成 HBase的写操作步骤 步骤一 步骤二 HBase的MemStore HBase Region Flush HFile HFile的结构 HFile的索引 ...
2019-03-25 08:34:07
953
原创 hadoop的工作原理?hadoop是什么?hadoop的内部三大模块是怎么运行的?
hadoop是什么?hadoop是一个开源框架,主要包括三大块内容:hdfs(分布式文件存储系统),yarn(资源管理和任务调度系统),mapreduce(分布式计算框架);hadoop的工作原理是什么?或者说hadoop的内部工作机制是什么?想要知道上边问题的答案,就首先需要了解hadoop这三大块的架构,接下来就先一一介绍这三大块分别是什么?这三大块内部都是怎么运行的?hdfs...
2019-03-25 08:32:35
1698
原创 Zookeeper常见面试题总结
1.zookeeper是什么?zookeeper是一个开源的分布式数据一致性的解决方案,分布式应用程序可以基于zookeeper实现数据发布订阅,负载均衡,命名服务,分布式协调,集群管理,分布式锁和分布式队列等一系列功能,可以保证如下分布式一致性特性: 1)顺序一致性:从同一个客户端发起的事务请求,最终将会严格按照其发起顺序被应用到zookeeper中去; 2)原子性:要么整个集群...
2019-03-02 16:59:51
8501
原创 上海诺西Java面试题
1.外连接和子查询区别 外连接和子查询最大的区别就在于外连接使用的join不需要在内存中创建临时表,效率比子查询高。2.String的equals方法 https://blog.csdn.net/qq_25827845/article/details/538688153.Mybatis的两种实现方式 1)注解 2).xml文件配置4...
2019-02-28 16:39:50
1079
原创 大数据面试题
技术面试题1.Hadoop中有哪些组件? Hadoop=HDFS+Yarn+MapReduce+Hive+Hbase+... 1).HDFS:分布式文件存储系统 主:namenode,secondarynamenode 从:datanode ...
2019-02-28 16:00:31
12312
原创 大数据面试题总结
1.scala 语言有什么特点,什么是函数式编程?有什么优点2.scala 伴生对象有什么作用3.scala 并发编程是怎么弄得,你对 actor 模型怎么理解有何优点4.Spark如何处理结构化数据,Spark如何处理非结构话数据?5.Spark性能优化主要有哪些手段?6.对于Spark你觉得他对于现有大数据的现状的优势和劣势在哪里?7.对于算法是否进行过自主的研究设计?...
2019-02-27 09:41:53
323
原创 启明信息科技技术股份有限公司面试题
笔试题:1.spark中应该多用哪些算子操作?为什么?2.hashMap,hashTable,currentHashMap三者之间的区别?3.hive的优化方案?4.hadoop环境中节点的增加和删除怎么实现?5.h'ba'se主键的设计有哪些特点?...
2019-02-27 09:41:00
1365
原创 HDFS的实现原理
1.HDFS是Hadoop的核心组件之一,作为最底层分布式存储系统存在,主要是为了解决大数据存储;2.特性: 采用master/slave架构,一个主节点,多个从节点,共同协调完成分布式文件存储服务; 分块存储,物理上按照Block块进行存储,默认大小是128M; 名字空间,主节点负责维护文件系统的名字空间,任何对文件系统...
2019-02-27 09:40:19
666
原创 Java中自旋锁
自旋锁1.什么是自旋锁?当一个线程需要在获取锁的时候,此时正好有其他线程占用着锁,那么此时该线程将会进入循环等待模式,直到成功获取到锁才会退出循环,因此称为自旋锁。2.什么时候用到自旋锁?自旋锁的适用场景? 1)单核处理器 2)多核处理器3.自旋锁的优缺点?自旋锁可以避免上下文切换,但是由于获取到锁的时间不确定,当获取锁需要时间太长的...
2019-02-25 14:57:12
562
原创 什么是线程阻塞?为什么会出现线程阻塞?
什么是线程阻塞?在某一时刻某一个线程在运行一段代码的时候,这时候另一个线程也需要运行,但是在运行过程中的那个线程执行完成之前,另一个线程是无法获取到CPU执行权的(调用sleep方法是进入到睡眠暂停状态,但是CPU执行权并没有交出去,而调用wait方法则是将CPU执行权交给另一个线程),这个时候就会造成线程阻塞。为什么会出现线程阻塞?1.睡眠状态:当一个线程执行代码的时候调用了slee...
2019-02-14 22:20:01
34363
15
转载 Redis常见面试题
1、什么是Redis? Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种...
2019-02-12 14:21:51
443
原创 HashMap,HashTable,CurrentHashMap区别
继承的父类不同,HashMap继承的是AbstractMap类,而HashTable继承的是Dictionary 类; 初始容量和扩容量不同,HashMap初始容量为16个字节,扩容为原来的2倍,而 HashTable初始容量为11个字节,扩容增量为原来的2倍+1; HashMap允许K/V存在null值,但是HashTable不允许K/V为null; HashMap为线程不安全的,且不同步...
2018-12-05 10:14:01
758
原创 腾讯公司面试题(大数据岗位)
1、手写一个冒泡排序代码或者选择排序代码?2、给一个网页的url,抓取指定的title标签里的文本内容,请写出实现代码?3、Hadoop怎么从本地上传到hdfs文件?请写出命令行4、怎么获取指定范围内的POI?怎么设计表?5、一个表的数据是全的,一个表的数据是部分数据,请用HQL写出部分数据所对应的全部数据?6、你们数据量大概是多少?7、Mysql用过吗?怎么获取Mysql...
2018-12-02 19:56:22
6229
1
原创 搜狗面试题(大数据岗位)
1.Flume的组件filechannel设置层面是什么?at least?at most?还是标准?2.Mapreduce的工作原理?写过源码吗?3、画一个二叉树单链结构图?4、SQL的左右连接语句及区别?...
2018-12-02 19:51:43
763
原创 方正国际软件面试题(大数据岗位)
1、HashMap和HashTable区别?2、Mapreduce写过吗?了解原理吗?combine和分区什么区别?3、spark用过吗?写过哪些代码?4、Hive的UDF函数写过吗?5、Hbase存的是清洗后的数据吗?6、Java用的框架是SSM吗?7、常用的Linux命令说一些?8、你在项目中主要负责的是哪块?主要用的是什么工具?...
2018-12-02 19:48:40
828
转载 HashMap、Hashtable、ConcurrentHashMap的原理与区别
HashTable底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11,扩容:newsize = oldsize*2+1 计算index的方法:index = (hash & 0x7FFFFFFF) % tab.lengthHa...
2018-11-15 20:44:55
276
原创 GrowingIO面试题
今天面了一家专门做数据的公司GrowingIO,是一个数据总监面试的我,上来先给了一张笔试题,如下:然后让我20分钟之内用代码给他手写出来,嗯,我果然没写出来,因为代码太长而时间有点短,就大概写了下思路,主要就是按照用户id和位置id进行分组,然后是一组的判断时间是否连续,不是一组的直接输出,等等巴拉巴拉一大堆扯,以下就开始进入挖坑环节了:1.项目中你主要做的是哪块?是你独立完成的吗?...
2018-11-01 21:30:04
3192
1
原创 shuffle阶段做了什么?什么是shuffle阶段?
直白点来说map输出到reduce输入的中间过程就是shuffle阶段,那么现在就来说下shuffle做了什么:(1)collect阶段:将 MapTask 的结果输出到默认大小为 100M 的环形缓冲区,保存的是 key/value,Partition 分区信息等。(2)spill阶段:当内存中的数据量达到一定的阀值的时候,就会将数据写入本地磁盘,在将数据写入磁盘之前需要对数据进...
2018-10-31 17:18:25
4092
原创 Mapreduce执行任务过程
1.把输入的文件逻辑切片,每个切片由一个maptask处理;2.对切片中的数据按照一定的规格解析成键值对,默认规则是每一行解析成一对键值对;3.每解析出调用一个kv调用一次map中的map方法,会输出零个或者多个键值对;4.按照一定的队则,讲输出的键值对进行分区,分区的数量就是reducerTask的数量;5.对每个分区中的键值对的key按照字典序进行排序,相同的key只会调用一次...
2018-10-31 17:02:19
491
原创 如何自定义日志采集数据?数据源都包含哪些方面?
数据源主要包括两方面:内部数据,外部数据日志采集的数据主要分为以下几方面:1.埋点数据:在页面放置一段js代码,用户的行为触发代码之后会自动加载一些数据,并通过创建script标签的形式src加载外部的一段js采集代码;2.采集之后传到后台,因为是分布式,js代码跟后台接收可能不在一台机器,涉及到跨域问题,用img标签的src属性,通过http的方式把拼接好的参数发送过去;3.后台...
2018-10-31 16:52:14
2699
转载 什么是SOA?什么是Dubbo?
一、什么是SOASOA(Service-Oriented Architecture),即面向服务的架构。SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML(标准通用标记语言的子集)/Web Service技术之后的自然延伸。阿里巴巴的Dubbo是SOA的典型实现。(1)基本特征SOA的实...
2018-10-29 16:26:41
3740
原创 京东云面试题
上周在北京面试了一家京东云公司,是京东旗下的一家子公司,以下是面试官的一些问题:1.先做下自我介绍吧2.你在这个项目里具体做了哪些工作?哪些是你自己实现的?3.了解dubbo吗?知道原理吗?4.了解zookeeper吗?知道原理吗?知道选举机制吗?假如一个active挂掉了,standby如何能够恢复active所存储的元数据信息保证不丢失?5.了解hive吗?知道底层原理吗?...
2018-10-29 09:48:03
1991
原创 spark是什么?spark和MapReduce的区别?spark为什么比hive速度快?
spark是什么?spark是针对于大规模数据处理的统一分析引擎,通俗点说就是基于内存计算的框架spark和hive的区别?1.spark的job输出结果可保存在内存中,而MapReduce的job输出结果只能保存在磁盘中,io读取速度要比内存中慢;2.spark以线程方式运行,MapReduce以进程的方式运行,进程要比线程耗费时间和资源;3.spark提供了更为丰富的算子操...
2018-10-21 11:10:25
4786
转载 map和reduce个数怎么确定?
阅读本文可以带着下面问题:1.map和reduce的数量过多会导致什么情况?2.Reduce可以通过什么设置来增加任务个数?3.一个task的map数量由谁来决定?4.一个task的reduce数量由谁来决定?一般情况下,在输入源是文件的时候,一个task的map数量由splitSize来决定的,那么splitSize是由以下几个来决定的goalSize = totalSize / mapred....
2018-10-15 20:04:43
4263
原创 Zookeeper集群有什么用?
一,命名服务(用到了zookeeper的文件系统)命名服务是指通过指定的名字来获取资源或者服务的地址,利用zk创建一个全局的路径,提供服务的地址或者一个远程的对象等等。(Dubbo就是用zookeeper作为服务注册中心的)二,配置管理(用到了zookeeper的文件系统,通知机制)程序分布式的部署在不同的机器上,将程序的配置信息放在zk的znode下,当有配置发生改变时,也就是zno...
2018-10-14 21:27:58
4413
原创 scala语言实现排序
(1)冒泡排序: package cn.itcast.sort //冒泡排序 class BubbleSort { def main(args: Array[String]): Unit = { val list = List(3, 12, 43, 23, 7, 1, 2, 0) println(sort...
2018-10-14 20:22:26
714
原创 kafka整合sparkStreaming问题
(1)、如何实现sparkStreaming读取kafka中的数据 可以这样说:在kafka0.10版本之前有二种方式与sparkStreaming整合,一种是基于receiver,一种是direct,然后分别阐述这2种方式分别是什么 receiver:是采用了kafka高级api,利用receiver接收器来接受kafka topic中的数据,从kafka接收来的数据...
2018-10-14 20:21:54
313
原创 flume整合sparkStreaming问题
(1)、如何实现sparkStreaming读取flume中的数据 可以这样说: 前期经过技术调研,查看官网相关资料,发现sparkStreaming整合flume有2种模式,一种是拉模式,一种是推模式,然后在简单的聊聊这2种模式的特点,以及如何部署实现,需要做哪些事情,最后对比两种模式的特点,选择那种模式更好。 推模式:Flume将数据Push推给S...
2018-10-14 20:21:18
397
原创 如何解决spark中的数据倾斜问题
发现数据倾斜的时候,不要急于提高executor的资源,修改参数或是修改程序,首先要检查数据本身,是否存在异常数据。 1、数据问题造成的数据倾斜 找出异常的key 如果任务长时间卡在最后最后1个(几个)任务,首先要对key进行抽样分析,判断是哪些key造成的。选取key,对数据进行抽样,统计出现的次数,根据出现次数大小排序取出前几个。 比如: d...
2018-10-14 20:20:31
690
原创 spark中的数据倾斜的现象、原因、后果
(1)、数据倾斜的现象 多数task执行速度较快,少数task执行时间非常长,或者等待很长时间后提示你内存不足,执行失败。 (2)、数据倾斜的原因 数据问题 1、key本身分布不均衡(包括大量的key为空) 2、key的设置不合理 spark使用问题 1、shuffle时的并发度不够...
2018-10-14 20:20:01
920
原创 spark 如何防止内存溢出
driver端的内存溢出 可以增大driver的内存参数:spark.driver.memory (default 1g) 这个参数用来设置Driver的内存。在Spark程序中,SparkContext,DAGScheduler都是运行在Driver端的。对应rdd的Stage切分也是在Driver端运行,如果用户自己写的程序有过多的步骤,切分出过多的Stage,这...
2018-10-14 20:19:16
4158
原创 spark中如何划分stage
1.Spark Application中可以因为不同的Action触发众多的job,一个Application中可以有很多的job,每个job是由一个或者多个Stage构成的,后面的Stage依赖于前面的Stage,也就是说只有前面依赖的Stage计算完毕后,后面的Stage才会运行。 2.Stage划分的依据就是宽依赖,何时产生宽依赖,例如reduceByKey,groupByKe...
2018-10-14 19:43:59
2512
原创 spark中的常用算子区别(map、mapPartitions、foreach、foreachPartition)
map:用于遍历RDD,将函数f应用于每一个元素,返回新的RDD(transformation算子)。 foreach:用于遍历RDD,将函数f应用于每一个元素,无返回值(action算子)。 mapPartitions:用于遍历操作RDD中的每一个分区,返回生成一个新的RDD(transformation算子)。 foreachPartition: 用于遍历操作...
2018-10-14 19:43:30
7234
1
原创 spark中的RDD是什么,有哪些特性
RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。 Dataset:就是一个集合,用于存放数据的 Distributed:分布式,可以并行在集群计算 Resilient:表示弹性的 弹性表示 1、RDD中的数据可以存储在内存或者...
2018-10-14 19:42:14
2862
转载 什么是数据倾斜以及造成的原因
在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这些平均值能代表的价值降低。Hive的执行是分阶段的,map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据均匀的...
2018-10-13 21:01:41
2413
原创 hive和mysql(传统数据库)的区别
1.查询语言不同:hive是hql语言,mysql是sql语句;2.数据存储位置不同:hive是把数据存储在hdfs上,而mysql数据是存储在自己的系统中;3.数据格式:hive数据格式可以用户自定义,mysql有自己的系统定义格式;4.数据更新:hive不支持数据更新,只可以读,不可以写,而sql支持数据更新;5.索引:hive没有索引,因此查询数据的时候是通过mapreduc...
2018-10-12 18:51:27
29057
4
原创 数据仓库和数据库的区别
1、最直白的区别:数据仓库是面向主题,存储的是历史数据。数据库是面向事务,存储的都是当前在线交易的业务数据;2、数据仓库是尽量引入冗余数据,保证数据的完整性,采用反范式设计。而数据库是尽量避免数据冗余,采用的是范式规则;3、本质区别:数据仓库目的是为了分析数据,数据库目的是为了捕获数据;什么是范式?什么是反范式?范式强调的没有任何依赖关系,反范式强调的有依赖关系,比如说查询一条数据...
2018-10-12 18:36:01
4075
原创 什么是scala?scala有什么用?
1.scala是什么? Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。http://www.scala-lang.orgScala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并...
2018-09-19 15:01:05
6010
2
原创 大数据离线日志流程分析
大数据离线日志分析流程: flume是常用的大数据日志收集工具,是一个日志采集框架,主要有三大块组成,即:source(采集数据,channel是一个传输通道,将scource采集来的数据传输给sink,sink负责将数据存储到hdfs分布式存储系统上边)。 sqoop是一个hadoop和关系型数据库之间数据导入导出的一个工具,讲hdfs上的数据传递到mysql或者...
2018-09-13 17:03:17
3055
spark入门学习基础知识
2018-10-17
es入门学习
2018-10-15
大数据知识脉络总结
2018-10-14
140套简历模板
2018-10-14
JVM调优文档知识点总结
2018-10-13
大数据面试宝典
2018-10-13
大数据知识总结
2018-10-13
hbase架构总结分析
2018-10-12
hbase学习课件
2018-10-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人