对于程序员来说,大部分都是学习的编程开发语言,而编程也一直是互联网软件开发领域的主流编程语言之一。今天,我们就一起来了解一下,的生态圈都包含了哪些框架。
的生态环境开放、自由,在Sun/Oracle、Google、Apache、Eclipse基金会等各大厂商,还有技术大牛的共同努力下,的生态圈异常繁荣,各种优秀的开源框架层出不穷。
SpringBoot
SpringBoot是Pivotal团队推出的一个支持快速开发的框架,伴随Spring4.0而生,继承了Spring的优秀特质,简化了使用Spring编码、配置、部署的过程,使项目的开发变得简单、敏捷。
SpringCloud
SpringCloud是基于SpringBoot的一整套分布式系统下的微服务构建框架,包含了众多的子项目,如SpringCloudConfig、SpringCloudStream等。
Hadoop/Spark
Hadoop是个获得极大应用的大数据框架,是大数据领域标志性的解决方案。
Spark通过完善的内存计算和处理优化,极大的提升了速度,是具备流处理能力的下一代批处理框架。
Spark体系还包括一系列附加库,如SparkStreaming、SparkMLlib、SparkGraphX、SparkNet、CaffeOnSpark等。
Kafka
Kafka是LinkedIn使用Scala开发的一个分布式消息中间件,可以实现不同应用之间的松耦合,由于其可扩展、高吞吐、低延迟、高可靠等特性而被广泛使用。
ElasticSearch
ElasticSearch是基于Lucene的实时分布式搜索引擎,昆明北大青鸟http://www.kmbdqn.cn/认为由于其搜索稳定、可靠,速度快、安装方便等特点,是使用广泛的开源搜索引擎之一。
Nutch
Nutch是Apache旗下的高度可扩展、可伸缩、可插拔的开源网络爬虫框架,功能完整。
当然爬出框架还有很多:Heritrix、Crawler4j、WebCollector、WebMagic、SeimiCrawler、HtmlUnit等,可根据实际项目需要选择。
在爬虫领域,Python可能使用的更多一些,入门也简单。
爬虫的难点不在于语言的选择,无论、Python都可以胜任,关键还是反反爬策略的制定,以及各种实战的积累。
Hadoop分为两大部分:HDFS、Mapreduce。
HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
由于编写MapReduce程序繁琐复杂,而sql语言比较简单,程序员就开发出了支持sql的hive。hive的出现方便了程序员和没有计算机背景的数据分析人员。我们只需要编写相对简单的sql命令,hive会帮我们翻译为mapreduce程序交给计算机去执行。
mapreduceh这个计算框架每次执行都是从磁盘中读取的,而spark则是直接从内存中读取的。由于MapReduce 的框架限制,一个 MapReduce 任务只能包含一次 Map 和一次 Reduce,计算完成之后,MapReduce 会将运算结果写回到磁盘中(更准确地说是分布式存储系统)供下次计算使用。如果所做的运算涉及大量循环,比如估计模型参数的梯度下降或随机梯度下降算法就需要多次循环使用训练数据,那么整个计算过程会不断重复地往磁盘里读写中间结果。这样的读写数据会引起大量的网络传输以及磁盘读写,极其耗时,而且它们都是没什么实际价值的废 *** 作。因为上一次循环的结果会立马被下一次使用,完全没必要将其写入磁盘。
所以spark可以理解为mapreduce的改进升级版
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)