命中率百分之百的Big Data资料大全
“大数据”,是这两年频繁被提及的一个“热词”,尤其在各大互联网公司,Big Data已经成了“抢手货”。LinkedIn《中国互联网最热职位人才库报告》统计出了当前互联网行业最热门的六大需求职位, 分别是研发工程师、产品经理、人力资源、市场营销、运营和数据分析岗位。
这些职位都是当下任何互联网公司要建立发展必不可少的岗位,尤其是数据分析人才,伴随着Big Data在互联网行业更多的应用而愈加重要。在这六类岗位中,又以数据分析人才的供给指数最低,仅为0.05,是严重稀缺岗位。
九章算法吐血整理的Big Data学习资料大全,希望对你学习Big Data有所帮助。
系统性网络课程推荐
《Data-Intensive Distributed Computing》
Github上的一个文字教程,作业设计的很好,对知识点的考察设计也很详细,不过没有视频。
《Big Data for Data Engineers Specialization》
Coursera上的一个视频课程,包括HDFS、MapReduce、Spark、Real-time Streaming 等大数据应用框架,共5节课程。
九章算法推出的一门针对零基础小白的课程,全中文授课,课程里面都是实战的工业界项目,主要学习MapReduce、Hadoop,主讲老师是硅谷的一位声音巨好听的美女工程师。
《The Ultimate Hands-On Hadoop - Tame your Big Data》
这是Udemy上的一个视频课程,帮助你掌握最流行的大数据技术,设计使用Hadoop和相关技术管理“大数据”的分布式系统,了解YARN,Tez,Mesos等等如何管理Hadoop集群。
《a Certification CBig Datourse (Coursera)》
Coursera上的在线专项课程,通过概述大数据的组织,分析和解释,来推动更好的业务决策,完成时间大概为5个月,被评为2019最好的big data课程之一。
《Microsoft Professional Program in Big Data》
这个课程会讲解Big Data的基础知识,使用Azure托管服务和Hadoop和Spark等开源系统来掌握一些必要的技能。
《Big Data Certification Course from University of Adelaide》
这是edX上的课程,该MicroMasters程序教你使用工具和分析方法,以便将数据用于决策,大规模收集和组织数据,并了解数据分析如何影响组织并带来变化。
IBM Cognitive Class 的《hadoop 系列课程》
内容很全,基本涵盖了所有的hadoop框架下的主流product。
《Introduction to Apache Spark (Spark v2.1)》
这是一个有关Spark的免费的课程,观看者需要学习为Apache Spark 2.1版构建简单的Spark应用程序。 除此之外, 该课程还介绍了使用DataFrames,数据集和用户定义函数(UDF)。
HADOOP 相关高频面试题
1.简单概述 hdfs 原理,以及各个模块的职责
1) 客户端向 nameNode 发送要上传文件的请求;
2) nameNode 返回给用户是否能上传数据的状态;
3) 加入用户端需要上传一个 1024M 的文件,客户端会通过 Rpc 请求 nameNode,并返回需要上传给 DataNode(分配机器的距离以及空间的大 小等),nameNode 会选择就近原则分配机器;
4) 客户端请求建立 block 传输管道 channel 上传数据;
5) 在上传是 DataNode 会与其他的机器建立连接并把数据块传送到其他的机 器上;
6) DataNode 向 nameNode 汇报储存情况以及信息;
7) 当第一个快上传完后,再执行其他复制的传送。
2.fsimage 和 edit 的区别?
当 namenode 与 secondary namenode 进行数据同步时,就会用到了 fsimage 与 edit。
fsimage 是保存最新元数据信息的,当 fsimage 数据到一定大小时,会生成一 个新文件来保存元数据信息,这个新文件就是 edit,edit 会回滚最新数据。
3.hdfs 中的 block 默认保存几份?
不管是 hadoop1.x 还是 hadoop2.x 都是默认保存 3 份,通过参数 dfs.replication 进行修改,副本数目根据机器个数来确定。
4.谈谈数据倾斜,如何发生的,并给出优化方案
数据倾斜主要是两个数据相差的数量不在一个级别上,在执行任务时造成的数 据倾斜,可以通过分区的方法减少数据倾斜性能,例如:抽样和范围的分区、 自定义分区、数据大小倾斜的自定义侧咯。
5.怎样快速杀死一个 job?
1) 执行 hadoop job -list 拿到 job-id
2) Hadoop job kill hadoop-id
6.新增一个节点时怎样快速的启动?
Hadoop-daemon.sh start datanode
7.你认为用 java , streaming , pipe 方式开发 map/reduce,各有什么优点?
开发 mapReduce 只用过 java 与 Hive,不过使用 java 开发 mapreduce 显得 笨拙、效率也慢,基于 java 慢的原因在于 Hive,但这样方便查询与设计。
8.简单概述 hadoop 的 join 的方法
Hadoop 常用的 jion 有 reduce side join , map side join , SemiJoin。不过 reduce side join 与 map side join 比较常用,但都比较耗时。
9.hdfs 的数据压缩算法
Hadoop 的压缩算法有很多,其中比较常用的就是 gzip 算法与 bzip2 算法, 都可以可通过 CompressionCodec 来实现
10.hadoop 的调度
Hadoop 的调度有三种。fifo 调度,是 hadoop 默认的,这种方式是按照作业 的优先级高低与到达时间先后执行;公平调度器,保证分配用户的公平,获取 共享集群;容量调度器,让程序都能获得执行能力,在队列中获得资源。
Big Data常用算法总结
1、Bloom Filter
由一个很长的二进制向量和一系列 hash 函数组成
优点:可以减少 IO 操作,省空间
缺点:不支持删除,有误判
如果要支持删除操作,改成计数布隆过滤器
2、SkipList(跳表)
核心思路: 由多层组成,每层都是一个有序链表,最底层包含所有元素,元素 数逐层递减。
并行编程情况下可以用锁或者 CAS 操作。CAS(compare and swap),解决 多线程并行情况下使用锁造成性能损耗的一种机制,CAS 操作包含三个操作数 ——内存位置(V)、预期原值(A)和新值(B)。
如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值;否则,处理器不做任何 操作。无论哪种情况,它都会在 CAS 指令之前返回该位置的值。
用 CAS 实现的插入:
3、LSM 树(Log-Structured Merge-Tree)
与 B+树相比,牺牲部分读性能,大幅提高写性能。
宗旨:把大量随机写改为批量序列写。
在内存中维护多个小的有序结构,在查找时要二分遍历这些结构,不断把小树 合并为大树,进行批量插入。为了优化查找,可以使用 Bloom Filter,判断小 结构中有没有目标数据。
4、HashTree
用于快速定位海量数据中少量变化的内容;对每一项数据进行 Hash,多项组合之后再 Hash,再 Hash,最后到 Top Hash。
5、Cuckoo 哈希
使用两个哈希函数 H1(X)和 H2(X),插入 X 时,同时计算 H1(X)和 H2(X),如果任意一个桶为空,将 X 插入相应位置;如果都满了,选一个桶把 y 踢掉,放入 X,对 y 执行上述过程。设定最大替换次数,达到次数时增大桶的 数量或者重选 Hash 函数。
Big Data书籍推荐
《Manning Big Data》
教你充分利用集群硬件优势的Lambda架构,以及专门用来捕获和分析网络规模数据的新工具,来创建系统。架构理论很实用,需要有一定实战基础会更容易理解。
《Big Data: The Numbers Game Deciphered》
要想学习简明扼要的关于大数据世界的概述,可以阅读这本只有11页的电子书,这本书以数据科学领域的最新发展为背景,讲述了数据科学领域需要具备的技术/非技术类的技能和一些学习资源。
《8 Essential Concepts of Big Data and Hadoop》
这本指南比较便捷,可以快速了解大数据和Hadoop的8个基本概念。
《Hadoop in Action》
看了以后能比较快地用起来,是本不错的大纲类书籍,适合把Hadoop当做工具,或者是Hadoop集群维护、从配置角度优化Hadoop的时候用。
《Hadoop: The Definitive Guide》
本书对Hadoop系统本身及相关方面都做了比较详细的分析,不过比较枯燥,不易读。
《Secret to Unlocking Tableau's Hidden Potential》
Tableau使分析变得简单易行,不仅适用于分析师,也适用于高层管理人员,IT专业人员以及其他所有人员。书中讲解了能够充分发挥Tableau功能的技巧,以及有用的黑客技巧。
《Top 25 Interview Questions and Answers: Big Data Analysis》
即便你是一位很厉害的数据专家,在求职面试中,你依然需要绞尽脑汁让面试官对你印象深刻,否则你依然很难得到你一直梦寐以求的那个职位,这本书灰机了大数据面试最常问的问题和答案,相信可以助你一臂之力。
Hadoop 技术内幕系列:
《深入解析 Hadoop common 和 HDFS 架构设计与实现原理》
《深入解析 YARN 架构设计与实现原理》
《深入理解 MapReduce 架构设计与实现原理》
篇幅有限,资料不能在此一一列举。有需要更多Big Data学习资料的,可添加九章小助手「小葵(ID:jiuzhangsuanfa2)」回复“知乎大数据”,领取礼包~
九章算法,硅谷一线工程师在线直播授课,已经帮助30000+人成功拿到心仪offer。
九章基础算法班(Java),随时开始、免费试听,零基础转专业找工作必备
更多课程信息请访问:九章算法