MapReduce provides a programming model that abstracts the problem form disk reads and writes, transforming it into computation over sets of keys and values.
Common:
A set of components and interfaces for distributed filesystems and general I/O(serialization, JAVA RPC, persistent data structures).
Avro
A serialization system for efficient,cross-lanuage RPC, and persistent data storage.
MapRecude
A distributed data processing model and execution environment that runs on large clusters of commodity machines.
HDFS
A distributed filesystem that runs on large clusters of commodity machines.
Pig
A data flow language and execution environment for exploring very large datasets. Pig runs on HDFS and MapRecude clusters.
Hive
A distributed data warehouse. Hive manages data stored in HDFS and provides a query lanuage based on SQL (which is translated by the runtime engine to MapReduce jobs)
for querying data.
HBase
A distributed, column-oriented database. HBase uses HDFS for its underlying storage,and supports both batch-style computations using MapReduce and point queries
(random reads).
ZooKeeper
A distributed, highly available coordination service. ZooKeeper provids primitives such as distributed locks that can be used for building distributed applications.
Sqoop
A tool for efficiently moving data between relational databases and HDFS.
Achieve a great thing with many based fundamentals and helps from others contributition。
大数据技术共性
业界主流大数据技术框架
-
磁盘存储
HDFS、HBASE、S3、Cassandra、MongoDB、Redis
-
内存存储
Alluxio 、Redis
-
数据分析
Spark(SQL、Streaming、MLlib、GraphX)、Storm、MapReduce、Mahout、Hive、Pig
-
分步式协调服务
ZooKeeper
-
集群系统监控
CDH-CMS, Metrics, Grafana、Ambari
-
消息总线
kafka、ActiveMQ、Apollo、 Redis
-
索引系统
Solr、Lucene、ElasticSearch
大数据组件应用分类
-
数据采集
flume、kafka connector、sqoop、socket、sftp、mina
-
实时处理
Spark Streaming、Kafka Streams、Storm、Samza、Flink
-
数据存储
HDFS、HBASE、S3、Cassandra、MongoDB、Redis、Solr、ElasticSearch
-
离线处理
Spark SQL、Hive、Map Reduce、Pig、Impala
-
交互式查询
Drill、PresTO、Kylin
-
数据展现
Echarts、Tableau、d3js
大数据组件简介
1、Hadoop是Apache开源组织的一个分布式计算框架,提供了一个分布式文件系统 (HDFS)、MapReduce分布式计算及统一资源管理框架(Yarn)的软件架构。
-
为大规模数据的存储提供解决方案(HDFS);
-
解决大规模分步式计算( MapReduce );
-
作为其周边软件Hbase、Hive、Pig、Mahout等的基础平台。
2、HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
-
解决海量数据的存储;
-
解决随机、实时读写大数据;
-
提供简化访问HDFS的编程接口。
3、kafka是Apache旗下的一个高性能,高吞吐量的分步式消息总线系统。
-
分布式系统相互通信;
-
数据复制、同步;
-
日志同步;
-
Delay Queue;
-
广播通知。
4、Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
-
解决海量数据的存储;
-
解决大规模数据的分析:SQL。
5、MongoDB 是一个高性能,开源,无模式的文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。MongoDB不支持SQL,但有自己功能强大的查询语法。MongoDB使用BSON作为数据存储和传输的格式。BSON是一种类似JSON的二进制序列化文档,支持嵌套对象和数组。
-
解决海量数据在线存储;
-
许多情况下可以代替传统关系数据库;
-
代替键/值存储方式。
6、Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
7、Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。
8、Storm是一个分布式的、容错的实时计算系统。使用Storm进行实时大数据分析。
9、Flink 是可扩展的批处理和流式数据处理的数据处理平台,设计思想主要来源于Hadoop、MPP数据库、流式计算系统等,支持增量迭代计算。
10、Alluxio A memory speed virtual distributed storage. Alluxio是一个高容错的内存分布式文件系统,允许文件以内存的速度在集群框架中进行可靠的共享。典型特点就是加速读写数据的速度。
11、ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。其典型特点是全文快速检索。