首页编程java编程什么是java生态圈(一文看懂大数据的技术生态圈)

什么是java生态圈(一文看懂大数据的技术生态圈)

编程之家2023-10-1297次浏览

大家好,关于什么是java生态圈很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于一文看懂大数据的技术生态圈的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

什么是java生态圈(一文看懂大数据的技术生态圈)

什么是Java

“什么是Java?”

Java,由Sun Microsystems公司于1995年5月推出,它是一种可以编写跨平台应用软件、完全面向对象的程序设计语言。

不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

“Java是怎么来的?”

20世纪末,硬件领域出现了单片式计算机系统,这种系统价格低廉,立即引起了研究人员的注意,由于C++程序过于复杂和庞大,研究人员开发了一种称为Oak的面向对象语言。这是Java的雏形。

什么是java生态圈(一文看懂大数据的技术生态圈)

1995年,业界为了使单调的静态网页能够“灵活”起来,急需开发一种程序。这时,Sun公司想起了那个被搁置很久的Oak,并将Oak更名为Java,它语言精简,程序非常小,适合在网络上传输。

1995年5月,Sun公司正式发布Java。从此Java一路披荆斩棘,在经历20多年的发展之后依然长盛不衰,常年雄踞各大编程语言排行榜第一位,这也凸显了其在IT技术领域的绝对统治力。

“学了Java,我能干什么?”

●程序员,穿梭在各种软件开发之间;

什么是java生态圈(一文看懂大数据的技术生态圈)

●架构师,参加大型项目的实现;

●网站开发,把若干个页面组成集合;

●游戏开发,在以前诺基亚还很流行的时候,手机游戏有90%以上都是Java开发的;

......

除此之外还可以做嵌入式设备、消费类电子产品开发、桌面程序等工作。

Java技术作为互联网的中流砥柱,其应用范围之多,就业岗位之多,堪称第一。

“Java的就业前景饱和了吗?”

Java技术几乎无处不在,只要有使用到电子产品的地方,就会和Java挂钩。

近年,我国互联网发展尤为迅速,外卖、电商、短视频等各类产品层出不穷。其中,推动我国互联网飞速发展,网民规模持续增长离不开一批中国程序员在背后的辛苦工作。

1.Java在我国的招聘情况:

以某招聘网站为例:

2.Java程序员薪资范围分布图:

从上图我们可以看到,超过半数的资深程序员年薪在20万以上,并且有近 40%的资深程序员年薪在 25- 50万之间。

3.程序员也是一门“铁饭碗”

2018年下半年开始,很多互联网公司大面积裁员,大家都说“资本寒冬”到来,但是从调查结果中可以看到90.9%的程序员“根本没在怕的”!

“Java的应用范围有多广?”

Java能做的事情很多,涉及到编程领域的各个方面,从电子商务网站到 Android应用,从科学应用到金融应用,从游戏到桌面应用等等。

● Android应用

打开你的安卓手机和任何一款App,他们都是使用Java语言开发的。

市场上见到的手机系统,例如MIUI,阿里云,乐蛙等,都是修改源代码再发行的。

●金融业应用的服务器程序

因Java的安全性比较高,使其在金融服务业方面的应用广泛。

大部分银行和第三方交易系统均用Java开发前台和后台电子交易系统以及数据处理项目等等。

● Web应用

Java语言在电子商务领域以及网站开发的领域都占据了一定的位置。开发人员可以用不同的框架来创建web项目。

时常被应用在各个政府部门如科学技术部、国家安全部、文化部等部门。

● J2ME应用

有一段时间,安卓上可用的游戏、软件几乎全部是用MIDP、CLDC,他们是J2ME平台的一部分。

●大数据技术

Hadoop以及其他大数据处理技术很多都是用Java,例如Apache的基于Java的HBase和Accumulo以及 ElasticSearchas。

●嵌入式领域

Java在嵌入式领域的发展有着广阔的空间。在这样平台上,只需130KB就可以很好使用Java技术。

“什么样的人适合学Java?”

●逻辑思维能力强

对于Java来说所有功能都是通过编写代码实现的,需要开发人员具备较强的逻辑性和运算性。

●端正心态、踏实耐心

在平时的工作中会有一大部分时间是花费在解决bug上,在遇到问题后一遍遍的排查代码,所以拥有良好的心态也是必不可少的优势。

●不断学习的能力

