MPP(Massively Parallel Processing):大规模并行处理系统,这样的系统是由许多松耦合处理单元组成的,要注意的是这里指的是处理单元而不是处理器。每个单元内的CPU都有自己私有的资源,如总线、内存、硬盘等。在每个单元内都有操作系统和管理数据库的实例复本。这种结构最大的特点在于不共享资源。
MPP(分布式关系数据库)
说明:与Hadoop的理论基础是相似,将运算分布到节点中独立运算后进行结果合并。
特点:支持列式存储、对sql有完整的兼容性,
应用场景:数据扩展需求不大、需要处理的节点不多、多为结构化数据;
数据库:Greenplum、Gbase
消息队列(Message Queue)
说明:是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。
特点:一种应用间的异步协作机制,易用性、扩展性、高可用性等方面表现不俗。
应用场景:在分布式系统中存储转发消息
应用:RabbitMQ、Kafka 和 ActiveMQ
Hadoop:开源分布式计算平台
HDFS:Hadoop分布式文件系统(Hadoop Distributed Filesystem)
MapReduce:分布式计算和任务处理。MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务。
Jobtracker:主线程
tasktracker:由jobtracker指派任务,实例化用户程序,在本地执行任务并周期性地向jobtracker汇报状态
Hive :构建在Hadoop之上的数据仓库,数据计算使用MR,数据存储使用HDFS
Storm:一个分布式的、容错的实时计算系统。
Spark:内存计算框架,通用的并行化计算框架,基于MapReduce实现分布式计算,其中间结果可以保存在内存中,从而不再需要读写HDFS
YARN:资源管理系统,理论上支持多种资源,目前支持CPU和内存两种资源。
Hadoop | 存储能力 | |
读写速度 | ||
数据结构多样性 | ||
海量 | ||
实时 |
YARN | Yet Another Resource Negotiator 通用的统一资源管理系统 |
MapReduce | 离线计算框架=Map(拆分) + Reduce(合并、排序) |
Storm | 实时计算框架 |
Spark | 内存计算框架 |
Flink | 面向分布式数据流处理和批量数据处理的开源计算平台 |
Hive | 数据仓库,支持sql查询语言,效率低 |
Impala(快速) | Cloudera公司主导开发的新型查询系统,它提供SQL语义, 能查询存储在Hadoop的HDFS和HBase中的PB级大数据。 是Hive的功能补充。 |
Hbase | 分布式列存储系统,结构化数据,实时效率高 |
MySql | 行存储数据库 |
ES | 索引存储 |
Redis |
Zookeeper | 一个高性能的开源分布式应用协调服务, 为Hive和Hbase提供数据同步服务。 |
Sqoop | 将数据从Oracle、MySQL等传统数据库导入 Hive或Hbase |
ElasticSearch(ES) | 分布式的全文检索框架(搜索引擎) |
Flume | 是Cloudera提供的一个高可用的,高可靠的, 分布式的海量日志采集、聚合和传输的系统。 |
Spark(计算平台) | ML lib | |
Spark Streaming | ||
Spark QL | ||
GraphX |
Hadoop集群部署注意:
1)所有机器上hadoop的部署目录结构要求相同
2)并且都有一个相同的用户名账户
3)打开SSH无密码验证配置(NameNode 和 所有DataNode)
4)安装Jdk环境(1.6以上)
5)以root权限安装Hadoop(NameNode 和 所有DataNode)并配置
6)启动hadoop(启动前关闭所有机器防火墙,否则启动后会自动关闭)
SSH无密码原理
Master(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode | Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。
HA:High Availability,高可用性
ODS:Operational Data Store,操作数据存储
倒序索引:inverted index
OLTP:On-Line Transaction Processing,联机事务处理过程,也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。
OLAP:On-Line Analytical Processing,联机分析处理,是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
宽表:从字面意义上讲就是字段比较多的数据库表。通常是指业务主题相关的指标、维度、属性关联在一起的一张数据库表。由于把不同的内容都放在同一张表存储,宽表已经不符合三范式的模型设计规范,随之带来的主要坏处就是数据的大量冗余,与之相对应的好处就是查询性能的提高与便捷。这种宽表的设计广泛应用于数据挖掘模型训练前的数据准备,通过把相关字段放在同一张表中,可以大大提高数据挖掘模型训练过程中迭代计算时的效率问题。
数据集市:不同的主题来源于数据仓库中的不同子集
Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时,提供支持流处理和批处理两种类型应用的功能。
ETL是数据抽取(ExtraCt)、转换(Transform)、加载(Load )的简写,它是指:将OLTP 系统中的数据抽取出来,并将不同数据源的数据进行转换和整合,得出一致性的数据,然后加载到数据仓库中。
大数据平台:
Cloudera版本(Cloudera’s Distribution Including Apache Hadoop)简称”CDH“。
Apache基金会hadoop
Hontonworks版本(Hortonworks Data Platform)简称“HDP”。
CDH不兼容el7(Centos7)