正文
Hadoop/Spark
Hadoop 是首个获得极大应用的大数据框架,是大数据领域标志性的解决方案。
Spark 通过完善的内存计算和处理优化,极大的提升了速度,是具备流处理能力的下一代批处理框架。
Spark 体系还包括一系列附加库,如Spark Streaming 、Spark MLlib、Spark GraphX、SparkNet、CaffeOnSpark等。
Kafka
Kafka 是 LinkedIn 使用 Scala 开发的一个分布式消息中间件,可以实现不同应用之间的松耦合,由于其可扩展、高吞吐、低延迟、高可靠等特性而被广泛使用。
具体可参考:https://kafka.apache.org/intro
ElasticSearch
ElasticSearch 是基于 Lucene 的实时分布式搜索引擎,由于其搜索稳定、可靠,速度快、安装方便等特点,是使用最广泛的开源搜索引擎之一。
具体可参考《Elasticsearch: 权威指南》:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
Nutch
Nutch 是 Apache 旗下的高度可扩展、可伸缩、可插拔的开源网络爬虫框架,功能完整。
当然爬出框架还有很多:Heritrix、Crawler4j、WebCollector、WebMagic、SeimiCrawler、HtmlUnit 等,可根据实际项目需要选择。
在爬虫领域,Python 可能使用的更多一些,入门也简单。
爬虫的难点不在于语言的选择,无论 Java 、Python 都可以胜任,关键还是反反爬策略的制定,以及各种实战的积累。
ethereumj
ethereumj 是以太坊协议的纯 Java 实现。不过在区块链领域,Go 语言的使用率可能更高一些。开发人员可以酌情选择。
代码可参考:https://github.com/ethereum/ethereumj
Deeplearning4J
DeepLearning4J(DL4J)是基于Java语言的分布式深度学习框架,在机器学习领域应用广泛。
入门可以参考《DL4J快速入门》:https://deeplearning4j.org/cn/quickstart
不过由于谷歌的 TensorFlow 提供的 java API 也会日趋完善,目前不少 java 程序员也会选择 TensorFlow 作为机器学习的首选框架。
以上只是个人正在使用或练手,并且比较看好的一些开源框架。如果想了解更多,可以去 Github 上搜索。
譬如,在 GitHub 的 Search 框,输入 java stars:>10000,可以搜索到星数最多、最热门的一些 Java 开源框架,如图:
如果想发掘 Java 前沿的开源项目,可以选择 Explore,点击 Trending 按钮,就可以看到近期热门的一些开源项目。
可以选择 today「当天热门」、this week「一周热门」和 this month「一月热门」,还可以在右侧选择语言来查看,比如选择 Java 语言,如图:
注:觉得好的,记得点击 star,大神贡献代码也需要鼓励 :)
可以看到,得益于最近被谷歌钦点为 Android 的官方语言,JetBrains 的 Kotlin 这一周成了最大的热门。
Java 的生态圈如此繁盛,Java 离陨落还尚需时日吧。
普通的 Java 程序员能更多的学习、使用这些优秀的框架,有能力的还可贡献一些代码,融入这个繁荣的生态,在我看来是上上策。