随着科技的发展会不断出现各种新型的技术,开发人员需要及时的关注这些新技术并且转化为自己技能。

Java是什么

简言之,Java环境可用来开发能在任何计算平台上运行的应用

软件。它实际上是一种非常基本且结构紧凑的技术,而它对World

Wide Web以及商业的总体影响已可同电子表格对PC机的影响相比

拟。

Java是巨大的推动力量

Java已用动态的交互应用软件使Web栩栩如生。它使开发人员

具有‘编写一次到处运行TM”的巨大能力。而且,借助其JavaAPI

及其编程语言上的Java虚拟机,它已产生一种分布信息的崭新模式。

这种模式叫做Java企业计算,正在帮助各企业以各种不同的方法取

得竞争优势。网管和控制已大大简化。软件分配基本上是免费的,

而且立即可实现。电子贸易已获得。占有成本大幅度降低。信息和

应用软件到处可存取。

Java建立在简单的前提基础上,即所有微处理器都应讲同一种

语言??所有内部采用芯片的产品都应能一起工作,无缝而方便地

共享信息。它已经改变企业和个人同Internet大交道的方式。现在,

它正在对消费类产品产生明显的影响,而且从总体上更加深刻地影

响企业计算。

借助Java,您可自由自在地使用您已拥有的硬件和软件。这是因

为Java是独立于平台的。它还可使您超越企业计算,使应用软件在便

携式计算机、信息亭、电视、蜂窝电话和其他大量设备上运行。

全世界的公司都已发现Java数不胜数的用途。所有用途可从其无

可比拟的能力,即提高可靠性、安全性和简化各种不同计算产品和

环境的能力中受益非浅,而且节省的时间和费用十分可观。

Java无处不在。它已拥有几百万个用户,其发展速度要快于在它

以前的其他任何一种计算机产品。它可位于任何地方,而且能到处运

行。Java正在迅速被用做传播信息的事实上标准,这是因为它既可给

企业,也可给最终用户带来似乎数不清的好处。

因此,请您仔细考察一下Java。它的优点是很容易发现的。

“Java正在进入企业、家庭和学校。

它正在象Internet本身一样成为普遍存在的技术。”

Oracle公司董事长和首席执行官

Larru Ellison

“Java正在改变我们使用Internet的方法,改变我们

在公司内部存取信息的方法,甚至改变我们使用蜂窝

电话的方法。它正在从根本上改变制作信息、销售信息

和分配信息的方法。”

EarthWeb公司董事长和首席执行官

Jack Hidary

Java的来龙去脉

Sun公司一小组工程师聚集在一起,认真思考日常生活中的

数字系统??因为烤面包机、恒温器、游戏机和其他无数设备

都包含越来越复杂的CPU??以及他们如何能使这些数字系统

共享信息。

创造未来的计算

制造产品的人当然全都从不同的方面来考虑其设计,视他们

所使用的硬件平台、操作系统和应用软件而定。但是,如果您要

使这些产品中的一些产品一起工作,那怎么办?安全性、可靠性

和网络问题又这么样呢?

因此,Sun公司这些工程师把各种不同的产品折开来,然后又

把它们重新组装起来,其目标是要使这些不同的设备相互交谈。

他们把这些研究对象相互传来传去,并理解所有其他研究对象的

特性,以便使他们能更好地一起工作。这就把制造商的问题缩减

到最低程度,并使消费者能方便地进行集成。当传统的语言证明

是不适用时,工程师们就打算找到某种简单的现代新语言。于

是, Java应运而生。

人们很快发现,Java有可能超越工程师的想象。Java的魅力在

于它提供给开发人员和用户的简便性。开发人员拥有广大的用户基

础、平台独立性、降低的开发费用和始终如一的执行环境,而用户

则可从生动的内容、即时软件和增大的安全性中受益。

但是,Java正是从置于World Wide Web那时起才真正起飞。Java

使全世界大为震动,因为它使Web页面栩栩如生,而且不久变得很明

显,Java拥有大得多的潜力。人们之所以采纳Java,是因为它有独特

的能力来编制和部署能在任何一个网络、任何一个操作系统上运行的

应用软件。分配软件的时间和费用实际上已不复存在,使得各公司可

把更多的资源用来开发其产品。而且,某些工业专家认为,Java可能

会改变软件销售模式,从固定价格改变为按使用量收费,这样做更有

