🔔

BigData Note5:大数据组件

缓存

Redis

Alluxio

  • AlluxioAlluxio(之前名为Tachyon)是世界上第一个以内存为中心的虚拟的分布式存储系统。它统一了数据访问的方式,为上层计算框架和底层存储系统构建了桥梁。应用只需要连接Alluxio即可访问存储在底层任意存储系统中的数据。此外,Alluxio的以内存为中心的架构使得数据的访问速度能比现有常规方案快几个数量级。
notion image

Apache Ignite

• Apache gnite是一个开源的分布式数据库、缓存和处理平台,它以内存速度处理数PB的数据。

实时查询

Apache Drill

  • Apache Drill:Apache Drill是一个能够对大数据进行实时的分布式查询引擎。

Apache Presto

Apache Presto是一种分布式并行查询执行引擎,针对低延迟和交互式查询分析进行了优化。Presto可以轻松运行查询,即使从千兆字节到百万字节,也能缩短时间。
单个Presto查询可以处理来自多个来源的数据,如HDFS,MySQL,Cassandra,Hive以及更多的数据源。Presto内置Java,易于与其他数据基础架构组件集成。Presto是强大的,领先的公司,如Airbnb,DropBox,Groupon,Netflix正在采用它。

特点

  • 简单可扩展的架构。
  • 可插拔连接器 - Presto支持可插拔连接器,为查询提供元数据和数据。
  • 流水线执行 - 避免不必要的I / O延迟开销。
  • 用户定义的功能 - 分析人员可以创建自定义用户定义的功能,轻松迁移。
  • 矢量化柱状处理。

Apache Solr

Solr是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。
 
 

算法库

Apache Mahout

  • Apache Mahout :是 Apache Software Foundation(ASF )旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现 ,旨在帮助开发人员更加方便快捷地创建智能应用程序。
 

数据湖

JindoFS

EMR Jindo 是阿里云基于 Apache Spark / Apache Hadoop 在云上定制的分布式计算和存储引擎。
EMR Jindo 有计算和存储两大部分,存储的部分叫 JindoFS。JindoFS 是阿里云针对云上存储定制的自研大数据存储服务,完全兼容 Hadoop 文件系统接口,给客户带来更加灵活、高效的计算存储方案,目前已验证支持阿里云 EMR 中所有的计算服务和引擎:Spark、Flink、Hive、MapReduce、Presto、Impala 等。Jindo FS 有两种使用模式,块存储模式和缓存模式。
notion image
JindoFS是基于阿里云对象存储OSS,为开源大数据生态构建的Hadoop文件系统(HCFS)。
JindoFS提供兼容对象存储的纯客户端模式(SDK)和缓存模式(Cache),以支持与优化Hadoop和Spark生态大数据计算对OSS的访问;提供块存储模式(Block),以充分利用OSS的海量存储能力和优化文件系统元数据的操作。
notion image
JindoFS 内部可以将数据分为以下集中,热数据,温数据,冷数据,低频数据,归档数据。
数据类型
描述
热数据
本地存在备份数据,且数据处于Pin的状态,OSS数据处于标准存储
温数据
本地存在备份数据,OSS数据处于标准存储,缺省状态
冷数据
本地不存在备份数据,OSS数据处于标准存储
低频数据
本地不存在备份数据,OSS数据处于低频类型存储
归档数据
本地不存在备份数据,OSS数据处于归档类型存储
JindoFS纯客户端模式为Hive和Spark等计算框架提供了访问阿里云OSS及其各种操作的优化,类似Hadoop社区的OSS FileSystem或S3A FileSystem。此模式不改变文件或对象在OSS上的组织方式,文件还是保存在OSS上,JindoFS只是提供面向Hadoop生态的客户端连接、扩展、适配和优化访问。您可以使用此模式,上传JindoFS SDK的JAR包至组件的classpath目录,简单易用,无需部署分布式服务。
notion image
 

脚本语言

Apache Pig

Apache Pig是一个用来分析大数据集的平台,它由两部分组成:一部分是用于表达数据分析程序的高级脚本语言,另一部分是用于评估分析程序的基本工具。目前来看,Pig主要用于离线数据的批量处理应用场景。
Pig是Hadoop数据操作的客户端是一个数据分析引擎,采用了一定的语法操作HDFS中的数据(Pig应该说是一种语言,有人说Pig是类SQL的语言我这里只能说它的功能类似Sql语言和数据库的关系,而且这里的Sql更像是PLSQL而不是标准SQL,Hadoop中更像标准Sql的应该是Hive或者叫HiveQL),它的语言比较像Shell脚本,可以嵌入Hadoop的JAVA程序中,从而达到简化代码的功能,Pig的脚本叫Pig Latin,之所以说Pig是一个数据分析引擎,是因为Pig相当于一个翻译器,将Pig Latin语句翻译成MapReduce程序,而Pig Latin语句是一种用于处理大规模数据的脚本语言。
 

