精华内容
下载资源
问答
  • 一、入门准备1、linux操作基础在这里还是要推荐下我自己建的大数据学习交流群:199427210,群里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据软件开发...

    一、入门准备

    1、linux操作基础

    在这里还是要推荐下我自己建的

    大数据学习交流群:199427210

    ,群里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据软件开发相关的),包括我自己整理的一份最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴加入。

    1) Linux的介绍,Linux的安装:VMware Workstation虚拟软件安装过程、CentOS虚拟机安装过程

    2) Linux的常用命令:常用命令的介绍、常用命令的使用和练习(文件操作、用户管理与权限、免密登陆配置与网络管理)

    3) Linux系统进程管理基本原理及相关管理工具如ps、pkill、top、htop等的使用;

    4) Linux启动流程,运行级别详解,chkconfig详解

    5) VI、VIM编辑器:VI、VIM编辑器的介绍、VI、VIM扥使用和常用快捷键

    6) Linux磁盘管理,lvm逻辑卷,nfs详解

    7) Linux系统文件权限管理:文件权限介绍、文件权限的操作

    8) Linux的RPM软件包管理:RPM包的介绍、RPM安装、卸载等操作

    9) yum命令,yum源搭建

    10) Linux网络:Linux网络的介绍、Linux网络的配置和维护 防火墙配置

    11) Shell编程:Shell的介绍、Shell脚本的编写

    12) Linux上常见软件的安装:安装JDK、安装Tomcat、安装mysql,web项目部署

    13)linux高级文本处理命令cut、sed、awklinux

    14)定时任务crontab

    2、大型网站高并发处理

    1) 第四层负载均衡

    a) Lvs负载均衡         i. 负载算法,NAT模式,直接路由模式(DR),隧道模式(TUN)

    b) F5负载均衡器介绍

    2) 第七层负载均衡

    a) Nginx     b) Apache

    3) Tomcat、jvm优化提高并发量

    4) 缓存优化

    a) Java缓存框架       i. Oscache,ehcache

    b) 缓存数据库         i. Redis,Memcached

    5) Lvs+nginx+tomcat+redis|memcache构建二层负载均衡千万并发处理

    6) Haproxy

    7) Fastdfs小文件独立存储管理

    8) Redis缓存系统    a) Redis基本使用     b) Redis sentinel高可用     c) Redis好友推荐算法

    3、Lucene基础

    1) Lucene介绍

    2) Lucene 倒排索引原理

    3) 建索引 IndexWriter

    4) 搜索 IndexSearcher

    5) Query

    6) Sort和 过滤 (filter)

    7) 索引优化和高亮

    4、solr基础

    1) 什么是solr

    2) 为什么工程中要使用solr

    3) Solr的原理

    4) 如何在tomcat中运行solr

    5) 如何利用solr进行索引与搜索

    6) solr的各种查询

    7) solr的Filter

    8) solr的排序

    9) solr的高亮

    10) solr的某个域统计

    11) solr的范围统计

    12) solrcloud集群搭建

    5、布式协调服务zookeeper

    zookeeper简介及应用场景

    zookeeper集群安装部署

    zookeeper的数据节点与命令行操作

    zookeeper的java客户端基本操作及事件监听

    zookeeper核心机制及数据节点

    zookeeper应用案例–分布式共享资源锁

    zookeeper应用案例–服务器上下线动态感知

    zookeeper的数据一致性原理及leader选举机制

    6、java高级特性增强

    Java多线程基本知识

    Java同步关键词详解

    java并发包线程池及在开源软件中的应用

    Java并发包消息队里及在开源软件中的应用

    Java JMS技术

    Java动态代理反射

    二、离线计算系统

    1、hadoop快速入门

    hadoop背景介绍

    分布式系统概述

    离线数据分析流程介绍

    集群搭建

    集群使用初步

    2、HDFS增强

    HDFS的概念和特性

    HDFS的shell(命令行客户端)操作

    HDFS的工作机制

    NAMENODE的工作机制

    java的api操作

    案例1:开发shell采集脚本

    3、MAPREDUCE详解

    自定义hadoop的RPC框架

    Mapreduce编程规范及示例编写

    Mapreduce程序运行模式及debug方法

    mapreduce程序运行模式的内在机理

    mapreduce运算框架的主体工作流程

    自定义对象的序列化方法

    MapReduce编程案例

    4、MAPREDUCE增强

    Mapreduce排序

    自定义partitioner

    Mapreduce的combiner

    mapreduce工作机制详解

    5、MAPREDUCE实战

    maptask并行度机制-文件切片

    maptask并行度设置

    倒排索引

    共同好友

    6、federation介绍和hive使用

    Hadoop的HA机制

    HA集群的安装部署

    集群运维测试之Datanode动态上下线

    集群运维测试之Namenode状态切换管理

    集群运维测试之数据块的balance

    HA下HDFS-API变化

    hive简介

    hive架构

    hive安装部署

    hvie初使用

    7、hive增强和flume介绍

    HQL-DDL基本语法

    HQL-DML基本语法

    HIVE的join

    HIVE 参数配置

    HIVE 自定义函数和Transform

    HIVE 执行HQL的实例分析

    HIVE最佳实践注意点

    HIVE优化策略

    HIVE实战案例

    Flume介绍

    Flume的安装部署

    案例:采集目录到HDFS

    案例:采集文件到HDFS

    三、数据迁移工具Sqoop

    1) 介绍 和 配置Sqoop

    2) Sqoop shell使用

    3) Sqoop-import    a) DBMS-hdfs     b) DBMS-hive     c) DBMS-hbase

    4) Sqoop-export

    四、Flume分布式日志框架

    1) flume简介-基础知识

    2) flume安装与测试

    3) flume部署方式

    4) flume source相关配置及测试

    5) flume sink相关配置及测试

    6) flume selector 相关配置与案例分析

    7) flume Sink Processors相关配置和案例分析

    8) flume Interceptors相关配置和案例分析

    9) flume AVRO Client开发

    10) flume 和kafka 的整合

    五、内存数据库redis

    1) redis特点、与其他数据库的比较

    2) 如何安装redis

    3) 如何使用命令行客户端

    4) redis的字符串类型

    5) redis的散列类型

    6) redis的列表类型

    7) redis的集合类型

    8) 如何使用java访问redis【a.python访问redis,scala访问redis】

    9) redis的事务(transaction)

    10) redis的管道(pipeline)

    11) redis持久化(AOF+RDB)

    12) redis优化

    13) redis的主从复制

    14) redis的sentinel高可用

    15) twemproxy,codis实战

    16) redis3.x集群安装配置

    六、Storm上下游及架构集成

    1) kafka是什么

    2) kafka体系结构

    3) kafka配置详解

    4) kafka的安装

    5) kafka的存储策略

    6) kafka分区特点

    7) kafka的发布与订阅

    8) zookeeper协调管理

    9) java编程操作kafka

    10) scala编程操作kafka

    11) flume 和kafka 的整合

    12) Kafka 和storm 的整合

    七、Storm从入门到精通

    1) Storm的基本概念

    2) Storm的应用场景

    3) Storm和Hadoop的对比

    4) Storm集群的安装的linux环境准备

    5) zookeeper集群搭建

    6) Storm集群搭建

    7) Storm配置文件配置项讲解

    8) 集群搭建常见问题解决

    9) Storm常用组件和编程API:Topology、 Spout、Bolt

    10) Storm分组策略(stream groupings)

    11) 使用Strom开发一个WordCount例子

    12) Storm程序本地模式debug、Storm程序远程debug

    13) Storm事物处理

    14) Storm消息可靠性及容错原理

    15) Storm结合消息队列Kafka:消息队列基本概念(Producer、Consumer、Topic、Broker等)、消息队列Kafka使用场景、Storm结合Kafka编程API

    16) Storm Trident概念

    17) Trident state 原理

    18) Trident开发实例

    19) Storm DRPC(分布式远程调用)介绍

    20) Storm DRPC实战讲解

    21) Storm和Hadoop 2.x的整合:Storm on Yarn

    八、scala编程

    1) scala解释器、变量、常用数据类型等

    2) scala的条件表达式、输入输出、循环等控制结构

    3) scala的函数、默认参数、变长参数等

    4) scala的数组、变长数组、多维数组等

    5) scala的映射、元组等操作

    6) scala的类,包括bean属性、辅助构造器、主构造器等

    7) scala的对象、单例对象、伴生对象、扩展类、apply方法等

    8) scala的包、引入、继承等概念

    9) scala的特质

    10) scala的操作符

    11) scala的高阶函数

    12) scala的集合

    13) scala数据库连接

    九、内存计算体系Spark

    1) Spark介绍

    2) Spark应用场景

    3) Spark和Hadoop MR、Storm的比较和优势

    4) RDD

    5) Transformation

    6) Action

    7) Spark计算PageRank

    8) Lineage

    9) Spark模型简介

    10) Spark缓存策略和容错处理

    11) 宽依赖与窄依赖

    12) Spark配置讲解

    13) Spark集群搭建

    14) 集群搭建常见问题解决

    15) Spark原理核心组件和常用RDD

    16) 数据本地性

    17) 任务调度

    18) DAGScheduler

    19) TaskScheduler

    20) Spark源码解读

    21) 性能调优

    22) Spark和Hadoop2.x整合:Spark on Yarn原理

    十、SparkStreaming应用实战

    Spark-Streaming简介

    Spark-Streaming编程

    实战:StageFulWordCount

    Flume结合Spark Streaming

    Kafka结合Spark Streaming

    窗口函数

    ELK技术栈介绍

    ElasticSearch安装和使用

    Storm架构分析

    Storm编程模型、Tuple源码、并发度分析

    Storm WordCount案例及常用Api分析

    十一、机器学习算法

    1、python及numpy库

    机器学习简介

    机器学习与python

    python语言–快速入门

    python语言–数据类型详解

    python语言–流程控制语句

    python语言–函数使用

    python语言–模块和包

    phthon语言–面向对象

    python机器学习算法库–numpy

    机器学习必备数学知识–概率论

    2、常用算法实现

    knn分类算法–算法原理

    knn分类算法–代码实现

    knn分类算法–手写字识别案例

    lineage回归分类算法–算法原理

    lineage回归分类算法–算法实现及demo

    朴素贝叶斯分类算法–算法原理

    朴素贝叶斯分类算法–算法实现

    朴素贝叶斯分类算法–垃圾邮件识别应用案例

    kmeans聚类算法–算法原理

    kmeans聚类算法–算法实现

    kmeans聚类算法–地理位置聚类应用

    决策树分类算法–算法原理

    决策树分类算法–算法实现

    展开全文
  • 首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。PythonPython 的排名从去年开始就借助人工智能持续上升,现在它已经成为了语言排行第一名。从学习难易度来看,作为一个...

    大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。

    Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经成为了语言排行第一名。

    从学习难易度来看,作为一个为“优雅”而生的语言,Python语法简捷而清晰,对底层做了很好的封装,是一种很容易上手的高级语言。在一些习惯于底层程序开发的“硬核”程序员眼里,Python简直就是一种“伪代码”。

    大数据学习交流群:532218147

    在大数据和数据科学领域,Python几乎是万能的,任何集群架构软件都支持Python,Python也有很丰富的数据科学库,所以Python不得不学。

    Linux:因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会 shell就能看懂脚本这样能更容易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。在这里我还是要推荐下我自己建的大数据学习交流群:532218147,群里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据开发相关的),包括我自己整理的一份2018最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴。

    好说完基础了,再说说还需要学习哪些大数据技术,可以按我写的顺序学下去。

    Hadoop:这是现在流行的大数据处理平台几乎已经成为大数据的代名词,所以这个是必学的。Hadoop里面包括几个组件HDFS、MapReduce和YARN,HDFS是存储数据的地方就像我们电脑的硬盘一样文件都存储在这个上面,MapReduce是对数据进行处理计算的,它有个特点就是不管多大的数据只要给它时间它就能把数据跑完,但是时间可能不是很快所以它叫数据的批处理。 YARN是体现Hadoop平台概念的重要组件有了它大数据生态体系的其它软件就能在hadoop上运行了,这样就能更好的利用HDFS大存储的优势和节省更多的资源比如我们就不用再单独建一个spark的集群了,让它直接跑在现有的hadoop yarn上面就可以了。其实把Hadoop的这些组件学明白你就能做大数据的处理了,只不过你现在还可能对”大数据”到底有多大还没有个太清楚的概念,听我的别纠结这个。等以后你工作了就会有很多场景遇到几十T/几百T大规模的数据,到时候你就不会觉得数据大真好,越大越有你头疼的。当然别怕处理这么大规模的数据,因为这是你的价值所在,让那些个搞Javaee的php的html5的和DBA的羡慕去吧。

    记住学到这里可以作为你学大数据的一个节点。

    Zookeeper:这是个万金油,安装Hadoop的HA的时候就会用到它,以后的Hbase也会用到它。它一般用来存放一些相互协作的信息,这些信息比较小一般不会超过1M,都是使用它的软件对它有依赖,对于我们个人来讲只需要把它安装正确,让它正常的run起来就可以了。

    Mysql:我们学习完大数据的处理了,接下来学习学习小数据的处理工具mysql数据库,因为一会装hive的时候要用到,mysql需要掌握到什么层度那?你能在Linux上把它安装好,运行起来,会配置简单的权限,修改root的密码,创建数据库。这里主要的是学习SQL的语法,因为hive的语法和这个非常相似。

    Sqoop:这个是用于把Mysql里的数据导入到Hadoop里的。当然你也可以不用这个,直接把Mysql数据表导出成文件再放到HDFS上也是一样的,当然生产环境中使用要注意Mysql的压力。

    Hive:这个东西对于会SQL语法的来说就是神器,它能让你处理大数据变的很简单,不会再费劲的编写MapReduce程序。有的人说Pig那?它和Pig差不多掌握一个就可以了。

    Oozie:既然学会Hive了,我相信你一定需要这个东西,它可以帮你管理你的Hive或者MapReduce、Spark脚本,还能检查你的程序是否执行正确,出错了给你发报警并能帮你重试程序,最重要的是还能帮你配置任务的依赖关系。我相信你一定会喜欢上它的,不然你看着那一大堆脚本,和密密麻麻的crond是不是有种想屎的感觉。

    Hbase:这是Hadoop生态体系中的NOSQL数据库,他的数据是按照key和value的形式存储的并且key是唯一的,所以它能用来做数据的排重,它与MYSQL相比能存储的数据量大很多。所以他常被用于大数据处理完成之后的存储目的地。

    Kafka:这是个比较好用的队列工具,队列是干吗的?排队买票你知道不?数据多了同样也需要排队处理,这样与你协作的其它同学不会叫起来,你干吗给我这么多的数据(比如好几百G的文件)我怎么处理得过来,你别怪他因为他不是搞大数据的,你可以跟他讲我把数据放在队列里你使用的时候一个个拿,这样他就不在抱怨了马上灰流流的去优化他的程序去了,因为处理不过来就是他的事情。而不是你给的问题。当然我们也可以利用这个工具来做线上实时数据的入库或入HDFS,这时你可以与一个叫Flume的工具配合使用,它是专门用来提供对数据进行简单处理,并写到各种数据接受方(比如Kafka)的。

    Spark:它是用来弥补基于MapReduce处理数据速度上的缺点,它的特点是把数据装载到内存中计算而不是去读慢的要死进化还特别慢的硬盘。特别适合做迭代运算,所以算法流们特别稀饭它。它是用scala编写的。Java语言或者Scala都可以操作它,因为它们都是用JVM的。

    会这些东西你就成为一个专业的大数据开发工程师了,月薪2W都是小毛毛雨。

    后续提高:大数据结合人工智能达到真正的数据科学家,打通了数据科学的任督二脉,在公司是技术专家级别,这时候月薪再次翻倍且成为公司核心骨干。

    机器学习(Machine Learning, ML):是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。机器学习的算法基本比较固定了,学习起来相对容易。

    深度学习(Deep Learning, DL):深度学习的概念源于人工神经网络的研究,最近几年发展迅猛。深度学习应用的实例有AlphaGo、人脸识别、图像检测等。是国内外稀缺人才,但是深度学习相对比较难,算法更新也比较快,需要跟随有经验的老师学习。

    最快的学习方法,就是师从行业专家,学习老

    作者:大数据学习04

    链接:https://www.jianshu.com/p/3d17ec6027d2

    展开全文
  • 大数据学习路线

    2019-01-29 12:17:12
    目前来说,大数据学习核心就是hadoop生态圈及相关的技 术。 主要的技能树-语言篇: Hadoop本身是用java开发的,所以对java的支持性非常好, 所以java是必须的语言。 数据挖掘: 因为Python开发效率较高所以我们使用...
  • 如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的: 如果你已经按照这个路线走了一遍,那么你接下来就应该具备以下技能和知识点: 知道如何把已有的数据采集到HDFS上,包括离线采集和实时...

    你知道数据库吗?你会写SQL吗?

    如果不会,请学点SQL吧。

    在1.6中,你写(或者抄)的WordCount一共有几行代码?

    给你看看我的:

    SELECT word,COUNT(1) FROM wordcount GROUP BY word;

    这便是SQL的魅力,编程需要几十行,甚至上百行代码,我这一句就搞定;使用SQL处理分析Hadoop上的数据,方便、高效、易上手、更是趋势。不论是离线计算还是实时计算,越来越多的大数据处理框架都在积极提供SQL接口。

    什么是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适合做海量数据的数据仓库工具,而不是数据库工具。

    请参考1.1 和 1.2 完成Hive的安装配置。可以正常进入Hive命令行。

    请参考1.1 和 1.2 ,在Hive中创建wordcount表,并运行2.2中的SQL语句。

    在Hadoop WEB界面中找到刚才运行的SQL任务。

    看SQL查询结果是否和1.4中MapReduce中的结果一致。

    明明写的是SQL,为什么Hadoop WEB界面中看到的是MapReduce任务?

    创建、删除表;

    加载数据到表;

    下载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上。

    这个在前面你应该已经使用过了。

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

    建议熟练掌握。

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

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

    建议了解原理,会写Demo。

    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即可。

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

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

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

    下载和配置Flume。

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

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

    之所以介绍这个,是因为我们这边一个老师目前就职的公司使用的Hadoop与关系型数据库数据交换的工具,就是之前基于DataX开发的,非常好用。

    现在DataX已经是3.0版本,支持很多数据源。

    你也可以在其之上做二次开发。

    PS:有兴趣的可以研究和使用一下,对比一下它与Sqoop。

    如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的:

    前面介绍了如何把数据源的数据采集到Hadoop上,数据到Hadoop上之后,便可以使用Hive和MapReduce进行分析了。那么接下来的问题是,分析完的结果如何从Hadoop上同步到其他系统和应用中去呢?

    其实,此处的方法和第三章基本一致的。

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

    同3.2.

    同3.3.

    使用Sqoop完成将HDFS上的文件同步到MySQL;

    使用Sqoop完成将Hive表中的数据同步到MySQL;

    同3.5.

    如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的:

    如果你已经按照这个路线走了一遍,那么你接下来就应该具备以下技能和知识点:

    知道如何把已有的数据采集到HDFS上,包括离线采集和实时采集;

    你已经知道sqoop(或者还有DataX)是HDFS和其他数据源之间的数据交换工具;

    你已经知道flume可以用作实时的日志采集。

    从前面的学习,对于大数据平台,你已经掌握的不少的知识和技能,搭建Hadoop集群,把数据采集到Hadoop上,使用Hive和MapReduce来分析数据,把分析结果同步到其他数据源。

    接下来的问题来了,Hive使用的越来越多,你会发现很多不爽的地方,特别是速度慢,大多情况下,明明我的数据量很小,它都要申请资源,启动MapReduce来执行。

    其实大家都已经发现Hive后台使用MapReduce作为执行引擎,实在是有点慢。

    因此SQL On Hadoop的框架越来越多,按我的了解,最常用的按照流行度依次为SparkSQL、Impala和Presto.

    这三种框架基于半内存或者全内存,提供了SQL接口来快速查询分析Hadoop上的数据。

    我们目前使用的是SparkSQL,至于为什么用SparkSQL,原因大概有以下吧:

    使用Spark还做了其他事情,不想引入过多的框架;

    Impala对内存的需求太大,没有过多资源部署;

    什么是Spark,什么是SparkSQL。

    Spark有的核心概念及名词解释。

    SparkSQL和Spark是什么关系,SparkSQL和Hive是什么关系。

    SparkSQL为什么比Hive跑的快。

    Spark有哪些部署模式?

    如何在Yarn上运行SparkSQL?

    使用SparkSQL查询Hive中的表。

    PS: Spark不是一门短时间内就能掌握的技术,因此建议在了解了Spark之后,可以先从SparkSQL入手,循序渐进。

    如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的:

    请不要被这个名字所诱惑。其实我想说的是数据的一次采集、多次消费。

    在实际业务场景下,特别是对于一些监控日志,想即时的从日志中了解一些指标(关于实时计算,后面章节会有介绍),这时候,从HDFS上分析就太慢了,尽管是通过Flume采集的,但Flume也不能间隔很短就往HDFS上滚动文件,这样会导致小文件特别多。

    为了满足数据的一次采集、多次消费的需求,这里要说的便是Kafka。

    什么是Kafka?

    Kafka的核心概念及名词解释。

    使用单机部署Kafka,并成功运行自带的生产者和消费者例子。

    使用Java程序自己编写并运行生产者和消费者程序。

    Flume和Kafka的集成,使用Flume监控日志,并将日志数据实时发送至Kafka。

    如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的:

    这时,使用Flume采集的数据,不是直接到HDFS上,而是先到Kafka,Kafka中的数据可以由多个消费者同时消费,其中一个消费者,就是将数据同步到HDFS。

    接下来你应该已经具备以下技能和知识点:

    为什么Spark比MapReduce快。

    使用SparkSQL代替Hive,更快的运行SQL。

    使用Kafka完成数据的一次收集,多次消费架构。

    自己可以写程序完成Kafka的生产者和消费者。

    从前面的学习,你已经掌握了大数据平台中的数据采集、数据存储和计算、数据交换等大部分技能,而这其中的每一步,都需要一个任务(程序)来完成,各个任务之间又存在一定的依赖性,比如,必须等数据采集任务成功完成后,数据计算任务才能开始运行。如果一个任务执行失败,需要给开发运维人员发送告警,同时需要提供完整的日志来方便查错。

    不仅仅是分析任务,数据采集、数据交换同样是一个个的任务。这些任务中,有的是定时触发,有点则需要依赖其他任务来触发。当平台中有几百上千个任务需要维护和运行时候,仅仅靠crontab远远不够了,这时便需要一个调度监控系统来完成这件事。调度监控系统是整个数据平台的中枢系统,类似于AppMaster,负责分配和监控任务。

    1. Oozie是什么?有哪些功能?

    2. Oozie可以调度哪些类型的任务(程序)?

    3. Oozie可以支持哪些任务触发方式?

    4.  安装配置Oozie。

    Azkaban:

    light-task-scheduler:

    Zeus:

    ……

    如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的:

    在第六章介绍Kafka的时候提到了一些需要实时指标的业务场景,实时基本可以分为绝对实时和准实时,绝对实时的延迟要求一般在毫秒级,准实时的延迟要求一般在秒、分钟级。对于需要绝对实时的业务场景,用的比较多的是Storm,对于其他准实时的业务场景,可以是Storm,也可以是Spark Streaming。当然,如果可以的话,也可以自己写程序来做。

    1. 什么是Storm?有哪些可能的应用场景?

    2. Storm由哪些核心组件构成,各自担任什么角色?

    3. Storm的简单安装和部署。

    4. 自己编写Demo程序,使用Storm完成实时数据流计算。

    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提供了一些封装好的算法,以及特征处理、特征选择的方法。

    机器学习确实牛逼高大上,也是我学习的目标。

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

    作者:大数据首席数据师

    链接:https://www.jianshu.com/p/fca99c680bfd

    來源:简书

    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    展开全文
  • 学习Linux之后可以从业的岗位也是非常多的,比如说:Linux运维工程师Linux运维平台研究工程师运维开发工程师运维总监大数据运维工程师系统运维架构师随着互联网的高速发展、网站规模越来越大...

    从目前市场发展情况以及应用率来说,Linux云计算的就业前景是非常不错的,至少在未来十年都是非常不错的职业,市场上对于Linux人才需求量很大,就业薪资待遇也是非常不错,有百分之八十的公司都在使用Linux;学习Linux之后可以从业的岗位也是非常多的,比如说:Linux运维工程师

    Linux运维平台研究工程师

    运维开发工程师

    运维总监

    大数据运维工程师

    系统运维架构师

    随着互联网的高速发展、网站规模越来越大、架构越来越复杂,对网络运维工程师的需求也会越来越急迫,特别是对有经验的人才需求量大,而且职业发展前景非常好。

    Linux云计算运维工程师路线图(集群、虚拟化、K8S、Docker、智能化、Python大数据)持续更新

    第一阶段Linux基础环境搭建篇(01-08 )

    第二阶段Linux磁盘管理(09-11)

    第三阶段Linux网络篇(12)

    第四阶段Docker篇

    第五阶段Kubernetes(K8S)篇

    第六阶段Python运维篇  加速更新中

    地七阶段Java运维篇  加速更新中

    第八阶段大数据运维篇  加速更新中

    第九阶段智能化运维篇  加速更新中

    第十阶段项目案例篇  加速更新中

    以上为暂定内容,课程内容会根据市场调整。

    展开全文
  • python应该是近几年比较火的语言之一,很多人刚学python不知道...为了帮助想从事python工作的小白,所以我把python学习的大致路线图以及每个阶段需要学习的具体内容都整理出来,希望能帮助零基础的小白少走一些弯路...
  • 经常有初学者在QQ问我,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高。如果自己很迷茫,为了这些原因想往大数据方向发展,也可以,那么我就想问一下,你的专业是...
  • 大数据开发学习路线: 第一阶段:Hadoop生态架构技术 1、语言基础 Java:多理解和实践在Java虚拟机的内存管理、以及多线程、线程池、设计模式、并行化就可以,不需要深入掌握。 Linux:系统安装、基本命令、网络...
  • JAVA 大数据学习路线

    2019-06-05 13:50:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • java大数据学习路线

    2018-02-24 15:27:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • Java、Python大数据、前端学习路线图(思维导图)比较全
  • 首先,要学习掌握至少一门编程语言如Java或者Python,它们是我们想从事大数据分析、挖掘等相关岗位的最基本的要求; 其次,掌握Linux系统常用的命令操作; 再次, 第一,熟悉使用Hadoop框架,具体主要学习如下...
  • 大数据已经火了很久了,一直想了解它学习它结果没时间,过年后终于有时间了,了解了一些资料,结合我自己的情况,初步整理了一个学习路线,有问题的希望大神指点。学习路线Linux(shell,高并发架构,lucene,solr)...
  • 记得先点蓝字关注我哦~ 今日课程菜单Java全栈开发 |Web前端+H5大数据开发| 数据分析人工智能+Python | 人工智能+物联网经常会有人问我,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼经常有初学者问我,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高。。。。。。。如果自己很迷茫,为了这些原因想往...
  • 该楼层疑似违规已被系统折叠 隐藏此楼查看此楼经常有初学者问我,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高。。。。。。。如果自己很迷茫,为了这些原因想往...
  • 学习路线如何?大数据开发需要掌握数学知识吗?大数据开发就业前景如何?大数据开发工程师薪资待遇及招聘要求?大数据开发是干什么的?大数据作为时下火热的IT行业的词汇,随之而来的数据开发、数据仓库、数据安全、...
  • 为了让有学习需求的同学能尽早着手,我们决定把学习路线图公布出来,给同学们做参考。关注作者 很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪...
  • 继Java、H5前端之后,大数据学习路线图、Python学习路线图也来了! 学习路线图 2018年,大数据、Python人工智能刷了全球的屏:高薪就业、人才被抢的新闻报道频频刷屏。从技术突破到商业应用落地再到国家政策...
  • 为了解决大家这个困惑,小编整理了从Linux基础到大型网站高并发处理项目实战的学习路线和知识点,希望大家能够喜欢,文末还有小编整理的视频和电子书籍,也希望大家能够喜欢。 Linux理论 1.Linux入门 —Linux简介、...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • 学习路线又是什么?所有萌生入行的想法与想要学习Java的同学的初衷是一样的。岗位非常火,就业薪资比较高,,前景非常可观。基本都是这个原因而向往大数据,但是对大数据却不甚了解。如果你想学习,那么首先你需要...
  • python自学路线——大数据方向

    千次阅读 2020-03-01 00:25:58
    ☞☞☞点击查看更多优秀Python博客☜☜☜  Hello大家好,我是你们的朋友JamesBin上篇文章Python...大数据方向什么是大数据大数据学习大纲获取大数据数据分析学习路线第一步:了解大数据的基本概念第二步:学...
  • 大数据最新学习路线

    2020-08-24 16:28:01
    大数据最新学习路线(尚硅谷图)如下所示,但有些不太需要去了解的我作为说明。 这里所写的路线图主要是针对大数据开发类型,并且这里提到的也只是冰山一角,也就是你需要学习的大数据开发,除了这些外,还包括了...
  • 入行大数据学习Python路线

    千次阅读 2019-04-07 17:30:55
    大数据无处不在。在时下这个年代,不管你喜欢与否,在运营一个成功的商业的过程中都有可能会遇到它。 什么是 大数据大数据就像它看起来那样——有大量的数据。单独而言,你能从单一的数据获取的洞见穷其有限。...
  • Python入门 Python教程 Python电子书 Python学习路线 试想,这么好的回答,不读完岂不是后悔? Python岗位有哪些呢?主要的岗位有这些: Python全栈开发工程师(10k-20K) Python运维开发工程师(15k-20K) ...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 250
精华内容 100
关键字:

python大数据学习路线

python 订阅