MapReduce

8年互联网老兵,2个月面试20家大厂的知识点总结和建议

荒凉一梦 提交于 2020-04-16 11:08:46
【推荐阅读】微服务还能火多久?>>> 本文来自一个8年大数据老兵的面试经历投稿,我完完整整的看了一遍,真的很细很细,疫情期间面试各种失败各种总结,最后拿到Offer实属不易,精神很值得大家学习 前言 我不是什么大牛,我只是一个有八年工作经验的互联网老兵,既没有非常亮眼的学历,也没有牛逼大厂的履历。 这个冬天,在孩子得病从急诊转住院的时候,我得到了年前将被优化的消息,作为家里唯一经济来源的我整个人蒙了,一时间茫然和无助差点毁了我。 最后我还是和家人如实说了,受到了他们的极大的鼓励,也找到了重新开始的勇气。 可惜这场疫情来的如此凶猛,职位少、要求高、电话面试、视频面试、在线coding、屡战屡败、屡败屡战,构成了我这两个月的常规生活。 我一开始也焦虑、茫然,甚至对自己的能力和工作经验深深怀疑。 后来经过几个好朋友的鼓励打气,也看了敖丙的很多面试文章,认真总结自己面试中不足的地方,查漏补缺,终于在这周确定了offer。(这是原话,我真没瞎加哈哈) 接下来我就我之前面过的腾讯、高德、京东、美团、饿了么、快手、字节跳动、滴滴、360金融、跟谁学、网联清算、华晨宝马、快看漫画、陌陌、脉脉等等等公司的面试题做一下总结,权当抛砖引玉,希望对大家有帮忙。 面试问题汇总 基础问题 linux和网络基础 (1)linux系统内核态和用户态是什么,有什么区别? (2)BIO、NIO、AIO都是什么

Google 经典论文MapReduce

ε祈祈猫儿з 提交于 2020-04-14 08:51:58
【今日推荐】:为什么一到面试就懵逼!>>> 摘要 MapReduce是处理和生成大型数据集的编程模型和相关实现。用户指定处理键/值对以生成中间键/值对的映射函数,以及合并与同一中间键关联的所有中间值的reduce函数。如文中所示,该模型可以表达现实世界中的许多任务。 在该功能样式中编写的程序是自动并行化和执行的大型自定义计算机。运行时系统负责划分输入数据、跨一组机器调度程序执行、处理机器故障和管理所需的机器间通信的细节。这使得没有任何并行和分布式系统经验的程序员能够轻松地利用大型分布式系统的资源。 我们的MapReduce实现运行在一个大型的商用机器集群上,并且具有高度的可伸缩性:典型的MapReduce计算在数千台机器上处理许多兆字节的数据。程序员发现了系统的复杂性:每天在谷歌的集群上执行一千个MapReduce作业的数量超过了100%。 简介: 在过去的五年中,作者和谷歌的许多其他人已经实现了数百种特殊用途的计算,这些计算处理大量原始数据,如爬网文档、web请求日志等,以计算各种派生数据,如倒排索引、web文档的图形结构的各种表示,每个主机爬网的页数摘要,给定主机中最频繁的查询集 天,等等。大多数这样的计算在概念上是直接的。然而,输入数据通常很大,为了在合理的时间内完成,计算必须分布在成百上千台机器上。如何并行计算、分布数据和处理失败的问题

大数据 面试题 知识点

故事扮演 提交于 2020-04-11 19:44:04
目录 一.Hadoop 1.hdfs写流程 2.hdfs读流程 3.hdfs的体系结构 4.一个datanode 宕机,怎么一个流程恢复 5.hadoop 的 namenode 宕机,怎么解决 6.namenode对元数据的管理 7.元数据的checkpoint 8.yarn资源调度流程 9.hadoop中combiner和partition的作用 10.用mapreduce怎么处理数据倾斜问题? 11.shuffle 阶段,你怎么理解的 12.Mapreduce 的 map 数量 和 reduce 数量 怎么确定 ,怎么配置 13.MapReduce优化经验 14.分别举例什么情况要使用 combiner,什么情况不使用? 15.MR运行流程解析 16.简单描述一下HDFS的系统架构,怎么保证数据安全? 17.在通过客户端向hdfs中写数据的时候,如果某一台机器宕机了,会怎么处理 18.Hadoop优化有哪些方面 19.大量数据求topN(写出mapreduce的实现思路) 20.列出正常工作的hadoop集群中hadoop都分别启动哪些进程以及他们的作用 21.Hadoop总job和Tasks之间的区别是什么? 22.Hadoop高可用 23.简要描述安装配置一个hadoop集群的步骤 24.fsimage和edit的区别 二.Hive 1.hive优化 2.Udf udaf

