Hadoop概念学习系列之Hadoop、Spark学习路线(很值得推荐)

2023-12-15 20:50

本文主要是介绍Hadoop概念学习系列之Hadoop、Spark学习路线(很值得推荐),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

说在前面的话

  此笔,对于仅对于Hadoop和Spark初中学者。高手请忽略!

 

 

 

 

1 Java基础:

    视频方面:
          推荐《毕向东JAVA基础视频教程》。学习hadoop不需要过度的深入,java学习到javase,在Java虚拟机的内存管理、以及多线程、线程池、设计模式、并行化多多理解实践即可。

    书籍方面:

          推荐李兴华的《java开发实战经典》

 

 

2 Linux基础:

    视频方面:

           (1)马哥的高薪Linux视频课程-Linux入门、

   (2)兄弟连的新版Linux视频教程、

           (3)老段的讲解鸟哥Linux基础+私房菜、

           (4)老男孩的Linux。

           看的过程中,不可只看不同步操作,这是最危险的一件事!不需全部看完。如:基本的Linux操作系统官网下载、安装(命令行界面和图形界面)、基本命令、网络配置、快照、VM tools工具安装、虚拟机的菜单熟悉等等。这是必须要首先完成的。之后,可回过来再根据需要使用到哪些,再来学习即可。当作工具书!

    书籍方面:

            (1)《鸟哥的linux私房菜》,

            (2)之后,进一步可以看书籍《鸟哥的服务架设篇》。

            (3)Linux随身指南

     (4)老男孩Linux运维

       系统学习只要多多实践,学习linux并不枯燥。

 

 

3 hadoop书籍:

            (1)《Hadoop实战  (第1版)  陆嘉恒》、《Hadoop实战  (第2版)  陆嘉恒》

            (2) 《hadoop definitive guide 》,

                  中文书名是《Hadoop权威指南 (第1版)曾大聃译》,《Hadoop权威指南 (第2版) 周敏奇译》,《Hadoop权威指南 (第3版 ) 华东师范大学数据科学与工程学院译》,当然现在应该是第4版了。

            (3)Hadoop技术内幕:《深入解析Hadoop common和HDFS架构设计与实现原理》 蔡斌  

            (4)hadoop技术内幕:《深入解析YARN架构设计与实现原理》董西成  

            (5)Hadoop技术内幕:《深入理解MapReduce架构设计与实现原理》 董西成 

            (5)《Hadoop in Action》,

                    中文书名是《Hadoop实战》,

            (6) 《Hadoop应用开发技术详解    刘刚》 

            (7)《Hadoop 核心技术》 翟周伟 

      平常多看看hadoop的官网,虽然是官网,但尽量多学习计算机方面的单词,对后续学习帮助极大。

      平常多看看他人的博客和社区论坛。
      平常多总结和做好笔记,及时回过头来再次多次整理。

 

 

4 Maven书籍:

        强烈推荐书籍:Maven实战   许晓斌著。目前是第一版 

 

 

5、spark书籍:

    (1)《Spark大数据处理  技术、应用与性能优化   高彦杰》

    (2)《深入理解Spark核心思想与源码分析   耿嘉安》

              (3)《图解Spark:核心技术与案例实战》

 

 

 

 

摘要: 致目前想要学习大数据,但是却不了解大数据,也不知道该从哪开始学起的同学,希望这篇文章能够帮到你们。

 

  最近群里有很多朋友问我,"初学大数据,不知道怎么开始学","不知道大数据具体是什么东西,只是听说很厉害的样子","学习大数据,需要学习哪些框架,只学习spark可以吗?" 等等...类似的问题,针对这些问题,一两句话解释不清楚,所以,就在这里写一些我自己的看法吧,希望可以帮助到初学者的你。

 

大数据初学者,总结下来,大致有这么几种情况:

  • 跨行业转过来的(这一种是最难的,之前可能都没接触过编程,这种属于真正的0基础)
  • 即将毕业的大四学员(包含计算机专业或者其他专业,这一种稍微好点,最起码大学的时候多少会接触一点编程)
  • 有软件开发经验的老司机(包含,javaweb,.net,c 等)

 

 

  上面这几种情况的同学都有一个共性,对大数据都是0基础,相对而言,有软件开发经验的老司机学习起来不会很吃力,其余的刚开始学起来会比较吃力,但只要肯比别人多花点时间,多下点功夫,其实并没有你想象的那么难。有付出,才会有回报!

  好了,废话不多说了,下面就直接说一下,针对所有大数据初学者的一些学习建议吧【适用于上面三种基础的同学】

 

 