利可图,而且可阻止非法盗版。

Java是一种网络计算的通用开放标准平台。这种平台可从电话一

直扩展到极端重要的应用,建立在您现有的硬件和软件体系结构基础

上,从而创造出一个全部联网的企业或者制造出超出的创新产品。

“由于Java具有可缩放性,因而我们可以把Java应用于小应

用软件或大应用软件,把它芯片组以及大型计算机和服务器,并

使它为各种不同的应用领域服务。”

三菱公司系统营销副总裁

Steve Hester

“借助Java,您可以用一种能最有效地使用的方式动态地分

发和分配交互式商务应用软件一一在需要运行应用软件的地方,

在需要运行应用软件的时候。”

Novell公司开发者服务部副总和总经理

Gary Mueller

Java扎下根来

在某种意义上,Java具体体现了Sun Microsystiems公司自其14年

前创建以来所追述的目标。当时,它创造了“网络就是计算机”这局名

言。它市基于Web的新网络计算模式的完美平台,因为它建立在各个

组织现有的硬件和软件体系结构基础上,能建立一个全部联网的企业。

Java是一个完整而全面的解决方案

Java远不止是一种编程语言,它是企业内外的完整计算环境,而

且万事齐备,从开发工具、操作系统、服务器软件和瘦/肥客户机一

直到网络管理工具、支持、培训、咨询和集成服务,一应俱全。Java

使用起来非常简单,部分原因是Sun提供一种全面统一的解决方案。

主要组成部分包括:

*Java开发工具和服务:有助于简化开发Java应用软件的产品和

服务

*JavaOS:一种结构紧凑的操作系统,可使Java应用软件在网络

计算机和蜂窝电话等设备上运行

*Java虚拟机:一层软件,嵌入Windows、Macintosh和UNIX等计

算机操作系统,或在这些操作系统上运行,从而使计算机能

运行Java应用软件

*Java API:标准软件界面,位于Java应用软件和数据库检索和

安全性等服务软件之间

*Java芯片:一系列为Java优化的为处理器

*Solstice WorkShop:Java启动的网络管理工具

*Java培训:一个由教师指导和基于多媒体的完整课程,教会编

程员如何开发Java应用软件,包括一个用来验证熟练程度的

认证计划

*JavaWorkShop支持:900号电话服务,可为Java WorkShop用户

(仅限美国用户)立即提供按需支持

这些产品依靠由Sun的核心技术和服务提供的基础,包括:

*Solaris操作系统

*Sikstuce企业管理系统

*WorkShop开发者工具

*SunSpectrum支持服务

*Internet咨询和集成服务

*Java和Internet教育服务

*ultra工作站和Ultra Enterprise服务器;Netra服务器

难怪大公司和日益增多的全球2000公司正在把Java计算用做系统以及

其终产品的主要方面。

“您不会把您自己锁住在任何一家公司的专有技术中。

开放意味着选择。而Java使您有选择余地。”

Java改变了什么

&nbs

p;十年前,几乎没有人想到,几个技术人员研发的一个“小语言”,会发展成如今的一个“生态圈”,这就是Java。

Java让互联网动了起来

“计算机语言的发展历史也是人们不断追求更高的模块化、抽象化和封装化的历史。近十年期间,很多编程语言,从出现到没落经过了一波又一波。像1970年代出现的Pascal,如今用的人已经不多了。”一位资深程序员告诉记者,“‘算法+数据结构=程序’几乎成为软件开发的惟一准则,结构化程序设计方法从计算机发展角度来看是自然而然的,但今天从抽象的角度来看,这种方法几乎可以说是一个‘时代错误’。实际上,软件开发的主要目的就是描述和反映现实世界,结构化程序设计方法并不符合这个思维方式。”

因此,抽象的过程应该是以现实世界的对象为中心的,于是面向对象的抽象方法就走到了前台,出现了Visual Basic、Delphi、C++以及Java等面向对象的编程语言,而互联网的勃兴,则给Java的成长带来了肥沃的土壤。

“Java诞生时并没有引起太多人的注意,它第一次让人们觉得惊艳是在一次网站演示上,但当时人们对Java还抱有很大的争议。”被誉为“Java之父”的SUN公司副总裁、软件部首席技术官James Gosling回忆起十几年前的情景不无感慨地说,“但Java的出现为当时的互联网增添了生机,它让那些静态的页面动了起来。”

