java转大数据方向如何走?

网友投稿 742 2022-05-29

大数据的三个发展方向,平台搭建/优化/运维/监控、大数据开发/ 设计/ 架构、数据分析/挖掘。请不要问我哪个容易,哪个前景好,哪个钱多。

先扯一下大数据的4V特征:

数据量大,TB->PB

数据类型繁多,结构化、非结构化文本、日志、视频、图片、地理位置等;

商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来;

处理时效性高,海量数据的处理需求不再局限在离线计算当中。

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

文件存储:Hadoop HDFS、Tachyon、KFS

离线计算:Hadoop MapReduce、Spark

流式、实时计算:Storm、Spark Streaming、S4、Heron

K-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到底在干些什么;Resource Manager到底在干些什么;

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的语法和命令。

如果你已经按照《写给大数据开发初学者的话》中第一章和第二章的流程认真完整的走了一遍,那么你应该已经具备以下技能和知识点:

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表;如果后续选型确定使用Sqoop作为数据交换工具,那么建议熟练掌握,否则,了解和会用Demo即可。

3.4 Flume

Flume是一个分布式的海量日志采集和传输框架,因为“采集和传输框架”,所以它并不适合关系型数据库的数据采集和传输。Flume可以实时的从网络协议、消息系统、文件系统采集日志,并传输到HDFS上。

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

下载和配置Flume。使用Flume监控一个不断追加数据的文件,并将数据传输到HDFS;Flume的配置和使用较为复杂,如果你没有足够的兴趣和耐心,可以先跳过Flume。

3.5 阿里开源的DataX

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

可以参考我的博文《异构数据源海量数据交换工具-Taobao DataX 下载和使用》。现在DataX已经是3.0版本,支持很多数据源。你也可以在其之上做二次开发。有兴趣的可以研究和使用一下,对比一下它与Sqoop。

第四章:把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中的表。Spark不是一门短时间内就能掌握的技术,因此建议在了解了Spark之后,可以先从SparkSQL入手,循序渐进。

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

第六章:一夫多妻制

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

在实际业务场景下,特别是对于一些监控日志,想即时的从日志中了解一些指标(关于实时计算,后面章节会有介绍),这时候,从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

Oozie是什么?有哪些功能?

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

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

安装配置Oozie。

7.2 其他开源的任务调度系统

Azkaban,light-task-scheduler,Zeus

大数据学习路线

java(Java se,javaweb)

Linux(shell,高并发架构,lucene,solr)

Hadoop(Hadoop,HDFS,Mapreduce,yarn,hive,hbase,sqoop,zookeeper,flume)

机器学习(R,mahout)

Storm(Storm,kafka,redis)

Spark(scala,spark,spark core,spark sql,spark streaming,spark mllib,spark graphx)

Python(python,spark python)

云计算平台(docker,kvm,openstack)

名词解释

一、Linux

lucene: 全文检索引擎的架构

solr: 基于lucene的全文搜索服务器,实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面。

二、Hadoop

HDFS: 分布式存储系统,包含NameNode,DataNode。NameNode:元数据,DataNode。DataNode:存数数据。

yarn: 可以理解为MapReduce的协调机制,本质就是Hadoop的处理分析机制,分为ResourceManager NodeManager。

MapReduce: 软件框架,编写程序。

Hive: 数据仓库 可以用SQL查询,可以运行Map/Reduce程序。用来计算趋势或者网站日志,不应用于实时查询,需要很长时间返回结果。

HBase: 数据库。非常适合用来做大数据的实时查询。Facebook用Hbase存储消息数据并进行消息实时的分析

ZooKeeper: 针对大型分布式的可靠性协调系统。Hadoop的分布式同步等靠Zookeeper实现,例如多个NameNode,active standby切换。

Sqoop: 数据库相互转移,关系型数据库和HDFS相互转移

Mahout: 可扩展的机器学习和数据挖掘库。用来做推荐挖掘,聚集,分类,频繁项集挖掘。

Chukwa: 开源收集系统,监视大型分布式系统,建立在HDFS和Map/Reduce框架之上。显示、监视、分析结果。

Ambari: 用于配置、管理和监视Hadoop集群,基于Web,界面友好。