大数据是什么?

  有很多朋友问过我,大数据到底是什么?一句话来概括

  • 针对非软件行业的朋友
    • 根据你平时在超市,加油站,饭店等地方的一些消费行为,通过大数据这个技术,我们可以知道你现在的年龄范围,是否婚配,是否有孩子,孩子大致是几岁,是否有固定住宅,车大致是什么价位的等信息。
  • 针对软件行业的朋友
    • 平时我们写的程序都是在一台机器上运行,处理能力有限,当然,数据量也是有限的。大数据这个技术,其实就是可以实现把我们的代码分布在很多台机器上去并行处理海量的数据,然后从这些海量数据中获取有价值,有意义的信息。

 

学习大数据需要的基本功

  1. linux基础是必须的,最起码需要掌握linux命令行下的基本操作命令

  2. javase基础【包含mysql】,注意是javase,不是javaee。javaweb那一块的知识针对大数据工程师而言不是必须的

 

 

大数据技术板块划分

  • 数据采集
    • flume kafka logstash filebeat ...
  • 数据存储
    • mysql redis hbase hdfs ...
      • 虽然mysql不属于大数据范畴 但是我在这也列出来了,因为你在工作中离不开它
  • 数据查询
    • hive impala elasticsearch kylin ...
  • 数据计算
    • 实时计算
      • storm sparkstreaming flink ...
    • 离线计算
      • hadoop spark ...
  • 其他框架
    • zookeeper ...

 

 

下面有一张图,大致列出来了大数据生态圈周边的一些技术框架[不够全面,仅供参考]

  其实这张图中主要列出来了hadoop生态圈的框架,后期有时间的话重新整理一份完整的 。

 

 

   这个图中列出来了很多框架,其实,学习大数据,就是要学习大数据生态圈周边的各种框架。

 

 

 

 

