发表时间:2022-03-23来源:网络
回答这个问题我们必须了解下大数据发展史,了解下大数据的技术栈。
首先看一下我们要介绍的大数据技术栈包含什么:
Hadoop; MapReduce; NoSQL; Spark; Flink; Hive....
这个都属于大数据的技术栈,初看起来,杂乱无章。对于初学者更甚,无从下手,更不知道哪些是重点,哪些是辅助技术。
所以,我们先把这些技术的产生搞清楚,以及他们能应用什么场景。这样你就做到心里有数。
起源于Google
大家都知道最早搜索引擎是Google.其功能是提供互联网用户的信息的检索功能。那搜索引擎具体都干了哪些事呢?
其实很简单的两件事:
一是数据采集,也就是网页的爬取;
二是数据搜索,也就是索引的构建;
数据采集离不开存储,索引的构建也需要大量计算,所以存储容器和计算能力贯穿搜索引擎的整个更迭过程。
在2004年前后,Google发表了三篇重要的论文,俗称“三驾马车”:
在互联网早期,互联网产品用户规模都不是很大,很少的人会关注分布式解决方案,都在单体机器上寻找解决方案,也就是在硬件上下功夫;
而Google在当时的互联网界,不管是用户规模还是所产生数据量都是TOP级别的。所以,对分布式和集群等方式,解决存储方式研究较早,同时也采用横向拓展的思路,去研发系统。
Hadoop的产生
最早关注 Google 大数据论文的是一个程序员,也不陌生,Lucene项目的创始人 Doug Cutting。他看到论文后,颇为激动,程序员,动手能力当然很强,很快就依据论文的原理实现了类似 GFS 和 MapReduce的功能框架。注意是类似哦。
到了2006年,DC 开发的类似MapReduce功能的大数据技术,被独立出来,单独开发运维。这个也就是不就后被命名为 Hadoop 的产品。 该体系里面包含,大家熟知的分布式文件系统 HDFS 以及大数据计算引擎 MapReduce。
Yahoo 优化改编
当 Hadoop 发布之后,另一个当时的搜素引擎巨头 Yahoo 很快就使用了起来;
到了2007年,国内的百度也开始使用了 Hadoop 进行大数据存储与计算了。
又过了一年,2008年,Hadoop 正式成为 Apache 的顶级项目,自此,Hadoop 彻底火了起来,也被更多的人熟知。
当然任何系统都不可能是完美的,也不可能是通用的,并非适用于每个公司。 Yahho 使用了 MapReduce 进行大数据计算时,觉得开发太繁琐,于是他们自己便开发了一个新的系统--Pig。
Pig是一个基于 Hadoop 类 SQL 语句的脚本语言。经过编译后,直接生成 MapReduce 程序,在 Hadoop系统上运行。所以 Yahho 也是在Hadoop 基础上进行了 编程上的优化使用。
Facebook 的数据分析 Hive
Yahho 的 Pig 是一种类似于 SQL 语句的脚本语言,相比于直接编写 MapReduce 简单许多。但是使用者还是要学习这种新的脚本语言。
又一家巨头公司出现了 Facebook 为了数据分析也开发一种新的分析工具,叫做 Hive 的东西,hHive 能直接使用SQL语句进行大数据计算,这样,只要是具有数据库关系型语言的开发人员就能直接使用大数据平台。大大的降低了使用的门槛,又将大数据技术推进了一步。
至此,大数据主要的技术栈基本形成。包括 HDFS、MapReduce、Pig、Hive.
责任单一 Yarn
此时,MapReduce 一个资源调度框架,又是一个执行引擎。为了责任单一化,将这两种功能进行了分离,Yarn 项目启动了。
2012年, Yarn 成为了独立的项目,开始运营,被各大数据厂商的产品支持,成为了主流的资源管理调度系统。
效率还是效率 Spark
同年,UC 伯克利 AMP 实验室的一位博士,在使用 MapReduce 进行大数据实验计算时,发现性能非常差,不能满足其计算需求。
为了改进这种效率低下的工作方式,于是开发出了一个性能优越的替代产品,叫做 Spark 。由于Spark 性能卓著,一经推出,就受到了业界的认可,开始全面替代 MapReduce。
非关系型数据库
在2011年 左右 NoSQL 非常火爆,其中 HBase 是从Hadoop中分拆出去的,也就是底层还是HFDS 技术。所以 NoSQL 系统在大数据环境下,提供海量数据的存储和访问功能,也算是大数据技术栈一员。
数据分析,数据挖掘,机器学习
有了大数据这个底层的技术基础,更广的应用也就能实现了。大数据平台,继承了数据分析和数据挖掘技术,以及在大数据基础上,更高级的机器学习技术。
数据分析主要是数据专员的工作,一般不需要开发能力,会使用简单的 SQL 基本上够用了。一些公司的运营人员,也要求具有数据分析的能力。数据分析主要是利用上面提到的 Hive、Spark SQL 等 数据库脚本语言;
有了大数据的存储和计算能力,就能进行数据挖掘和机器学习。当然也有成熟的框架,比如Mahout、Google 的 TersorFlow等框架。
最后,有了基础的存储功能,大数据批处理,流失处理计算能力,之上的大数据分析,以及更高级的挖掘和机器学习。至此一个大数据平台就构成了。
大家也都知道Java语言是目前最为广泛使用的编程语言,它十分的容易学习而且也很好用。Java语言吸纳了C++的很多优点,而且还丢弃了C++语言里最让人费解的多继承、指针等等知识,于是对比之下Java是一个功能强大和简单易用的语言。
当然除此之外,Java语言也是有许多的特征,比如说面向对象、分布式、安全性、平台独立与可移植性、多线程、动态性等等。如果大家对Java语言有一定的了解,就更清楚的知道Java语言是一个拥有极强的跨平台能力,通过强大到异常处理保证系统的稳定性。
Hadoop和其他大数据处理技术很多的部分都是由Java语言来实现的,比如说Apache是基于Java的HBase和Accumulo以及 ElasticSearchas。
所以在学习Hadoop的一个前提条件,就是掌握Java语言。学会java语言在一定程度上对学习大数据的起到了助力的作用。
Java语言是可以编写桌面的应用程序、Web端的应用程序、分布式系统和嵌入式系统应用程序等等。在这里我们与传统的编程语言,就像C语言、C++语言相比较,我们就发现Java语言其实更加容易上手,而且比微软平台的开发语言,如VB语言、MFC语言等有着更加优秀的跨平台运行的能力。
虽然Java语言没有能完全的实现一次编程、导出运行的目标,但是Java和较早其他的编程语言,仍然拥有极高的跨平台能力。
三、Java和python操作zk和kafka比较
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写,适配Java会更好一些 ;Zk是Java和python都可以进行操作。
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14