- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
平衡二叉树
平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体,也是第一个引入平衡概念的二叉树。1962年,G.M. Adelson-Velsky 和 E.M. Landis发明了这棵树,所以它又叫AVL树。平衡二叉树要求对于每一个节点来说,它的左右子树的高度之差不能超过1,如果插入或者删除一个节点使得高度之差大于1,就要进行节点之间的旋转,将二叉树重新维持在一个平衡状态。这个方案很好的解决了二叉查找树退化成链表的问题,把插入,查找,删除的时间复杂度最好情况和最坏情况都维持在O(logN)。但是频繁旋转会使插入和删除牺牲掉O(logN)左右的时间,不过相对二叉查找树来说,时间上稳定了很多。
红黑树
它是一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。
红黑树的特性:
(1)每个节点不是黑色就是红色
(2)根节点是黑色。
(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!]
(4)如果一个节点是红色的,则它的子节点必须是黑色的。
(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。
trie树
又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构
三个基本性质:
1. 根结点不包含字符,除根结点外每一个结点都只包含一个字符。
2. 从根结点到某一结点,路径上经过的字符连接起来,为该结点对应的字符串。
3. 每个结点的所有子结点包含的字符都不相同。
集合框架HashMap 的扩容机制,ConcurrentHashMap的原理?
HashMap每次原来容量的2倍扩容,ConcurrentHashMap会把数据分成多个Segment,每个Segment里面包含一个HashEntry数据,数据就存储在HashEntry数组中,操作的同步时发生在一个个Segment上。
6 个设计原则分别是什么?
单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、开闭原则
单一职责原则:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责?
里氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象
依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
接口隔离原则:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上
迪米特法则:一个对象应该对其他对象保持最少的了解
开闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭
如何实现hadoop 的安全机制?
1.1 共享hadoop 集群:
a: 管理人员把开发人员分成了若干个队列,每个队列有一定的资源,每个用户及用户组只能使用某个队列中指定资源。
b: HDFS 上有各种数据,公用的,私有的,加密的。不同的用户可以访问不同的数据。
1.2 HDFS 安全机制
client 获取namenode 的初始访问认证( 使用kerberos )后,会获取一个delegation token,这个token 可以作为接下来访问HDFS 或提交作业的认证。同样,读取block 也是一样的。
1.3 mapreduce 安全机制所有关于作业的提交或者作业运行状态的追踪均是采用带有Kerberos 认证的RPC 实现的。授权用户提交作业时,JobTracker 会为之生成一个delegation token,该token 将被作为job 的一部分存储到HDFS上并通过RPC 分发给各个TaskTracker,一旦job 运行结束,该token 失效。
1.4 DistributedCache 是安全的。
DistribuedCache 分别两种,一种是shared,可以被所有作业共享,而private 的只能被该用户的作业共享。
1.5 RPC 安全机制
在Hadoop RPC 中添加了权限认证授权机制。当用户调用RPC 时,用户的login name 会通过RPC 头部传递给RPC,使用Simple Authentication and Security Layer(SASL)确定一个权限协议(支持Kerberos 和DIGEST-MD5 两种),完成RPC 授权。
在使用hadoop 或者是spark 中遇到过哪些问题,是如何处理解决的?
2.1 数据倾斜。
出现这种情况:多数是由于代码的质量写的不够健壮。查看日志:发现问题。
2.2 spark-出现OOM
小数据量的情况可以cache,数据量大的情况必须考虑内存使用。
hadoop 的调度策略的实现,你们使用的是那种策略,为什么?
默认情况下hadoop 使用的FIFO, 先进先
文档评论(0)