在考虑Hadoop生态系统中的各种引擎时,重要的是要了解每个引擎在某些用例下效果最佳,并且企业可能需要使用多种工具组合才能满足每个所需的用例。话虽如此,这里是对Apache Spark的一些顶级用例的回顾。
一、流数据
Apache Spark的关键用例是其处理流数据的能力。由于每天要处理大量数据,因此对于公司而言,实时流传输和分析数据变得至关重要。Spark Streaming具有处理这种额外工作负载的能力。一些专家甚至认为,无论哪种类型,Spark都可以成为流计算应用程序的首选平台。提出此要求的原因是,Spark Streaming统一了不同的数据处理功能,从而使开发人员可以使用单个框架来满足其所有处理需求。
当今企业使用Spark Streaming的一般方式包括:
1、流式ETL –在数据仓库环境中用于批处理的传统ETL(提取,转换,加载)工具必须读取数据,将其转换为数据库兼容格式,然后再将其写入目标数据库。使用Streaming ETL,在将数据推送到数据存储之前,将对其进行连续的清理和聚合。
2、数据充实 –这种Spark Streaming功能通过将实时数据与静态数据相结合来充实实时数据,从而使组织能够进行更完整的实时数据分析。在线广告商使用数据充实功能将历史客户数据与实时客户行为数据结合起来,并根据客户的行为实时提供更多个性化和针对性的广告。
3、触发事件检测 – Spark Streaming使组织可以检测到可能对系统内部潜在严重问题的罕见或异常行为(“触发事件”)并做出快速响应。金融机构使用触发器来检测欺诈性交易并阻止其欺诈行为。医院还使用触发器来检测潜在的危险健康变化,同时监视患者的生命体征-向正确的护理人员发送自动警报,然后他们可以立即采取适当的措施。
4、复杂的会话分析 –使用Spark Streaming,与实时会话有关的事件(例如登录网站或应用程序后的用户活动)可以组合在一起并进行快速分析。会话信息还可以用于不断更新机器学习模型。诸如Netflix之类的公司使用此功能可立即了解用户在其网站上的参与方式,并提供更多实时推荐。
二、机器学习
许多Apache Spark用例中的另一个是它的机器学习功能。
Spark带有用于执行高级分析的集成框架,该框架可帮助用户对数据集进行重复查询,这从本质上讲就是处理机器学习算法。在此框架中找到的组件包括Spark的可扩展机器学习库(MLlib)。MLlib可以在诸如聚类,分类和降维等领域中工作。所有这些使Spark可以用于一些非常常见的大数据功能,例如预测智能,用于营销目的的客户细分以及情感分析。使用推荐引擎的公司将发现Spark可以快速完成工作。
网络安全是Spark 机器学习功能的一个很好的商业案例。通过使用Spark堆栈的各种组件,安全提供程序可以对数据包进行实时检查,以发现恶意活动的痕迹。在前端,Spark Streaming允许安全分析人员在将数据包传递到存储平台之前检查已知威胁。到达存储区后,数据包将通过其他堆栈组件(例如MLlib)进行进一步分析。因此,安全提供商可以在不断发展的过程中了解新的威胁-始终领先于黑客,同时实时保护其客户。
三、互动分析
Spark最显着的功能之一就是其交互式分析功能。MapReduce是为处理批处理而构建的,而Hive或Pig等SQL-on-Hadoop引擎通常太慢,无法进行交互式分析。但是,Apache Spark足够快,可以执行探索性查询而无需采样。Spark还与包括SQL,R和Python在内的多种开发语言接口。通过将Spark与可视化工具结合使用,可以交互地处理和可视化复杂的数据集。
下一版本的Apache Spark(Spark 20)将于今年的4月或5月首次亮相,它将具有一项新功能- 结构化流 -使用户能够对实时数据执行交互式查询。通过将实时流与其他类型的数据分析相结合,预计结构化流将通过允许用户针对Web访问者当前会话运行交互式查询来促进Web分析。它也可以用于将机器学习算法应用于实时数据。在这种情况下,将对旧数据进行算法训练,然后将其重定向以合并新的数据,并在其进入内存时从中学习。
四、雾计算
尽管大数据分析可能会引起广泛关注,但真正激发技术界想象力的概念是物联网(IoT)。物联网通过微型传感器将对象和设备嵌入在一起,这些微型传感器彼此之间以及与用户进行通信,从而创建了一个完全互连的世界。这个世界收集了大量数据,对其进行处理,并提供革命性的新功能和应用程序供人们在日常生活中使用。但是,随着物联网的扩展,对大量,种类繁多的机器和传感器数据进行大规模并行处理的需求也随之增加。但是,利用云中的当前分析功能很难管理所有这些处理。
那就是雾计算和Apache Spark出现的地方。
雾计算将数据处理和存储分散化,而不是在网络边缘执行这些功能。但是,雾计算为处理分散数据带来了新的复杂性,因为它越来越需要低延迟,机器学习的大规模并行处理以及极其复杂的图形分析算法。幸运的是,有了Spark Streaming等关键堆栈组件,交互式实时查询工具(Shark),机器学习库(MLib)和图形分析引擎(GraphX),Spark不仅具有雾计算解决方案的资格。实际上,随着物联网行业逐渐不可避免地融合,许多行业专家预测,与其他开源平台相比,Spark有可能成为事实上的雾基础设施。
现实世界中的火花
如前所述,在线广告商和诸如Netflix之类的公司正在利用Spark获得见识和竞争优势。其他也从Spark受益的著名企业是:
Uber –这家跨国在线出租车调度公司每天都从其移动用户那里收集TB级的事件数据。通过使用Kafka,Spark Streaming和HDFS构建连续的ETL管道,Uber可以在收集原始非结构化事件数据时将其转换为结构化数据,然后将其用于进一步和更复杂的分析。
Pinterest –通过类似的ETL管道,Pinterest可以利用Spark Streaming即时了解世界各地的用户如何与Pins互动。因此,当人们浏览站点并查看相关的图钉时,Pinterest可以提出更相关的建议,以帮助他们选择食谱,确定要购买的产品或计划前往各个目的地的行程。
Conviva –这家流媒体视频公司每月平均约有400万个视频供稿,仅次于YouTube。Conviva使用Spark通过优化视频流和管理实时视频流量来减少客户流失,从而保持一致的流畅,高质量的观看体验。
何时不使用Spark
尽管它具有通用性,但这并不一定意味着Apache Spark的内存中功能最适合所有用例。更具体地说,大数据分析Apache Spark的应用实例Spark并非设计为多用户环境。Spark用户需要知道他们有权访问的内存对于数据集是否足够。添加更多的用户使此 *** 作变得更加复杂,因为用户必须协调内存使用量才能同时运行项目。由于无法处理这种类型的并发,用户将需要为大型批处理项目考虑使用备用引擎,例如Apache Hive。
随着时间的流逝,Apache Spark将继续发展自己的生态系统,变得比以前更加通用。在大数据已成为规范的世界中,组织将需要找到最佳方式来利用它。从这些Apache Spark用例可以看出,未来几年将有很多机会来了解Spark的真正功能。
随着越来越多的组织认识到从批处理过渡到实时数据分析的好处,Apache Spark的定位是可以在众多行业中获得广泛而快速的采用。
1、Struts2:Apache Struts2是Apache软件基金会开发的一个基于MVC设计模式的Web框架,用于快速开发和部署高质量的Java EE Web应用程序。2、Struts1:Apache Struts1是Apache软件基金会开发的一个基于MVC设计模式的Web框架,用于快速开发和部署Web应用程序。
3、Struts-EL:Apache Struts-EL是Apache软件基金会开发的一个基于MVC设计模式的Web框架,用于快速开发和部署基于JSP的Web应用程序。
4、Struts-Flow:Apache Struts-Flow是Apache软件基金会开发的一个基于MVC设计模式的Web框架,用于快速开发和部署流程控制的Web应用程序。
5、Struts-Tile:Apache Struts-Tile是Apache软件基金会开发的一个基于MVC设计模式的Web框架,用于快速开发和部署使用组件的Web应用程序。
6、Struts-Validator:Apache Struts-Validator是Apache软件基金会开发的一个基于MVC设计模式的Web框架,用于快速开发和部署提供数据验证的Web应用程序。
7、Struts-OGNL:Apache Struts-OGNL是Apache软件基金会开发的一个基于MVC设计模式的Web框架,用于快速开发和部署支持OGNL语言的Web应用程序。[编辑本段]阿帕奇族
Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。相传阿帕奇是一个武士,他英勇善战,且战无不胜,被印第安人奉为勇敢和胜利的代表,因此后人便用他的名字为印第安部落命名,而阿帕奇族在印第安史上也以强悍著称。
[编辑本段]Apache基金会
Apache软件基金会(也就是Apache Software Foundation,简称为ASF),是专门为运作一个开源软件项目的 Apache 的团体提供支持的非盈利性组织,这个开源软件项目就是 Apache 项目。这个组织把自己作为有着相同目标的开发者与用户的团体,而不是简单的共享在一个服务器上的一组项目的组织团体。在它所支持的 Apache 项目与子项目中,所发行的软件产品都遵循 Apache许可证(Apache License)。
Apache软件基金会(ASF)正式创建于1999年,它的创建者是一个自称为“Apache 组织”的群体。这个“Apache 组织”在1999年以前就已经存在很长时间了,这个组织的开发者爱好们聚集在一起,在美国伊利诺斯大学超级计算机应用程序国家中心(National Center for Supercomputing Applications,简称为NCSA)开发的 NCSA >这个多了去了 ,apache 绝对是 开源里面的领头羊
for example:
分类 项目名 说明 开发语言
服务器
(共20) Apache >
Java是世界上最强大的编程语言之一,很多开发人员和大型企业都偏爱Java,并且在各种应用场景中使用它。在本文中,java课程为大家介绍几种Java库来帮助开发人员解决编程中遇到的各种相关问题。
一、JAVA核心扩展
JAVA的标准库虽然提供了那些最基本的数据类型 *** 作方法,但仍然对一些常见的需求场景,缺少实用的工具类。而另一些则是JAVA标准库本身不够完善,需要第三方库去加以补充的。
1、ApacheCommonsLang
ApacheCommonsLang是Apache最著名的JAVA库,它是对javalang的很好扩展,包含了大量非常实用的工具类,其中用的最多的有StringUtils,DateUtils,NumberUtils等。
除了ApacheCommonsLang,还有一些其他的Apache库也是对JAVA本身的很好补充,如ApacheCommonsCollection,ApacheCommonsIO,ApacheCommonsMath。
2、GoogleGuava
GoogleGuava包含了Google在自己的JAVA项目中所使用的一些核心JAVA库。包含了对:集合,缓存,并发库,字符串处理,I/O等各个方面的支持。另外Google开发的库总是以性能著称。
3、Joda-Time
JavaSE8之前的JAVA版本中对日期的支持是比较差的,Joda-Time被经常被使用来替换原有的日期系统,它能够支持更多的日历体系,并提供了很多非常方便的日期处理方法,而且它的性能也是非常出色的。
二、Web框架
Web框架是一个应用最核心的部分,因此我总是推荐使用那些最标准的,并且有良好社区支持的框架,比如Spring和Struts。
1、Spring
Spring是一个开源的应用框架,它包含很多子项目比如SpringMVC,SpringSecurity,SpringData,SpingBoot等等,几乎可以满足你项目上的所有需要。它也是我开发Web项目的首选后端框架。
2、Struts2
Struts2是Apache最有名的Web框架,它也是一个免费开源的MVC框架。Struts也能很好地支持REST,SOAP,AJAX等最新技术。
除了上面提到的两个最常见的Web框架之外,还有如GoogleWebToolkit,Tapestry,Strips等一些优秀的框架可供选择。
三、数据库(持久层)
持久层框架的选择对一个项目的成败同样非常关键,它会直接影响到系统的性能、质量、安全以及稳定性。
1、MyBatis
MyBatis是我最喜欢的数据库(持久层)框架,因为它完全是基于SQL语句的(通过SQL来提取数据并自动映射为所需的数据对象),能够为我带来足够的灵活性。
2、SpringJDBC/SpringData
SpringJDBC并不是独立的Spring子项目,而是一个整合在Spring核心库内,为JDBC *** 作提供基本封装处理的模块。通过简单的配置后,可以通过对Context中的jdbcTemplate进行调用来获得结果。
SpringData是Spring的一个子项目,提供了更加强大的持久层功能封装,和对象映射功能。它能与SpringMVC很好地整合。你可以利用JPA和CrudRepository来极大简化持久层的开发。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)