精华内容
下载资源
问答
  • 大数据开发岗位面试简历模板+笔试真题+实际项目经验
  • 大数据开发岗位面经收集

    千次阅读 2019-04-21 15:14:10
    大数据开发岗位面经收集1. 一次计算各时区的DAU(Daily Active User)假设有最近48小时的数据,如何一次性计算24个时区各自的DAU,而不是计算24次。2. 分布式求平均值一些整数数据分布的存储在多台机器上,每台20TB...

    1. 一次计算各时区的DAU(Daily Active User)

    假设有最近48小时的数据,如何一次性计算24个时区各自的DAU,而不是计算24次。

    pipeline,在进入管道前对数据按时区进行“分类”,然后将数据放入管道,在管道内一次计算,求聚合值。

    2. 分布式求平均值

    一些整数数据分布的存储在多台机器上,每台20TB,需要求这些数的平均数。请简述计算方法和数据流。

    20TB,数据量过于庞大,则需要考虑使用中间件。类比mysql的mycat,利用中间件对过于庞大的数据进行维护等操作。

    3. HashMap的底层原理

    (1)HashMap简述:

    HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。

    HashMap的数据结构:是一个“链表散列”的数据结构,即数组和链表的结合体

    当我们往Hashmap中put元素时,首先根据key的hashcode重新计算hash值,根据hash值得到这个元素在数组中的位置(下标),如果该数组在该位置上已经存放了其他元素,那么在这个位置上的元素将以链表的形式存放,新加入的放在链头,最先加入的放入链尾.如果数组中该位置没有元素,就直接将该元素放到数组的该位置上。

    需要注意Jdk 1.8中对HashMap的实现做了优化,当链表中的节点数据超过八个之后,该链表会转为红黑树来提高查询效率,从原来的O(n)到O(logn)

    上面题目及解答来源于:https://www.nowcoder.com/discuss/165412

    展开全文
  • 经常有初学者在博客和QQ问我,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,...是软件专业,对软件开发、编程、写代码感兴趣?还是数学、统计学专业,对数据和数字特别感兴趣

    经常有初学者在博客和QQ问我,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高。如果自己很迷茫,为了这些原因想往大数据方向发展,也可以,那么我就想问一下,你的专业是什么,对于计算机/软件,你的兴趣是什么?是计算机专业,对操作系统、硬件、网络、服务器感兴趣?是软件专业,对软件开发、编程、写代码感兴趣?还是数学、统计学专业,对数据和数字特别感兴趣……
        其实这就是想告诉你的大数据的三个发展方向,平台搭建/优化/运维/监控、大数据开发/设计/架构、数据分析/挖掘。请不要问我哪个容易,哪个前景好,哪个钱多。
        先扯一下大数据的4V特征:
        数据量大,TB->PB
        数据类型繁多,结构化、非结构化文本、日志、视频、图片、地理位置等;
        商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来;
        处理时效性高,海量数据的处理需求不再局限在离线计算当中。
        现如今,正式为了应对大数据的这几个特点,开源的大数据框架越来越多,越来越强,先列举一些常见的:
        文件存储:Hadoop HDFS、Tachyon、KFS离线计算:Hadoop MapReduce、Spark流式、实时计算:Storm、Spark Streaming、S4、HeronK-V、NOSQL数据库:HBase、Redis、MongoDB资源管理:YARN、Mesos日志收集:Flume、Scribe、Logstash、Kibana消息系统:Kafka、StormMQ、ZeroMQ、RabbitMQ查询分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid分布式协调服务:Zookeeper集群管理与监控:Ambari、Ganglia、Nagios、Cloudera
    Manager数据挖掘、机器学习:Mahout、Spark MLLib数据同步:Sqoop任务调度:Oozie……

        眼花了吧,上面的有30多种吧,别说精通了,全部都会使用的,估计也没几个。
        就我个人而言,主要经验是在第二个方向(开发/设计/架构),且听听我的建议吧。
        第一章:初识Hadoop
        1.1学会百度与Google
        不论遇到什么问题,先试试搜索并自己解决。
        Google首选,翻不过去的,就用百度吧。
        1.2参考资料首选官方文档
        特别是对于入门来说,官方文档永远是首选文档。
        相信搞这块的大多是文化人,英文凑合就行,实在看不下去的,请参考第一步。
        1.3先让Hadoop跑起来
        Hadoop可以算是大数据存储和计算的开山鼻祖,现在大多开源的大数据框架都依赖Hadoop或者与它能很好的兼容。
        关于Hadoop,你至少需要搞清楚以下是什么:
        Hadoop 1.0、Hadoop 2.0
        MapReduce、HDFS
        NameNode、DataNode
        JobTracker、TaskTracker
        Yarn、ResourceManager、NodeManager
        自己搭建Hadoop,请使用第一步和第二步,能让它跑起来就行。
        建议先使用安装包命令行安装,不要使用管理工具安装。
        另外:Hadoop1.0知道它就行了,现在都用Hadoop 2.0.
        1.4试试使用Hadoop
        HDFS目录操作命令;上传、下载文件命令;提交运行MapReduce示例程序;
        打开Hadoop WEB界面,查看Job运行状态,查看Job运行日志。
        知道Hadoop的系统日志在哪里。
        1.5你该了解它们的原理了
        MapReduce:如何分而治之;HDFS:数据到底在哪里,什么是副本;Yarn到底是什么,它能干什么;NameNode到底在干些什么;ResourceManager到底在干些什么;
        1.6自己写一个MapReduce程序
        请仿照WordCount例子,自己写一个(照抄也行)WordCount程序,打包并提交到Hadoop运行。
        你不会Java?Shell、Python都可以,有个东西叫Hadoop Streaming。
        如果你认真完成了以上几步,恭喜你,你的一只脚已经进来了。
        第二章:更高效的WordCount
        2.1学点SQL吧
        你知道数据库吗?你会写SQL吗?如果不会,请学点SQL吧。
        2.2 SQL版WordCount
        在1.6中,你写(或者抄)的WordCount一共有几行代码?
        给你看看我的:
        SELECT word,COUNT(1) FROM wordcount GROUP BY word;
        这便是SQL的魅力,编程需要几十行,甚至上百行代码,我这一句就搞定;使用SQL处理分析Hadoop上的数据,方便、高效、易上手、更是趋势。不论是离线计算还是实时计算,越来越多的大数据处理框架都在积极提供SQL接口。
        2.3 SQL On Hadoop之Hive
        什么是Hive?官方给的解释是:
        The Apache Hive data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage and queried using SQL syntax.
        为什么说Hive是数据仓库工具,而不是数据库工具呢?有的朋友可能不知道数据仓库,数据仓库是逻辑上的概念,底层使用的是数据库,数据仓库中的数据有这两个特点:最全的历史数据(海量)、相对稳定的;所谓相对稳定,指的是数据仓库不同于业务系统数据库,数据经常会被更新,数据一旦进入数据仓库,很少会被更新和删除,只会被大量查询。而Hive,也是具备这两个特点,因此,Hive适合做海量数据的数据仓库工具,而不是数据库工具。
        2.4安装配置Hive
        请参考1.1和 1.2完成Hive的安装配置。可以正常进入Hive命令行。
        2.5试试使用Hive
        请参考1.1和 1.2 ,在Hive中创建wordcount表,并运行2.2中的SQL语句。在Hadoop WEB界面中找到刚才运行的SQL任务。
        看SQL查询结果是否和1.4中MapReduce中的结果一致。
        2.6 Hive是怎么工作的
        明明写的是SQL,为什么Hadoop WEB界面中看到的是MapReduce任务?
        2.7学会Hive的基本命令
        创建、删除表;加载数据到表;下载Hive表的数据;
        请参考1.2,学习更多关于Hive的语法和命令。
        如果你已经按照《写给大数据开发初学者的话》中第一章和第二章的流程认真完整的走了一遍,那么你应该已经具备以下技能和知识点:
        0和Hadoop2.0的区别;
        MapReduce的原理(还是那个经典的题目,一个10G大小的文件,给定1G大小的内存,如何使用Java程序统计出现次数最多的10个单词及次数);
        HDFS读写数据的流程;向HDFS中PUT数据;从HDFS中下载数据;
        自己会写简单的MapReduce程序,运行出现问题,知道在哪里查看日志;
        会写简单的SELECT、WHERE、GROUP BY等SQL语句;
        Hive SQL转换成MapReduce的大致流程;
        Hive中常见的语句:创建表、删除表、往表中加载数据、分区、将表中数据下载到本地;


      从上面的学习,你已经了解到,HDFS是Hadoop提供的分布式存储框架,它可以用来存储海量数据,MapReduce是Hadoop提供的分布式计算框架,它可以用来统计和分析HDFS上的海量数据,而Hive则是SQL On Hadoop,Hive提供了SQL接口,开发人员只需要编写简单易上手的SQL语句,Hive负责把SQL翻译成MapReduce,提交运行。    此时,你的”大数据平台”是这样的:



    那么问题来了,海量数据如何到HDFS上呢?
        第三章:把别处的数据搞到Hadoop上
        此处也可以叫做数据采集,把各个数据源的数据采集到Hadoop上。
        3.1 HDFS PUT命令
        这个在前面你应该已经使用过了。
        put命令在实际环境中也比较常用,通常配合shell、python等脚本语言来使用。
        建议熟练掌握。
        3.2 HDFS API
        HDFS提供了写数据的API,自己用编程语言将数据写入HDFS,put命令本身也是使用API。
        实际环境中一般自己较少编写程序使用API来写数据到HDFS,通常都是使用其他框架封装好的方法。比如:Hive中的INSERT语句,Spark中的saveAsTextfile等。
        建议了解原理,会写Demo。
        3.3 Sqoop
        Sqoop是一个主要用于Hadoop/Hive与传统关系型数据库Oracle/MySQL/SQLServer等之间进行数据交换的开源框架。
        就像Hive把SQL翻译成MapReduce一样,Sqoop把你指定的参数翻译成MapReduce,提交到Hadoop运行,完成Hadoop与其他数据库之间的数据交换。
        自己下载和配置Sqoop(建议先使用Sqoop1,Sqoop2比较复杂)。
        了解Sqoop常用的配置参数和方法。
        使用Sqoop完成从MySQL同步数据到HDFS;使用Sqoop完成从MySQL同步数据到Hive表;
        PS:如果后续选型确定使用Sqoop作为数据交换工具,那么建议熟练掌握,否则,了解和会用Demo即可。
        3.4 Flume
        Flume是一个分布式的海量日志采集和传输框架,因为“采集和传输框架”,所以它并不适合关系型数据库的数据采集和传输。
        Flume可以实时的从网络协议、消息系统、文件系统采集日志,并传输到HDFS上。
        因此,如果你的业务有这些数据源的数据,并且需要实时的采集,那么就应该考虑使用Flume。
        下载和配置Flume。
        使用Flume监控一个不断追加数据的文件,并将数据传输到HDFS;
        PS:Flume的配置和使用较为复杂,如果你没有足够的兴趣和耐心,可以先跳过Flume。
        3.5阿里开源的DataX
        之所以介绍这个,是因为我们公司目前使用的Hadoop与关系型数据库数据交换的工具,就是之前基于DataX开发的,非常好用。
        可以参考我的博文《异构数据源海量数据交换工具-Taobao DataX下载和使用》。
        现在DataX已经是3.0版本,支持很多数据源。
        你也可以在其之上做二次开发。
        PS:有兴趣的可以研究和使用一下,对比一下它与Sqoop。
        如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的:



    第四章:把Hadoop上的数据搞到别处去
        前面介绍了如何把数据源的数据采集到Hadoop上,数据到Hadoop上之后,便可以使用Hive和MapReduce进行分析了。那么接下来的问题是,分析完的结果如何从Hadoop上同步到其他系统和应用中去呢?
        其实,此处的方法和第三章基本一致的。
        4.1 HDFS GET命令
        把HDFS上的文件GET到本地。需要熟练掌握。
        4.2 HDFS API
        同3.2.
        4.3 Sqoop
        同3.3.
        使用Sqoop完成将HDFS上的文件同步到MySQL;使用Sqoop完成将Hive表中的数据同步到MySQL;
        4.4 DataX
        同3.5.
        如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的:


    如果你已经按照《写给大数据开发初学者的话2》中第三章和第四章的流程认真完整的走了一遍,那么你应该已经具备以下技能和知识点:
        知道如何把已有的数据采集到HDFS上,包括离线采集和实时采集;
        你已经知道sqoop(或者还有DataX)是HDFS和其他数据源之间的数据交换工具;
        你已经知道flume可以用作实时的日志采集。
        从前面的学习,对于大数据平台,你已经掌握的不少的知识和技能,搭建Hadoop集群,把数据采集到Hadoop上,使用Hive和MapReduce来分析数据,把分析结果同步到其他数据源。
        接下来的问题来了,Hive使用的越来越多,你会发现很多不爽的地方,特别是速度慢,大多情况下,明明我的数据量很小,它都要申请资源,启动MapReduce来执行。
        第五章:快一点吧,我的SQL
        其实大家都已经发现Hive后台使用MapReduce作为执行引擎,实在是有点慢。
        因此SQL On Hadoop的框架越来越多,按我的了解,最常用的按照流行度依次为SparkSQL、Impala和Presto.
        这三种框架基于半内存或者全内存,提供了SQL接口来快速查询分析Hadoop上的数据。关于三者的比较,请参考1.1.
        我们目前使用的是SparkSQL,至于为什么用SparkSQL,原因大概有以下吧:
        使用Spark还做了其他事情,不想引入过多的框架;
        Impala对内存的需求太大,没有过多资源部署;
        5.1关于Spark和SparkSQL
        什么是Spark,什么是SparkSQL。Spark有的核心概念及名词解释。SparkSQL和Spark是什么关系,SparkSQL和Hive是什么关系。SparkSQL为什么比Hive跑的快。
        5.2如何部署和运行SparkSQL
        Spark有哪些部署模式?如何在Yarn上运行SparkSQL?使用SparkSQL查询Hive中的表。
        PS: Spark不是一门短时间内就能掌握的技术,因此建议在了解了Spark之后,可以先从SparkSQL入手,循序渐进。
        关于Spark和SparkSQL,可参考 http://lxw1234.com/archives/category/spark
        如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的:
     
        第六章:一夫多妻制
        请不要被这个名字所诱惑。其实我想说的是数据的一次采集、多次消费。
        在实际业务场景下,特别是对于一些监控日志,想即时的从日志中了解一些指标(关于实时计算,后面章节会有介绍),这时候,从HDFS上分析就太慢了,尽管是通过Flume采集的,但Flume也不能间隔很短就往HDFS上滚动文件,这样会导致小文件特别多。
        为了满足数据的一次采集、多次消费的需求,这里要说的便是Kafka。
        6.1关于Kafka
        什么是Kafka?
        Kafka的核心概念及名词解释。
        6.2如何部署和使用Kafka
        使用单机部署Kafka,并成功运行自带的生产者和消费者例子。
        使用Java程序自己编写并运行生产者和消费者程序。
        Flume和Kafka的集成,使用Flume监控日志,并将日志数据实时发送至Kafka。
        如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的:
        这时,使用Flume采集的数据,不是直接到HDFS上,而是先到Kafka,Kafka中的数据可以由多个消费者同时消费,其中一个消费者,就是将数据同步到HDFS。
        如果你已经按照《写给大数据开发初学者的话3》中第五章和第六章的流程认真完整的走了一遍,那么你应该已经具备以下技能和知识点:
        为什么Spark比MapReduce快。
        使用SparkSQL代替Hive,更快的运行SQL。
        使用Kafka完成数据的一次收集,多次消费架构。
        自己可以写程序完成Kafka的生产者和消费者。
        从前面的学习,你已经掌握了大数据平台中的数据采集、数据存储和计算、数据交换等大部分技能,而这其中的每一步,都需要一个任务(程序)来完成,各个任务之间又存在一定的依赖性,比如,必须等数据采集任务成功完成后,数据计算任务才能开始运行。如果一个任务执行失败,需要给开发运维人员发送告警,同时需要提供完整的日志来方便查错。
        第七章:越来越多的分析任务
        不仅仅是分析任务,数据采集、数据交换同样是一个个的任务。这些任务中,有的是定时触发,有点则需要依赖其他任务来触发。当平台中有几百上千个任务需要维护和运行时候,仅仅靠crontab远远不够了,这时便需要一个调度监控系统来完成这件事。调度监控系统是整个数据平台的中枢系统,类似于AppMaster,负责分配和监控任务。
        7.1 Apache Oozie
        1. Oozie是什么?有哪些功能?2. Oozie可以调度哪些类型的任务(程序)?3. Oozie可以支持哪些任务触发方式?4.安装配置Oozie。
        7.2其他开源的任务调度系统
        Azkaban:
        light-task-scheduler:
        Zeus:
        等等……
        另外,我这边是之前单独开发的任务调度与监控系统,具体请参考《大数据平台任务调度与监控系统》。
        如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的:
        第八章:我的数据要实时
        在第六章介绍Kafka的时候提到了一些需要实时指标的业务场景,实时基本可以分为绝对实时和准实时,绝对实时的延迟要求一般在毫秒级,准实时的延迟要求一般在秒、分钟级。对于需要绝对实时的业务场景,用的比较多的是Storm,对于其他准实时的业务场景,可以是Storm,也可以是Spark Streaming。当然,如果可以的话,也可以自己写程序来做。
        8.1 Storm
        1.什么是Storm?有哪些可能的应用场景?2. Storm由哪些核心组件构成,各自担任什么角色?3. Storm的简单安装和部署。4.自己编写Demo程序,使用Storm完成实时数据流计算。
        8.2 Spark Streaming
        1.什么是Spark Streaming,它和Spark是什么关系?2. Spark Streaming和Storm比较,各有什么优缺点?3.使用Kafka + Spark Streaming,完成实时计算的Demo程序。
        如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的:
        至此,你的大数据平台底层架构已经成型了,其中包括了数据采集、数据存储与计算(离线和实时)、数据同步、任务调度与监控这几大模块。接下来是时候考虑如何更好的对外提供数据了。
        第九章:我的数据要对外
        通常对外(业务)提供数据访问,大体上包含以下方面:
        离线:比如,每天将前一天的数据提供到指定的数据源(DB、FILE、FTP)等;离线数据的提供可以采用Sqoop、DataX等离线数据交换工具。
        实时:比如,在线网站的推荐系统,需要实时从数据平台中获取给用户的推荐数据,这种要求延时非常低(50毫秒以内)。
        根据延时要求和实时数据的查询需要,可能的方案有:HBase、Redis、MongoDB、ElasticSearch等。
        OLAP分析:OLAP除了要求底层的数据模型比较规范,另外,对查询的响应速度要求也越来越高,可能的方案有:Impala、Presto、SparkSQL、Kylin。如果你的数据模型比较规模,那么Kylin是最好的选择。
        即席查询:即席查询的数据比较随意,一般很难建立通用的数据模型,因此可能的方案有:Impala、Presto、SparkSQL。
        这么多比较成熟的框架和方案,需要结合自己的业务需求及数据平台技术架构,选择合适的。原则只有一个:越简单越稳定的,就是最好的。
        如果你已经掌握了如何很好的对外(业务)提供数据,那么你的“大数据平台”应该是这样的:
        第十章:牛逼高大上的机器学习
        关于这块,我这个门外汉也只能是简单介绍一下了。数学专业毕业的我非常惭愧,很后悔当时没有好好学数学。
        在我们的业务中,遇到的能用机器学习解决的问题大概这么三类:
        分类问题:包括二分类和多分类,二分类就是解决了预测的问题,就像预测一封邮件是否垃圾邮件;多分类解决的是文本的分类;
        聚类问题:从用户搜索过的关键词,对用户进行大概的归类。
        推荐问题:根据用户的历史浏览和点击行为进行相关推荐。
        大多数行业,使用机器学习解决的,也就是这几类问题。
        入门学习线路:
        数学基础;
        机器学习实战(Machine Learning in Action),懂Python最好;
        SparkMlLib提供了一些封装好的算法,以及特征处理、特征选择的方法。
        机器学习确实牛逼高大上,也是我学习的目标。

        那么,可以把机器学习部分也加进你的“大数据平台”了。

     

    展开全文
  • 大数据开发/设计/架构 数据分析/挖掘。 二、大数据的4V特征: 数据量大,TB->PB 数据类型繁多,结构化、非结构化文本、日志、视频、图片、地理位置等; 商业价值高,但是这种价值需要在海量数据之上,通过数据...

    一、大数据的三个发展方向

    • 平台搭建/优化/运维/监控
    • 大数据开发/设计/架构
    • 数据分析/挖掘。

    二、大数据的4V特征:

    • 数据量大,TB->PB
    • 数据类型繁多,结构化、非结构化文本、日志、视频、图片、地理位置等;
    • 商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来;
    • 处理时效性高,海量数据的处理需求不再局限在离线计算当中。

    现如今,正式为了应对大数据的这几个特点,开源的大数据框架越来越多,越来越强,先列举一些常见的:

    • 文件存储:HDFS、Alluxio(Tachyon)、oss、s3a、KFS
    • 离线计算:MR、Spark
    • 流式、实时计算:Storm、Spark Streaming、S4、HeronK-V、NOSQL
    • 数据库:HBase、PostgreSQL 、Redis、MongoDB
    • 资源管理:YARN、Mesos
    • 日志收集:Flume、Logstash、Kibana、Scribe
    • 消息系统:Kafka、StormMQ、ZeroMQ、RabbitMQ
    • 查询分析:Hive、Impala、PhoenixSparkSQLFlink、Drill、Kylin、Apache Druid、Pig、Presto
    • 分布式协调服务:Zookeeper
    • 集群管理与监控:Ambari(HDP)Cloudera Manager(CDH)、Ganglia、Nagios
    • 数据挖掘、机器学习:Spark ML、TensorFlow、Pytorch、Mahout
    • 数据同步:Sqoop、DataX、Kettle;实时同步:canal、otter
    • 任务调度:Oozie……

    眼花了吧,上面的有30多种吧,别说精通了,全部都会使用的,估计也没几个。

    三、第二个方向(开发/设计/架构)

    3.1、初识Hadoop

    3.1.1、Spark

    3.2、Hive vs SparkSql

    3.3、海量数据如何到HDFS上

    此处也可以叫做数据采集,把各个数据源的数据采集到Hadoop上。

    3.3.1、 HDFS PUT命令

    put命令在实际环境中也比较常用,通常配合shell、python等脚本语言来使用。建议熟练掌握。

    3.3.2、 HDFS API

    HDFS提供了写数据的API,自己用编程语言将数据写入HDFS,put命令本身也是使用API。

     际环境中一般自己较少编写程序使用API来写数据到HDFS,通常都是使用其他框架封装好
    的方法。比如:Hive中的INSERT语句,Spark中的saveAsTextfile等。
    建议了解原理,会写Demo。

    3.3.3、 Sqoop

      Sqoop是一个主要用于Hadoop/Hive与传统关系型数据库Oracle/MySQL/SQLServer等之间进行数据交换的开源框架。

       就像Hive把SQL翻译成MapReduce一样,Sqoop把你指定的参数翻译成MapReduce,提交到Hadoop运行,完成Hadoop与其他数据库之间的数据交换。

    自己下载和配置Sqoop(建议先使用Sqoop1,Sqoop2比较复杂)。
    了解Sqoop常用的配置参数和方法。
    用Sqoop完成从MySQL同步数据到HDFS;使用Sqoop完成从MySQL同步数据到Hive表;
    PS:如果后续选型确定使用Sqoop作为数据交换工具,那么建议熟练掌握,否则,了解和会用Demo即可。

    3.3.4、 Flume

      Flume是一个分布式的海量日志采集和传输框架,因为“采集和传输框架”,所以它并不适合关系型数据库的数据采集和传输。

    Flume可以实时的从网络协议、消息系统、文件系统采集日志,并传输到HDFS上。

    因此,如果你的业务有这些数据源的数据,并且需要实时的采集,那么就应该考虑使用Flume。

    Flume监控一个不断追加数据的文件,并将数据传输到HDFS;

    PS:Flume的配置和使用较为复杂,如果你没有足够的兴趣和耐心,可以先跳过Flume。

    3.3.5、阿里开源的DataX

    现在DataX已经是3.0版本,支持很多数据源。
    你也可以在其之上做二次开发。
    PS:有兴趣的可以研究和使用一下,对比一下它与Sqoop。

    3.4、把Hadoop上的数据搞到别处去

    3.4.1、 HDFS GET命令

    把HDFS上的文件GET到本地。需要熟练掌握。

    3.4.2、 HDFS API

    3.4.3、 Sqoop

    sqoop完成将HDFS上的文件同步到MySQL;使用Sqoop完成将Hive表中的数据同步到MySQL;

    3.4.4 DataX

    3.5、数据的一次采集、多次消费。

    3.5.1、Kafka

    3.6、任务调度系统

    3.6.1、Oozie

    3.7、实时: Strom vs SparkStreaming vs Flink

    在这里插入图片描述

      如果一个项目除了实时计算,还包括了离线批处理、交互式查询等业务功能,而且实时计算中,可能还会牵扯到高延迟批处理、交互式查询等功能,应首选Spark生态,用Spark Core开发离线批处理,用Spark SQL开发交互式查询,用Spark Streaming开发实时计算,三者可以无缝整合,给系统提供非常高的可扩展性。

    3.7.1、storm vs sparkStreaming 待完善。。。

    3.8、数据要对外

    3.10、机器学习

    Reference:

    • https://blog.csdn.net/zytbft/article/details/79285500
    展开全文
  • 博彦科技 1)HR: (1)从上家公司离职的原因? (2)为什么突然从北京来深圳?你是湖南人,那会在深圳这边工作多久? (3)上家公司税前给你15k,你到手有多少? (4)上家公司的人员...(6)框架的版本都.

    博彦科技

    博彦科技大数据开发岗位面试题

     

    1)HR:

    (1)从上家公司离职的原因?

    (2)为什么突然从北京来深圳?你是湖南人,那会在深圳这边工作多久?

    (3)上家公司税前给你15k,你到手有多少?

    (4)上家公司的人员配置?你怎么进入上家公司的?

    2)技术面:

    (1)讲一下你做过的项目?

    (2)你在这些项目里起到什么作用?(不是负责什么,是为团队工作做出过什么贡献)

    (3)你们公司主要业务说一下?(GMV、7天连续3天等)

    (4)讲一下Saprk和Hadoop的区别?

    (5)HA的原理

    (6)框架的版本都讲一下。为什么选这些版本?兼容性怎么解决的?

    (7)讲一下你都了解什么算法?

    (8)你们这些框架都是开源的,都是在线的,如果是离线(局域网内)你用什么代

    展开全文
  • (4)kafka的速度为什么快(从生产数据和消费数据两方面来讲) 龙图游戏面试补充: 笔试统计个数题用hive写 hiveSQL插入数据,字段某一列有个 “,”怎么办 shell:统计每个ip个数 hiveSQL列换行行转列 大数据培训
  • 今天给大家分享一位大数据同学跳槽面试的总结文章。在互联网全面裁员紧缩的环境下,大数据依然火热,几乎所有互联网公司都在高薪招聘大数据人才。希望IT培训网对你们有所帮助。 为什么想走? 跟很多人也许不同,我...
  • 金仕达-上海 ...(5)flink的开发中用了哪些算子? (6)flink的异步join有了解吗?就是例如kafka 和 mysql的流进行join (7)flink的boardcast join 的原理是什么? (8)flink的双流join你们.
  • 极光--深圳 学长1 (1)某条SQL语句我不想真正地去执行它,如何判断它是不是合理、效率高低情况?你会怎样处理并优化呢? (2)如果使用explain分析之后,... (8)现场临时的sql题目思路怎么写,用什么函数 大数据培训
  • 同方股份 (1)自我介绍 (2)hr问了好多问题(省略) (3)测试用的什么框架? (4)只做web吗?... (18)你是什么岗位? (19)入职的时候侧重哪块呢? (20)了解我们公司的业务吗? 大数据培训
  • 一、简述你在工作中公司使用到的大数据框架,数据从数据源到展示的流程、技术点以及您所负责或者参与的模块。(埋点、数据获取、传输、处理、展示) 二、Hbase 行键列族的概念,物理模型,表的设计原则? 三、...
  • 搜狐面试题 1)笔试部分 (1)HDFS原理,以及各个模块的职责 (2)MR的工作原理 (3)Shell脚本里如何检查文件是否存在,如果不存在该如何处理?Shell里如何检查一个变量是否是空? (4)Shell脚本里如何... 大数据培训
  • 梦享网络面试题 (1)窗口函数, (2)hive实现topn (3)为什么用kafka (4)数据直接导到hive不行...日活,数据量,多少台服务器,以及服务器配置 (24)sparkStreaming和flink的区别 (25)redis缓存穿透 大数据培训
  • QQ音乐面试题 1.s市A,B共有两个区,人口比例为4 :7,据利时统计A的犯罪率为0.013%,B的犯罪率为0.017%,现有一起盗窃案发生在S市,,那么该案件发生在A区的概率有多大?请写出具体计算过程 2.... 尚硅谷大数据培训
  • 1. 简单介绍上一家工作,再说一下现在你目前掌握的大数据相关技术 2. 举一下这些技术做过相关优化的例子 3. 用spark做过什么工作 4. 为什么当时要用flink代替spark 5. Spark延迟真的比flink大很多吗 6. 用flink...
  • 2.在项目开发概要设计阶段,数据库设计主要完成的工作是() A、标识关键对象 B、确定对象之间关系 C、绘制E-R图 D、将E-R图转换为表 3、给变量赋值是可以采用()方式 A、SELECT B、PRINT C、SET D、= 4、T-...
  • 迅策科技面试题 1)技术面: (1)RDD、DF、DS的区别 (2)实时数据怎么获取?做过哪些比较难的实时指标?怎么做的? (3)Spark内核:提交流程、shuffle工作原理、DAG、任务切分(每个问的很细) ... 尚硅谷大数据培训
  • 大数据程序员只学到技术就可以了吗? 只要能写代码改bug就可以无忧了吗? 你想过自己的未来规划吗? 想过10年后自己能过上什么水平的生活吗? 想要更好过上的生活水平,除了专业的技术外,你还需要一份合格的...
  • (17)二面前有一个笔试,基本上是java和大数据的多选题,还有计算机网络 2)二面: (1)一个技术来面试,直接结合他们的具体工作场景来问问题, (2)JVM原理,jvm多线程的实现 3)三面:总经理面 (1)开始随便...
  • 龙图游戏 笔试题 一. 简介mapreduce 整个shuffle...龙图游戏面试补充: 笔试统计个数题用hive写 hiveSQL插入数据,字段某一列有个 “,”怎么办 shell:统计每个ip个数 hiveSQL列换行行转列 文章来源:尚硅谷大数据培训
  • 龙图游戏笔试题一. 简介mapreduce 整个shuffle 流程。 1)Map方法之后Reduce方法之前这段处理过程叫Shuffle 2)Map方法之后,数据首先进入到分区方法,把数据标记好分区,然后把数据发送到环形缓冲区;...
  • 金仕达-上海(1)自我介绍(2)在离线数仓,实时数仓中担任的角色是什么,介绍项目?...(5)flink的开发中用了哪些算子?(6)flink的异步join有了解吗?就是例如kafka 和 mysql的流进行join(7)flink的boar...
  • 整个面试差不多持续1个半月,从刚开始懵懵懂懂准备不充分,到后来渐渐从容面对,从面试中能接触不同的人聊大数据领域技术,收获很大,下面分享出来,希望能帮助更多人,让面试和职业选择更顺利。 面试了哪些公司?...
  • 在大数据的发展当中,对相关专业人才的需求是在持续增长的,包括大数据开发、数据分析挖掘等不同的数据处理环节,都形成了相应的岗位体系,大家各自负责不同的环节,共同完成大数据处理任务。今天我们主要来讲讲...
  • 下面是学习啦小编整理的大数据开发工程师的岗位职责。大数据开发工程师的岗位职责1职责:1、负责所分管团队的团队建设和日常管理工作;2、负责核心技术问题攻关和性能优化,持续维护和引进最新的大数据技术到城市...
  • 大数据开发和软件开发哪个... 先说说大数据开发岗位和就业的前景,大数据开发岗位对于code能力、工程能力有要求,编程能力、语言表达能力、解决问题的能力。大数据开发会涉及到大量的开源的东西,而开源坑比较多,需...
  •  继续介绍大数据系列岗位的要求,今天是“最热门”的岗位大数据开发工程师,之所以说热门主要是基于2个原因,一是因为很多应届生或者想转入大数据行业的同学,都是期望从事“大数据开发”这一定位不是很清晰的岗位...
  • 最近一年大数据火爆异常,各种培训班开课广告满天飞,很多做开发的朋友也想转到...大数据开发工程师 腾讯 大数据研发工程师 职位描述: 岗位职责: 负责数据接入、数据清洗、底层重构,业务主题建模等工作; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,011
精华内容 404
关键字:

大数据开发岗位