基于Flink流处理的动态实时电商实时分析系统

女生的网名这么多〃 提交于 2020-04-11 08:51:03
在开始学习前给大家说下什么是Flink? 1. Flink 是一个针对流数据和批数据的分布式处理引擎,主要用Java代码实现。 2.Apache Flink作为Apache的顶级项目,Flink集众多优点于一身,包括快速、可靠可扩展、完全兼容Hadoop、使用简便、表现卓越。 通过以上的描述大家对Flink有了一个基本的认识,本套课程不会讲解基础内容,因此建议有Flink基础的同学进行认购。 开始学习前建议大家认真阅读下文: 随着人工智能时代的降临,数据量的爆发,在典型的大数据的业务场景下数据业务最通用的做法是:选用批处理的技术处理全量数据,采用流式计算处理实时增量数据。在绝大多数的业务场景之下,用户的业务逻辑在批处理和流处理之中往往是相同的。但是,用户用于批处理和流处理的两套计算引擎是不同的。 因此,用户通常需要写两套代码。毫无疑问,这带来了一些额外的负担和成本。阿里巴巴的商品数据处理就经常需要面对增量和全量两套不同的业务流程问题,所以阿里就在想,我们能不能有一套统一的大数据引擎技术,用户只需要根据自己的业务逻辑开发一套代码。这样在各种不同的场景下,不管是全量数据还是增量数据,亦或者实时处理,一套方案即可全部支持,这就是阿里选择Flink的背景和初衷。 随着互联网不断发展,数据量不断的增加,大数据也是快速的发展起来了。对于电商系统,拥有着庞大的数据量,对于这么庞大的数据

参考《机器学习实战》高清中文PDF+高清英文PDF+源代码

我的未来我决定 提交于 2020-04-11 07:52:22
机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或模式,成为各行业求生存、谋发展的决定性手段,这使得这一过去为分析师和数学家所专属的研究领域越来越为人们所瞩目。 入门建议参考《机器学习实战》,分为4个部分,分别是分类(有监督学习,包括KNN/决策树/朴素贝叶斯/逻辑斯蒂回归/svm/改变样本权重的bagging和adaboosting)、回归(有监督学习,线性回归、局部加权、特征维度比样本个数多时缩减系数,如岭回归、lasso等,树回归,这块掌握不太好)、无监督学习(kmeans、apriori/fp-growth)以及其他工具(PCA/SVD/MAPREDUCE)。 学习参考: 《机器学习实战》高清中文版, 339页,带目录书签,文字可复制;高清英文版, 382页,带目录书签,文字可复制; 中英文两版对比学习。讲解详细并配有源代码。 网盘下载: http://106.13.73.98 ![](https://img2018.cnblogs.com/other/1499715/201906/1499715-20190604164225573-1297509638.png) 来源: oschina 链接: https://my.oschina.net/u/4258425/blog/3228795

面试题汇总

