做为一个程序员开发工具比如是人的手和脚,只有把这些开发工具用好,才能作好一个产品的需求。大多使用SQL数据库存储/检索数据,现在不少状况下,它都再也不能知足咱们的需求。下面小编就介绍一些大数据data开发经常使用的辅助工具。程序员
开源企业搜索平台:Solrweb
用Java编写,来自Apache Lucene项目。Solr是一个独立的企业级搜索应用服务器,它对外提供相似于Web-service的API接口。用户能够经过http请求,向搜索引擎服务器提交必定格式的XML文件,生成索引;也能够经过Http Get操做提出查找请求,并获得XML格式的返回结果。数据库
在这里仍是要推荐下我本身建的大数据学习交流群:529867072,群里都是学大数据开发的,若是你正在学习大数据 ,小编欢迎你加入,你们都是软件开发党,不按期分享干货(只有大数据软件开发相关的),包括我本身整理的一份最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深刻大数据的小伙伴加入。缓存
与ElasticSearch同样,一样是基于Lucene,但它对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化。服务器
云构建的分布式RESTful搜索引擎:Elasticsearch网络
ElasticSearch是基于Lucene的搜索服务器。它提供了分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并做为Apache许可条款下的开放源码发布,是比较流行的企业级搜索引擎。数据结构
ElasticSearch不只是一个全文本搜索引擎,仍是一个分布式实时文档存储,其中每一个field均是被索引的数据且可被搜索;也是一个带实时分析功能的分布式搜索引擎,而且可以扩展至数以百计的服务器存储及处理PB级的数据。ElasticSearch在底层利用Lucene完成其索引功能,所以其许多基本概念源于Lucene。架构
开源分布式数据库管理系统:Cassandra—框架
最初是由Facebook开发的,旨在处理许多商品服务器上的大量数据,提供高可用性,没有单点故障。分布式
开源分布式NoSQL数据库系统:Apache Cassandra
集Google BigTable的数据模型与Amazon Dynamo的彻底分布式架构于一身。于2008开源,此后,因为Cassandra良好的可扩展性,被Digg、Twitter等Web 2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案。
因Cassandra是用Java编写的,因此理论上在具备JDK6及以上版本的机器中均可以运行,官方测试的JDK还有OpenJDK 及Sun的JDK。 Cassandra的操做命令,相似于咱们平时操做的关系数据库,对于熟悉MySQL的朋友来讲,操做会很容易上手。
跨平台的,面向文档的数据库:MongoDB
MongoDB是一个基于分布式文件存储的数据库,使用C++语言编写。旨在为Web应用提供可扩展的高性能数据存储解决方案。应用性能高低依赖于数据库性能,MongoDB则是非关系数据库中功能最丰富,最像关系数据库的,随着MongDB 3.4版本发布,其应用场景适用能力获得了进一步拓展。
MongoDB的核心优点就是灵活的文档模型、高可用复制集、可扩展分片集群。你能够试着从几大方面了解MongoDB,如实时监控MongoDB工具、内存使用量和页面错误、链接数、数据库操做、复制集等。
开源(BSD许可)内存数据结构存储:Redis 用做数据库,缓存和消息代理。
Redis是一个开源的使用ANSI C语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis 有三个主要使其有别于其它不少竞争对手的特色:Redis是彻底在内存中保存数据的数据库,使用磁盘只是为了持久性目的; Redis相比许多键值数据存储系统有相对丰富的数据类型; Redis能够将数据复制到任意数量的从服务器中。
基于Java的开源内存数据网格:Hazelcast
Hazelcast 是一种内存数据网格 in-memory data grid,提供Java程序员关键任务交易和万亿级内存应用。虽然Hazelcast没有所谓的‘Master’,可是仍然有一个Leader节点(the oldest member),这个概念与ZooKeeper中的Leader相似,可是实现原理却彻底不一样。同时,Hazelcast中的数据是分布式的,每个member持有部分数据和相应的backup数据,这点也与ZooKeeper不一样。
Hazelcast的应用便捷性深受开发者喜欢,但若是要投入使用,还须要慎重考虑。
普遍使用的开源Java分布式缓存:EHCache主要面向通用缓存、Java EE和轻量级容器。
EhCache 是一个纯Java的进程内缓存框架,具备快速、精干等特色,是Hibernate中默认的CacheProvider。主要特性有:快速简单,具备多种缓存策略;缓存数据有两级,内存和磁盘,所以无需担忧容量问题;缓存数据会在虚拟机重启的过程当中写入磁盘;能够经过RMI、可插入API等方式进行分布式缓存;具备缓存和缓存管理器的侦听接口;支持多缓存管理器实例,以及一个实例的多个缓存区域;提供Hibernate的缓存实现。
用Java编写的开源软件框架,用于分布式存储,并对很是大的数据集进行分布式处理:Hadoop
用户能够在不了解分布式底层细节的状况下,开发分布式程序。充分利用集群进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算。