二、Cloudera

Cloudera Manager: 管理 监控 诊断 集成

Cloudera CDH:(Cloudera's Distribution,including Apache Hadoop) Cloudera对Hadoop做了相应的改变,发行版本称为CDH。

Cloudera Flume: 日志收集系统,支持在日志系统中定制各类数据发送方,用来收集数据。

Cloudera Impala: 对存储在Apache Hadoop的HDFS,HBase的数据提供直接查询互动的SQL。

Cloudera hue: web管理器,包括hue ui,hui server,hui db。hue提供所有CDH组件的shell界面的接口,可以在hue编写mr。

三、机器学习/R

R: 用于统计分析、绘图的语言和操作环境,目前有Hadoop-R

mahout: 提供可扩展的机器学习领域经典算法的实现,包括聚类、分类、推荐过滤、频繁子项挖掘等,且可通过Hadoop扩展到云中。

四、storm

Storm: 分布式,容错的实时流式计算系统,可以用作实时分析,在线机器学习,信息流处理,连续性计算,分布式RPC,实时处理消息并更新数据库。

Kafka: 高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据(浏览,搜索等)。相对Hadoop的日志数据和离线分析,可以实现实时处理。目前通过Hadoop的并行加载机制来统一线上和离线的消息处理

Redis: 由c语言编写,支持网络、可基于内存亦可持久化的日志型、key-value型数据库。

五、Spark

Scala: 一种类似java的完全面向对象的编程语言。

jblas: 一个快速的线性代数库(JAVA)。基于BLAS与LAPACK,矩阵计算实际的行业标准,并使用先进的基础设施等所有的计算程序的ATLAS艺术的实现,使其非常快。

Spark: Spark是在Scala语言中实现的类似于Hadoop MapReduce的通用并行框架,除了Hadoop MapReduce所具有的优点,但不同于MapReduce的是job中间输出结果可以保存在内存中,从而不需要读写HDFS,因此Spark能更好的适用于数据挖掘与机器学习等需要迭代的MapReduce算法。可以和Hadoop文件系统并行运作,用过Mesos的第三方集群框架可以支持此行为。

Spark SQL: 作为Apache Spark大数据框架的一部分,可用于结构化数据处理并可以执行类似SQL的Spark数据查询

Spark Streaming: 一种构建在Spark上的实时计算框架,扩展了Spark处理大数据流式数据的能力。

Spark MLlib: MLlib是Spark是常用的机器学习算法的实现库,目前(2014.05)支持二元分类,回归,聚类以及协同过滤。同时也包括一个底层的梯度下降优化基础算法。MLlib以来jblas线性代数库,jblas本身以来远程的Fortran程序。

Spark GraphX: GraphX是Spark中用于图和图并行计算的API,可以在Spark之上提供一站式数据解决方案,可以方便且高效地完成图计算的一整套流水作业。

Fortran: 最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域。

BLAS: 基础线性代数子程序库,拥有大量已经编写好的关于线性代数运算的程序。

LAPACK: 著名的公开软件,包含了求解科学与工程计算中最常见的数值线性代数问题,如求解线性方程组、线性最小二乘问题、特征值问题和奇异值问题等。

ATLAS: BLAS线性算法库的优化版本。

Spark Python: Spark是由scala语言编写的,但是为了推广和兼容,提供了java和python接口。

六、Python

Python: 一种面向对象的、解释型计算机程序设计语言。

七、云计算平台

Docker: 开源的应用容器引擎

kvm: (Keyboard Video Mouse)

openstack:  开源的云计算管理平台项目

大数据指不用随机分析法这样捷径,而采用所有数据进行分析处理的方法。互联网时代每个企业每天都要产生庞大的数据,对数据进行储存,对有效的数据进行挖掘分析并应用需要依赖于大数据开发,

阶段一、Linux&&Hadoop生态体系

1、Linux大纲

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

2) 了解机架服务器,采用真实机架服务器部署linux

3) Linux的常用命令:常用命令的介绍、常用命令的使用和练习

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

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

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

7) Linux用户和组账户管理:用户的管理、组管理

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

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

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

11) yum命令,yum源搭建