扶醉桌前 提交于 2020-04-10 10:47:04
基础问题 linux和网络基础 (1)linux系统内核态和用户态是什么,有什么区别? (2)BIO、NIO、AIO都是什么,有什么区别? (3)TCP和UDP的区别? (4)详细叙述TCP3次握手,TCP和HTTP的区别,其中字节面试官问的最细,他会具体问TCP底层的3次握手的具体实现逻辑,第三次握手如果失败会怎样。 建议把TCP关闭时的4次挥手也看看,敖丙的文章就有,看了至少表面的东西难不倒你们,由于这个是最基础的问题,如果回答不好,面试官的印象分就你懂得。 (5)rpc和http的区别,你知道有什么rpc框架。 (6)https相对http都实现了什么加密方式,是对称加密还是非对称加密? (7)用linux命令怎么做分组求和,怎么把字符串根据分隔符变成数组(这里建议大家读读敖丙的linux命令篇) JVM基础 (1)简要介绍一下JVM虚拟机(这个问题不是把JVM分成JMM,类加载和GC来问,一定要想好怎么描述JVM) (2)简述一次GC的过程(Minor gc和Major gc过程还记得么) (3)JMM是什么? (4)JVM共享内存都有什么,什么是堆外内存? (5)GC区域,垃圾回收算法,垃圾回收器,G1、CMS、ParNew等垃圾回收器的简介和之间的区别。 (6)类加载过程(5个过程最好能研究明白,因为还涉及到栈帧、局部表量表、操作数栈、动态链接和方法出口等知识

大数据入门之hadoop相关概念知识点整理

青春壹個敷衍的年華 提交于 2020-04-10 09:39:26
Hadoop是一个开源框架,允许使用简单的编程模型在跨计算机集群的分布式环境中存储和处理大数据。它的设计是从单个服务器扩展到数千个机器,每个都提供本地计算和存储。今天整理了一些关于hadoop相关概念的知识点,觉得文章有用的小伙伴可以直接收藏~ Hadoop介绍: Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。 HDFS有高容错性的特点,并且设计用来部署在低廉的硬件上;而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。 Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。 1)HDFS HDFS自动保存多个副本,移动计算。缺点是小文件存取占用namenode内存,写入只支持追加,不能随机修改。它存储的逻辑空间称为block,文件的权限类似linux。整体架构分三种节点,NN,SNN,DN NN 负责读写操作保存metadata(Ownership Permission blockinfo) SNN 负责辅助NN合并fsimage和edits,减少nn启动时间 DN 负责存数据,每个数据(文件)分割成若干block,每个block默认3个副本。启动后像NN发送心跳保持联系

hadoop 2.9.2 完全分布式安装

余生颓废 提交于 2020-04-10 09:11:18
完全分布式安装 完全分布式环境部署Hadoop 完全分布式是真正利用多台Linux主机进行部署Hadoop,对Linux机器集群进行规划,使Hadoop各个模块分别部署在不同的多台机器上; 1.环境准备 虚拟机安装,在此使用KVM虚拟机; 2.网络配置 配置完成后可以访问外网即可; 3.hostname配置 将三台主机分别命名加以区分; 4.hosts配置 修改主机名 hostname hadoop-node1 hostname hadoop-node2 hostname hadoop-node3 将三台主机名和IP地址对应关系写入hosts文件; vim /etc/hosts 10.10.2.177 hadoop-node1 10.10.2.178 hadoop-node2 10.10.2.179 hadoop-node3 5.服务器功能角色规划 hadoop-node1 hadoop-node2 hadoop-node3 NameNode ResourceManage DataNode DataNode DataNode NodeManager NodeManager NodeManager HistoryServer SecondaryNameNode 6.在一台机器上安装Hadoop #在此,先在第一台机器上解压、配置hadoop

Hadoop入门之hdfs

限于喜欢 提交于 2020-04-08 22:11:57
大数据技术开篇之Hadoop入门【hdfs】     学习都是从了解到熟悉的过程,而学习一项新的技术的时候都是从这个技术是什么?可以干什么?怎么用?如何优化?这几点开始。今天这篇文章分为两个部分。一、hadoop概述 二、hadoop核心技术之一的hdfs的讲解。 【hadoop概述】 一、hadoop是什么? Hadoop是一个由Apache基金会所开发的 分布式系统 基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个 分布式文件系统 (Hadoop Distributed File System),简称HDFS。HDFS有高 容错性 的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问 应用程序 的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。   简单概况就是hadoop是一个分布式系统的基础架构,通过分布式来进行高速运算和存储。 二、用来干什么?  

Hadoop MapReduce

巧了我就是萌 提交于 2020-04-08 11:32:10
MapReduce MapReduce 是一种可用于 数据处理的编程模型 。该模型比较简单,不易编写有用的程序。Hadoop 可以运行 各种语言 版本的MapReduce程序。MapRudece 程序本质是 并行运行 的,可以将大规模的数据分析任务分发给任何一个拥有足够多机器的数据中心。优势:处理大规模的数据集。 标签: 数据处理的编程模型、支持多语言、本质并行运行、优势处理大规模数据集 来源: 51CTO 作者: chainaxxboy 链接: https://blog.51cto.com/linuxboys/2430784