而且,因为Java具有“只写一次,随处运行”的特点,从而引起了更多开发者的兴趣。

“我们可以不必再做重复性质的劳动了。”中国科学院软件研究所宋靖宇博士说,“此前,为了能够使程序在不同型号的硬件平台上运行,开发人员必须耗费大量的时间来一遍又一遍的编写代码,然而Java改变了这样的局面,只写一次就可以。”

由于看到Java在互联网时代的巨大作用,清华大学计算机系教授王克宏从1995年就开始跟踪Java的发展。

Java语言的优势似乎是与生俱来的,然而,仅有语言是不够的。

免费的Java创造了应用奇迹

“为了提高软件开发效率,任何编程语言都离不开相应的开发工具和程序库。”王克宏说。于是,SUN公司在1996年的1月23日发布了JDK1.0,其中包括两个部分:运行环境和开发工具,运行环境包括五大部分:核心API、集成API、用户界面API、发布技术和Java虚拟机。

随着各种功能的完善与提炼,各种Java开发工具以及开发环境的丰富,Java不再是一种语言的代名词,它变成了一种开发平台。人们常常听到的J2EE(企业版)、J2ME(微型版)、J2SE(标准版)就是Java的三大核心平台。利用这三种不同的平台,人们可以来做不同行业的应用。

SUN公司大中华区总裁余宏德说:“Java经过十年的发展,已经得到了全球的公认,可以说,当今的电子时代是‘Java无处不在’,正是基于它一开始的技术公开性,Java已经变成全球最富有活力的技术社区之一。”

尽管,Java目前已经风靡全世界,但Java到底给整个产业带来什么,除了Java程序员外,似乎没有人能具体感觉到。

SUN中国区市场经理马君海比喻说:“电灯的发明,使得有了现在庞大的电力产业;电话的发明,使得有了当今兴旺的电信产业;而Java的发明,则给软件产业带来了前所未有的改变。”

像一切新兴事物一样,Java的发展并不那么顺利,其坎坷起步的经历,可以从SUN首席执行官Scott McNealy在SUN的Java One大会上的一句话得知一二:“七八年前的Java One演说现在听起来真是寒碜,我们那时实在是太小看它了,我们根本不知道这项技术将会改变什么。”而且,由于开始就是基于开源的态度,当时很多人怀疑它是否能赚钱。

然而,今天的Java已经得到广泛应用。

据全球市场调查分析显示:已经有25亿部电子设备采用了Java技术,Java智能卡发行量已经达到10亿张,采用Java技术的手机达7亿多部,7亿台PC中应用了Java技术,140家电信运营商支持Java技术,全球有超过450万个Java开发人员,JCP(Java社区项目)已经有912家会员企业。

如果没有Java,SUN将会怎样

从1997年4月6日美国旧金山的第二届Java One大会,到今年的Java十周年盛事,本报目睹了Java十年的风风雨雨,眼瞅着这个以“咖啡”命名的小小编程语言变成了一个平台,一个社团,一个生态系统。Java不仅发展了自己,也同时改变了它的缔造者。Java对SUN的改变是间接的、渐进式的,有时候甚至不为外人所道也。

与平台无关的Java旨在与“锁定用户的”Windows相抗衡,给人们更多的选择,但推动Java研发的却是家硬件公司――硬件公司与微软抗个什么衡?也许有人会拿IBM做类比――IBM也大量涉足软件。问题在于,IBM涉足软件的结果是把自己变成了一个软件和服务公司,而SUN的主业依然是服务器。表面上看,“纯软”的Java并没有给“偏硬”的SUN带来直接效益,反而树了个强大的敌人,这就是并不“软”的微软。

同时,尽管SUN对Java的投资巨大,却从没说过它从Java中获得过多少回报。因为使用Java程序和开发工具包是免费的,这让那些利用Java做第三方开发的ISV们赚了个钵满盆满,可是SUN得到了什么?当然,Java作为高级编程语言,它的注册和维护也能给SUN带来一定收入,但这是一个小头,有人比喻说:“SUN成了Java的管家,而不是主人。”