大数据学习步骤

  上面虽然列出来了很多框架,但是最开始学习的时候没必要全部都学,就算是在工作中,这些框架也不一定会全部用到。

  下面我就大致列一下,各种框架的一个学习步骤吧:

  注意:下面列出来的顺序只是个人建议,可以根据个人实际情况来调整顺序

  1. linux基础和javase基础【包含mysql】
    • 这些是基本功,刚开始也不可能学的很精通,最起码要对linux中的一些基本的命令混个脸熟,后面学习各种框架的时候都会用到,用多了就熟悉了。javase的话建议主要看面向对象,集合,io,多线程,以及jdbc操作即可。
  2. zookeeper
    • zookeeper是很多大数据框架的基础,中文名称是动物园的意思,因为目前的大数据框架的图标很多都是动物的形状,所以zookeeper其实就是可以管理很多大数据框架的。针对这个框架,主要掌握如何搭建单节点和集群,以及掌握如何在zkcli客户端下对zookeeper的节点进行增删改查操作即可。
  3. hadoop
    • 目前企业中一般都是用hadoop2.x的版本了,所以就没有必要再去学hadoop1.x版本了,hadoop2.x主要包含三大块
      • hdfs 前期,主要学习hdfs的一些命令即可,上传,下载,删除,移动,查看等命令...
      • mapreduce 这个需要重点学习下,要理解mr的原理以及代码实现,虽然现在工作中真正写mr的代码次数很少了,但是原理还是要理解的。
      • yarn 前期了解即可,只需要知道yarn是一个资源调度平台,主要负责给任务分配资源即可,yarn不仅可以给mapreduce任务调度资源,还可以为spark任务调度资源...yarn是一个公共的资源调度平台,所有满足条件的框架都可以使用yarn来进行资源调度。
  4. hive
    • hive是一个数据仓库,所有的数据都是存储在hdfs上的,具体【数据仓库和数据库】的区别大家可以去网上搜索一下,有很多介绍。其实如果对mysql的使用比较熟悉的话,使用hive也就简单很多了,使用hive主要是写hql,hql是hive的sql语言,非常类似于mysql数据库的sql,后续学习hive的时候主要理解一些hive的语法特性即可。其实hive在执行hql,底层在执行的时候还是执行的mapredce程序。
    • 注意:其实hive本身是很强大的,数据仓库的设计在工作中也是很重要的,但是前期学习的时候,主要先学会如何使用就好了。后期可以好好研究一下hive。
  5. hbase
    • hbase是一个nosql 数据库,是一个key-value类型的数据库,底层的数据存储在hdfs上。在学习hbase的时候主要掌握 row-key的设计,以及列簇的设计。要注意一个特点就是,hbase基于rowkey查询效率很快,可以达到秒级查询,但是基于列簇中的列进行查询,特别是组合查询的时候,如果数据量很大的话,查询性能会很差。
  6. redis
    • redis也是一个nosql 数据库和key-value类型的数据库,但是这个数据库是纯基于内存的,也就是redis数据库中的数据都是存储在内存中的,所以它的一个特点就是适用于快速读写的应用场景,读写可以达到10W次/秒,但是不适合存储海量数据,毕竟机器的内存是有限的,当然,redis也支持集群,也可以存储大量数据。在学习redis的时候主要掌握string,list,set,sortedset,hashmap这几种数据类型的区别以及使用,还有pipeline管道,这个在批量入库数据的时候是非常有用的,以及transaction事务功能。
  7. flume
    • flume是一个日志采集工具,这个还是比较常用的,最常见的就是采集应用产生的日志文件中的数据。一般有两个流程,一个是flume采集数据存储到kafka中,为了后面使用storm或者sparkstreaming进行实时处理。另一个流程是flume采集的数据落盘到hdfs上,为了后期使用hadoop或者spark进行离线处理。在学习flume的时候其实主要就是学会看flume官网的文档,学习各种组建的配置参数,因为使用flume就是写各种的配置。
  8. kafka
    • kafka 是一个消息队列,在工作中常用于实时处理的场景中,作为一个中间缓冲层,例如,flume->kafka->storm/sparkstreaming。学习kafka主要掌握topic,partition,replicate等的概念和原理。
  9. storm
    • storm是一个实时计算框架,和hadoop的区别就是,hadoop是对离线的海量数据进行处理,而storm是对实时新增的每一条数据进行处理,是一条一条的处理,可以保证数据处理的时效性。学习storm主要学习topology的编写,storm并行度的调整,以及storm如何整合kafka实时消费数据。
  10. spark
    • spark 现在发展的也很不错,也发展成了一个生态圈,spark里面包含很多技术,spark core,spark steaming,spark mlib,spark graphx。
    • spark生态圈里面包含的有离线处理spark core,和实时处理spark streaming,在这里需要注意一下,storm和spark streaming ,两个都是实时处理框架,但是主要区别是:storm是真正的一条一条的处理,而spark streaming 是一批一批的处理。
    • spark中包含很多框架,在刚开始学习的时候主要学习spark core和spark streaming即可。这个一般搞大数据的都会用到。spark mlib和spark graphx 可以等后期工作需要或者有时间了在研究即可。
  11. elasticsearch
    • elasticsearch是一个适合海量数据实时查询的全文搜索引擎,支持分布式集群,其实底层是基于lucene的。在查询的时候支持快速模糊查询,求count,distinct,sum,avg等操作,但是不支持join操作。elasticsearch目前也有一个生态圈,elk(elasticsearch logstash kibana)是一个典型的日志收集,存储,快速查询出图表的一整套解决方案。在学习elasticsearch的时候,前期主要学习如何使用es进行增删改查,es中的index,type,document的概念,以及es中的mapping的设计。

 

  目前暂且列出来这么多吧,大数据生态圈目前还有很多比较好的技术框架,这个就需要等大家以后工作之后再去扩展了。

  其实上面列出来的这十几个框架,在学习的时候,要专门挑一两个着重研究一下,最好针对,底层原理,优化,源码等部分有所涉猎,这么的话可以在面试过程中脱颖而出。不要想着把每一个框架都搞精通,目前是不现实的,其实就算是在工作中也不会每一个框架都会用的很深。

  如果能过对上面的框架都大致会使用,并且对某一两个框架研究的比较深的话,其实想去找一份满意的大数据工作也就水到渠成了。

  上面说的这么多,是根据博主最近几年的一些经验总结吧,如果大家有什么观点可以在下面留言讨论。

 

    最终,大家还是要落于找项目来提升自己,必须要有做项目的经验。现在互联网时代,别跟我说,找不到学习的资源。谷歌百度你懂的... !!!

 

  其实,说白了,大家还是要在入门之后,有了一定经验,更多还是要去看官网。这是最重要!包括动手去实践,多敲命令!

 

转载于:https://www.cnblogs.com/pangguoming/p/8648491.html

这篇关于Hadoop概念学习系列之Hadoop、Spark学习路线(很值得推荐)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/497846

相关文章

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

SpringBoot操作spark处理hdfs文件的操作方法

《SpringBoot操作spark处理hdfs文件的操作方法》本文介绍了如何使用SpringBoot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Ser... 目录SpringBoot操作spark处理hdfs文件1、导入依赖2、配置spark信息3、cont

Spring Boot 中整合 MyBatis-Plus详细步骤(最新推荐)

《SpringBoot中整合MyBatis-Plus详细步骤(最新推荐)》本文详细介绍了如何在SpringBoot项目中整合MyBatis-Plus,包括整合步骤、基本CRUD操作、分页查询、批... 目录一、整合步骤1. 创建 Spring Boot 项目2. 配置项目依赖3. 配置数据源4. 创建实体类

Java子线程无法获取Attributes的解决方法(最新推荐)

《Java子线程无法获取Attributes的解决方法(最新推荐)》在Java多线程编程中,子线程无法直接获取主线程设置的Attributes是一个常见问题,本文探讨了这一问题的原因,并提供了两种解决... 目录一、问题原因二、解决方案1. 直接传递数据2. 使用ThreadLocal(适用于线程独立数据)

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系