12) Linux网络:Linux网络的介绍、Linux网络的配置和维护

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

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

2、大型网站高并发处理

1) 第四层负载均衡

a) Lvs负载均衡

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

b) F5负载均衡器介绍

2) 第七层负载均衡

a) Nginx

b) Apache

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

4) 缓存优化

a) Java缓存框架

i. Oscache,ehcacheb) 缓存数据库

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、Hadoop离线计算大纲

1) Hadoop生态环境介绍

2) Hadoop云计算中的位置和关系

3) 国内外Hadoop应用案例介绍

4) Hadoop 概念、版本、历史

5) Hadoop 核心组成介绍及hdfs、mapreduce 体系结构

6) Hadoop 的集群结构

7) Hadoop 伪分布的详细安装步骤

8) 通过命令行和浏览器观察hadoop

9) HDFS底层工作原理

10) HDFS datanode,namenode详解

11) Hdfs shell

12) Hdfs java api

13) Mapreduce四个阶段介绍

14) Writable

15) InputSplit和OutputSplit

16) Maptask

17) Shuffle:Sort,Partitioner,Group,Combiner

18) Reducer

19) 二次排序

20) 倒排序索引

21) 最优路径

22) 电信数据挖掘之-----移动轨迹预测分析(中国棱镜计划)

23) 社交好友推荐算法

24) 互联网精准广告推送 算法

25) 阿里巴巴天池大数据竞赛 《天猫推荐算法》案例

26) Mapreduce实战pagerank算法

27) Hadoop2.x集群结构体系介绍

28) Hadoop2.x集群搭建

29) NameNode的高可用性(HA)

30) HDFS Federation

31) ResourceManager 的高可用性(HA)

32) Hadoop集群常见问题和解决方法

33) Hadoop集群管理

6、分布式数据库Hbase

1) HBase与RDBMS的对比

2) 数据模型

3) 系统架构

4) HBase上的MapReduce

5) 表的设计

6) 集群的搭建过程讲解

7) 集群的监控

8) 集群的管理

9) HBase Shell以及演示

10) Hbase 树形表设计

11) Hbase 一对多 和 多对多 表设计

12) Hbase 微博 案例

13) Hbase 订单案例

14) Hbase表级优化

15) Hbase 写数据优化

16) Hbase 读数据优化

7、数据仓库Hive

1) 数据仓库基础知识

2) Hive定义

3) Hive体系结构简介

4) Hive集群

5) 客户端简介

6) HiveQL定义

7) HiveQL与SQL的比较

8) 数据类型

9) 外部表和分区表

10) ddl与CLI客户端演示

11) dml与CLI客户端演示

12) select与CLI客户端演示

13) Operators 和 functions与CLI客户端演示

14) Hive server2 与jdbc

15) 用户自定义函数(UDF 和 UDAF)的开发与演示

16) Hive 优化

8、数据迁移工具Sqoop

1) 介绍 和 配置Sqoop

2) Sqoop shell使用

3) Sqoop-importa) DBMS-hdfsb) DBMS-hivec) DBMS-hbase

4) Sqoop-export

9、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 的整合

10、Zookeeper开发

1) Zookeeper java api开发

2) Zookeeper rmi高可用分布式集群开发

3) Zookeeper redis高可用监控实现

4) Netty 异步io通信框架

5) Zookeeper实现netty分布式架构的高可用

11、某一线公司的真实项目

项目技术架构体系:

a) Web项目和云计算项目的整合

b) Flume通过avro实时收集web项目中的日志

c) 数据的ETL

d) Hive 批量 sql执行

e) Hive 自定义函数

f) Hive和hbase整合。

g) Hbase 数据支持 sql查询分析

h) Mapreduce数据挖掘

i) Hbase dao处理

j) Sqoop 在项目中的使用。

k) Mapreduce 定时调用和监控

阶段二、大数据计算框架体系

1、Storm基础

Storm是什么

Storm架构分析

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

Maven环境快速搭建

Storm WordCount案例及常用Api

Storm+Kafka+Redis业务指标计算

Storm集群安装部署

Storm源码下载编译

2、Storm原理

Storm集群启动及源码分析