资源调度

管理容器常见的系统有Mesos、Kubernetes(K8S)和YARN。
Mesos、YRAN存在的不足

YARN

 

Kubernetes

Mesos

Apache Mesos 是一个集群管理器类似于YARN,提供了有效的、跨分布式应用或框架的资源隔离和共享,可以运行 Hadoop、MPI、Hypertable、Spark。
mesos使数据中心(庞大的服务器集群)看起来像是一个资源(CPU、内存、存储、网络带宽、端口等)池;
notion image

XXL-JOB

xxl-job是一个开源的分布式定时任务框架,其调度中心和执行器是相互分离,分开部署的,两者通过HTTP协议进行通信。
notion image
xxl-job的特性有很多,官网上有详细的介绍,这里介绍几个重要的特性:
  1. 简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;
  1. 动态:支持动态修改任务状态、启动/停止任务,以及终止运行中的任务,都是即时生效的。
  1. 调度中心HA(中心式):调度采用中心式设计,“调度中心”自研调度组件并支持集群部署,可保证调度中心HA;
  1. 执行器HA(分布式):任务分布式执行,任务”执行器”支持集群部署,可保证任务执行HA;
  1. 调度过期策略:调度中心错过调度时间的补偿处理策略:包括:忽略,立即补偿触发一次等;
  1. 阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认)、丢弃后续调度、覆盖之前的调用。
  1. 任务超时控制:支持自定义任务超时时间,任务运行超时将会主动中断任务;
 

Oozie

Oozie是一个用来管理Hadoop生态圈job的工作流调度系统。由Cloudera公司贡献给Apache。Oozie是运行于Javaservlet容器上的一个javaweb应用。
一个基于工作流引擎的开源框架,由Cloudera公司贡献给Apache,提供对hadoop Mapreduce,pig Jobs的任务调度与协调
oozie是一个workflow(工作流)协调系统,是由Cloudera公司贡献给Apache的,主要用来管理Hadoop作业(job).属于web应用程序,由oozie client和oozie server两个组件构成.
oozie server运行于java servlet容器(tomcat)中的web程序.
 
 

任务调度

Zookeeper

 

Kafka

 
 

采集工具

sqoop

2021.6.16,终止 Apache Sqoop 项目!
sqoop是一个款开源工具,主要用于hadoop(hive)与传统的数据库(mysql,orcle,postgresql…)之间进行数据传递。
MySQL,Oracle 导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等数据存储系统,
工具:本质就是迁移数据, 迁移的方式:就是把sqoop的迁移命令转换成MR程序
notion image

Flume

Apache Flume 是一个分布式,高可用的数据收集系统。它可以从不同的数据源收集数据,经过聚合后发送到存储系统中,通常用于日志数据的收集。
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。
Flume最主要的作用就是,实时读取服务器本地磁盘的数据,将数据写入到HDFS。
notion image
notion image

管理工具

为什么需要他们

  • 1000台服务器 (opens new window)的集群,最少要花费多长时间来搭建好Hadoop集群,包括Hive、Hbase、Flume、Kafka、Spark等等。
  • 只给你一天时间,完成以上工作?
  • 新版本的Hadoop,与Hive、Hbase、Flume、Kafka、Spark等等兼容?
大数据集群管理方式分为手工方式(Apache hadoop)和工具方式(Ambari + hdp 和Cloudera Manger + CDH)

Ambari

Ambari是Apache Software Foundation中的一个顶级项目,它可以创建、管理、监视Hadoop整个生态圈(例如Hive,Hbase,Sqoop,Zookeeper等)的集群,使得Hadoop以及相关的大数据软件更容易使用。
Ambari 就是为了让 Hadoop 以及相关的大数据软件更容易使用的一个工具。
Ambari 现在所支持的平台组件也越来越多,例如流行的 Spark,Storm 等计算框架,以及资源调度平台 YARN 等,我们都能轻松地通过 Ambari 来进行部署。

CDH

Cloudera Manager是cloudera公司的一个产品,着重于帮助大家管理自己的CDH集群,通过Cloudera
 
 

Hue

通过使用 Hue,可以在浏览器端的 Web 控制台上与 Hadoop 集群进行交互,来分析处理数据,例如操作 HDFS 上的数据,运行 MapReduce Job,执行 Hive 的 SQL 语句,浏览 HBase 数据库等等。