SUN大中华区市场总监李永起近日为记者揭开了Java与SUN的秘密:“如果SUN只是一个做服务器的公司,人们就不会对我们太感兴趣,但有了Java,就大不一样了,人们会跑过来与我们讨论Java,人们会说:‘哦,能研发出Java这么棒的编程语言的公司一定不同凡响!’况且,服务器的销售从来就不是孤立的,它体现为一个系统,Java在硬件销售中发挥了关键作用。”SUN用 Java来定位Web服务,发挥其多平台对话的特长,营造Web服务环境。

Internet让Java复活,Java则拯救了曾经陷入“偏硬”困境中的SUN。

SUN董事长麦克尼里认为:Java带来的益处从根本上讲是间接的。“但是,”他说,“想像一下,如果10年前SUN没有做Java,今天SUN将会在哪里?如果人们不写Java Web服务,他们会写.Net的程序,如果他们写.Net的程序,他们就不会为SUN的设备写程序。”

.NET不折不扣的对手

近年来,国内一批软件公司都采用Java技术开发了一批软件平台和产品,这两年Java在国内得到了迅速发展。不过,尽管看起来Java的队伍似乎很强大,但国内Java人才相对而言还是少得可怜。

“SUN在新加坡建立了Java高级培训中心,目前新加坡有5万名Java人才,而新加坡全国只有380万人,即全国1.3%的是Java人才,如果按此比例,中国应有1700万名Java人才,而现在估计仅10到15万人。”王克宏教授在相关的报告中写道,“造成国内Java应用不多的原因是多方面的。”

“这两年SUN才开始在中国举办各种活动,而许多媒体对Java的不关注也是其中一个原因。”王克宏说。

“其实,鉴于Java出来时总给人阳春白雪的面孔,使得国内的许多编程者在熟悉了微软的开发平台后,很难转换过来是其中的一大部分原因。”宋靖宇博士说,“你不得不承认微软在开发工具上的人性化以及可视化设计是高超的。”

“在讨论 Java的时候我们很容易将 Java语言和 Java平台混为一谈,与.NET平台比较的过程中,也更多的是将Java平台和C#比较,或者将Java语言和.NET平台做比较,在我个人的意识中,这是不够公正的。”上海大学博士刘锬对记者说,“Java既是一种语言,也是一种平台。”

说到微软的.NET,它从提出的开始就是立足平台,相对于 Java提倡的“一次编写,到处运行”,.NET则提倡“一个平台,多种语言”,因为平台的统一性,因此在各个程序语言的兼容性和混合开发方面做得比Java好,也因此有些微软的“粉丝”嘲笑Java是“一次编写,到处调试”。

“微软的C#是集合了C以及C++甚至Java的许多优点的结晶,在Windows平台上,似乎C#在运行速度上更胜一筹。”刘锬介绍说,“在任何一个平台上,我们直接交流的是实现Java语言运行的虚拟机,我们希望Java在虚拟机以及它的开发平台的研发上变得更易用、更人性化。”

“有对手总是一件不算坏的事情,这个世界不需要‘独孤求败’,商业规则也不允许‘独孤求败’的出现,因为那样会打破竞争格局的平衡,而Java和.NET这两个平台的纷争才刚刚开始。较量,有利于整个软件世界。SUN公司在商业模式的运作上甚至可以跟微软学习。”一网友这样说。

一文看懂大数据的技术生态圈

一文看懂大数据的技术生态圈

大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的。你可以把它比作一个厨房所以需要的各种工具。锅碗瓢盆,各有各的用处,互相之间又有重合。你可以用汤锅直接当碗吃饭喝汤,你可以用小刀或者刨子去皮。但是每个工具有自己的特性,虽然奇怪的组合也能工作,但是未必是最佳选择。