Storm任务提交及源码分析

Storm数据发送流程分析

Strom通信机制分析浅谈

Storm消息容错机制及源码分析

Storm多stream项目分析

Storm Trident和传感器数据

实时趋势分析

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

Storm DRPC实战讲解

编写自己的流式任务执行框架

3、消息队列kafka

消息队列是什么

kafka核心组件

kafka集群部署实战及常用命令

kafka配置文件梳理

kafka JavaApi学习

kafka文件存储机制分析

kafka的分布与订阅

kafka使用zookeeper进行协调管理

java转大数据方向如何走?

4、Redis

nosql介绍

redis介绍

redis安装

客户端连接

redis的数据功能

redis持久化

redis应用案例

5、zookeper

Zookeeper简介

Zookeeper集群部署

zookeeper核心工作机制

Zookeeper命令行操作

Zookeeper客户端API

Zookeeper应用案例

Zookeeper原理补充

6、日志告警系统项目实战

需求分析

架构及功能设计

数据采集功能开发及常见问题

数据库模型设计及开发

Storm程序设计及功能开发

集成测试及运行

优化升级及常见问题

7、猜你喜欢推荐系统实战

推荐系统基础知识

推荐系统开发流程分析

mahout协同过滤Api使用

Java推荐引擎开发实战

推荐系统集成运行

阶段三、云计算体系

1、Docker 课程

基本介绍

vm docker 对比

docker基本架构介绍

unfs cgroup namespace

进程虚拟化 轻量级虚拟化

docker 安装

docker 镜像制作

docker 常用命令

docker 镜像迁移

docker pipework(i.openvswitch)

docker weave

2、ReactJS框架

虚拟化介绍,虚拟化适用场景等等

Qemu Libvirt & KVM

安装KVM, Qemu, Libvirt

QEMU-KVM: 安装第一个能上网的虚拟机

Kvm虚拟机 nat,网桥基本原理

kvm虚拟机克隆

kvm虚拟机vnc配置

kvm虚拟机扩展磁盘空间

Kvm快照

Kvm 迁移

Java,python,c语言编程控制kvm

构建自己的虚拟云平台

3、AngularJS框架

openstack介绍和模块基本原理分析

openstack多节点安装部署(a.采用centos6.x系统)

Keystone基本原理

glance

Cinder

Swift

Neutron

Openstack api 二次开发

阶段四、机器学习&&深度学习

1、R语言&&机器学习

1) R语言介绍,基本函数,数据类型

2) 线性回归

3) 朴素贝叶斯聚类

4) 决策树分类

5) k均值聚类

a) 离群点检测

6) 关联规则探索

7) 神经网络

2、Mahout机器学习

1) 介绍为什么使用它,它的前景

a) 简单介绍Mahout

b) 简单介绍机器学习

c) 实例演示Mahout单机推荐程序

2) 配置安装(hadoop2.x版本的)编译安装步骤说明

a) 命令行中测试运行协同过滤概念

3) 推荐

a) 讲解基于用户的协同过滤

b) 讲解基于物品的协同过滤

4) 分类

a) 分类概念

b) 分类的应用及Mahout分类优势

c) 分类和聚类、推荐的区别

d) 分类工作原理

e) 分类中概念术语

f) 分类项目工作流

g) 如何定义预测变量

h) 线性分类器的介绍,及贝叶斯分类器

i) 决策树分类器的介绍,及随机森林分类器

j) 如何使用贝叶斯分类器和随机森林分类器的代码展示

5) 聚类

a) 聚类概念

b) 聚类步骤流程

c) 聚类中的距离测度

d) 讲解K-means聚类

e) K-means聚类算法展示

f) 聚类其他算法

g) 介绍TF-IDF

h) 归一化

i) 微博聚类案例

3、项目实战

项目技术架构体系:

a) 分布式平台 Hadoop,MapReduce

b) 数据采集 Flume

c) 数据清洗 ETL

d) 数据库 Hbase,Redis

e) 机器学习 Mahout

Hadoop Java 大数据

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【王喆-推荐系统】模型篇-(task3)环境准备+数据处理
下一篇:idea快捷键_详细
相关文章