大数据,首先你要能存的下大数据。传统的文件系统是单机的,不能横跨不同的机器。HDFS(Hadoop Distributed FileSystem)的设计本质上是为了大量的数据能横跨成百上千台机器,但是你看到的是一个文件系统而不是很多文件系统。比如你说我要获取/hdfs/tmp/file1的数据,你引用的是一个文件路径,但是实际的数据存放在很多不同的机器上。你作为用户,不需要知道这些,就好比在单机上你不关心文件分散在什么磁道什么扇区一样。HDFS为你管理这些数据。存的下数据之后,你就开始考虑怎么处理数据。虽然HDFS可以为你整体管理不同机器上的数据,但是这些数据太大了。一台机器读取成T上P的数据(很大的数据哦,比如整个东京热有史以来所有高清电影的大小甚至更大),一台机器慢慢跑也许需要好几天甚至好几周。对于很多公司来说,单机处理是不可忍受的,比如微博要更新24小时热博,它必须在24小时之内跑完这些处理。那么我如果要用很多台机器处理,我就面临了如何分配工作,如果一台机器挂了如何重新启动相应的任务,机器之间如何互相通信交换数据以完成复杂的计算等等。这就是MapReduce/ Tez/ Spark的功能。MapReduce是第一代计算引擎,Tez和Spark是第二代。MapReduce的设计,采用了很简化的计算模型,只有Map和Reduce两个计算过程(中间用Shuffle串联),用这个模型,已经可以处理大数据领域很大一部分问题了。那什么是Map什么是Reduce?考虑如果你要统计一个巨大的文本文件存储在类似HDFS上,你想要知道这个文本里各个词的出现频率。你启动了一个MapReduce程序。Map阶段,几百台机器同时读取这个文件的各个部分,分别把各自读到的部分分别统计出词频,产生类似(hello, 12100次),(world,15214次)等等这样的Pair(我这里把Map和Combine放在一起说以便简化);这几百台机器各自都产生了如上的集合,然后又有几百台机器启动Reduce处理。Reducer机器A将从Mapper机器收到所有以A开头的统计结果,机器B将收到B开头的词汇统计结果(当然实际上不会真的以字母开头做依据,而是用函数产生Hash值以避免数据串化。因为类似X开头的词肯定比其他要少得多,而你不希望数据处理各个机器的工作量相差悬殊)。然后这些Reducer将再次汇总,(hello,12100)+(hello,12311)+(hello,345881)=(hello,370292)。每个Reducer都如上处理,你就得到了整个文件的词频结果。这看似是个很简单的模型,但很多算法都可以用这个模型描述了。Map+Reduce的简单模型很黄很暴力,虽然好用,但是很笨重。第二代的Tez和Spark除了内存Cache之类的新feature,本质上来说,是让Map/Reduce模型更通用,让Map和Reduce之间的界限更模糊,数据交换更灵活,更少的磁盘读写,以便更方便地描述复杂算法,取得更高的吞吐量。有了MapReduce,Tez和Spark之后,程序员发现,MapReduce的程序写起来真麻烦。他们希望简化这个过程。这就好比你有了汇编语言,虽然你几乎什么都能干了,但是你还是觉得繁琐。你希望有个更高层更抽象的语言层来描述算法和数据处理流程。于是就有了Pig和Hive。Pig是接近脚本方式去描述MapReduce,Hive则用的是SQL。它们把脚本和SQL语言翻译成MapReduce程序,丢给计算引擎去计算,而你就从繁琐的MapReduce程序中解脱出来,用更简单更直观的语言去写程序了。有了Hive之后,人们发现SQL对比Java有巨大的优势。一个是它太容易写了。刚才词频的东西,用SQL描述就只有一两行,MapReduce写起来大约要几十上百行。而更重要的是,非计算机背景的用户终于感受到了爱:我也会写SQL!于是数据分析人员终于从乞求工程师帮忙的窘境解脱出来,工程师也从写奇怪的一次性的处理程序中解脱出来。大家都开心了。Hive逐渐成长成了大数据仓库的核心组件。甚至很多公司的流水线作业集完全是用SQL描述,因为易写易改,一看就懂,容易维护。自从数据分析人员开始用Hive分析数据之后,它们发现,Hive在MapReduce上跑,真鸡巴慢!流水线作业集也许没啥关系,比如24小时更新的推荐,反正24小时内跑完就算了。但是数据分析,人们总是希望能跑更快一些。比如我希望看过去一个小时内多少人在充气娃娃页面驻足,分别停留了多久,对于一个巨型网站海量数据下,这个处理过程也许要花几十分钟甚至很多小时。而这个分析也许只是你万里长征的第一步,你还要看多少人浏览了跳蛋多少人看了拉赫曼尼诺夫的CD,以便跟老板汇报,我们的用户是猥琐男闷骚女更多还是文艺青年/少女更多。你无法忍受等待的折磨,只能跟帅帅的工程师蝈蝈说,快,快,再快一点!于是Impala,Presto,Drill诞生了(当然还有无数非著名的交互SQL引擎,就不一一列举了)。三个系统的核心理念是,MapReduce引擎太慢,因为它太通用,太强壮,太保守,我们SQL需要更轻量,更激进地获取资源,更专门地对SQL做优化,而且不需要那么多容错性保证(因为系统出错了大不了重新启动任务,如果整个处理时间更短的话,比如几分钟之内)。这些系统让用户更快速地处理SQL任务,牺牲了通用性稳定性等特性。如果说MapReduce是大砍刀,砍啥都不怕,那上面三个就是剔骨刀,灵巧锋利,但是不能搞太大太硬的东西。这些系统,说实话,一直没有达到人们期望的流行度。因为这时候又两个异类被造出来了。他们是Hive on Tez/ Spark和SparkSQL。它们的设计理念是,MapReduce慢,但是如果我用新一代通用计算引擎Tez或者Spark来跑SQL,那我就能跑的更快。而且用户不需要维护两套系统。这就好比如果你厨房小,人又懒,对吃的精细程度要求有限,那你可以买个电饭煲,能蒸能煲能烧,省了好多厨具。上面的介绍,基本就是一个数据仓库的构架了。底层HDFS,上面跑MapReduce/Tez/Spark,在上面跑Hive,Pig。或者HDFS上直接跑Impala,Drill,Presto。这解决了中低速数据处理的要求。那如果我要更高速的处理呢?如果我是一个类似微博的公司,我希望显示不是24小时热博,我想看一个不断变化的热播榜,更新延迟在一分钟之内,上面的手段都将无法胜任。于是又一种计算模型被开发出来,这就是Streaming(流)计算。Storm是最流行的流计算平台。流计算的思路是,如果要达到更实时的更新,我何不在数据流进来的时候就处理了?比如还是词频统计的例子,我的数据流是一个一个的词,我就让他们一边流过我就一边开始统计了。流计算很牛逼,基本无延迟,但是它的短处是,不灵活,你想要统计的东西必须预先知道,毕竟数据流过就没了,你没算的东西就无法补算了。因此它是个很好的东西,但是无法替代上面数据仓库和批处理系统。还有一个有些独立的模块是KV Store,比如Cassandra,HBase,MongoDB以及很多很多很多很多其他的(多到无法想象)。所以KV Store就是说,我有一堆键值,我能很快速滴获取与这个Key绑定的数据。比如我用身份证号,能取到你的身份数据。这个动作用MapReduce也能完成,但是很可能要扫描整个数据集。而KV Store专用来处理这个操作,所有存和取都专门为此优化了。从几个P的数据中查找一个身份证号,也许只要零点几秒。这让大数据公司的一些专门操作被大大优化了。比如我网页上有个根据订单号查找订单内容的页面,而整个网站的订单数量无法单机数据库存储,我就会考虑用KV Store来存。KV Store的理念是,基本无法处理复杂的计算,大多没法JOIN,也许没法聚合,没有强一致性保证(不同数据分布在不同机器上,你每次读取也许会读到不同的结果,也无法处理类似银行转账那样的强一致性要求的操作)。但是丫就是快。极快。每个不同的KV Store设计都有不同取舍,有些更快,有些容量更高,有些可以支持更复杂的操作。必有一款适合你。除此之外,还有一些更特制的系统/组件,比如Mahout是分布式机器学习库,Protobuf是数据交换的编码和库,ZooKeeper是高一致性的分布存取协同系统,等等。有了这么多乱七八糟的工具,都在同一个集群上运转,大家需要互相尊重有序工作。所以另外一个重要组件是,调度系统。现在最流行的是Yarn。你可以把他看作中央管理,好比你妈在厨房监工,哎,你妹妹切菜切完了,你可以把刀拿去杀鸡了。只要大家都服从你妈分配,那大家都能愉快滴烧菜。你可以认为,大数据生态圈就是一个厨房工具生态圈。为了做不同的菜,中国菜,日本菜,法国菜,你需要各种不同的工具。而且客人的需求正在复杂化,你的厨具不断被发明,也没有一个万用的厨具可以处理所有情况,因此它会变的越来越复杂。

以上是小编为大家分享的关于一文看懂大数据的技术生态圈的相关内容,更多信息可以关注环球青藤分享更多干货

文章到此结束,如果本次分享的什么是java生态圈和一文看懂大数据的技术生态圈的问题解决了您的问题,那么我们由衷的感到高兴!

神奇宝贝第三部中文版全集(神奇宝贝第三部中文版全集在线观看)java中图片路径怎么表示什么,java图片路径问题