最全大数据图谱,拿走不谢_公众号:肉眼品世界的博客-程序员宝宝

技术标签: 编程语言  hadoop  数据库  分布式  大数据  

作者:georgeguo

https://www.jianshu.com/p/c688e47dae1d

技术栈全貌

大数据平台技术栈

下面自底向上介绍各个层的主要项目。

1 采集层和传输层

采集层

  • Sqoop

在hadoop和关系型数据库之间转换数据。

  • Flume

Flume是一个分布式的高可用的数据收集、聚集和移动的工具。通常用于从其他系统搜集数据,如web服务器产生的日志,通过Flume将日志写入到Hadoop的HDFS中。

Flume

  • Canal

数据抽取是 ETL 流程的第一步。我们会将数据从 RDBMS 或日志服务器等外部系统抽取至数据仓库,进行清洗、转换、聚合等操作。在现代网站技术栈中,MySQL 是最常见的数据库管理系统,我们会从多个不同的 MySQL 实例中抽取数据,存入一个中心节点,或直接进入 Hive。市面上已有多种成熟的、基于 SQL 查询的抽取软件,如著名的开源项目 Apache Sqoop,然而这些工具并不支持实时的数据抽取。MySQL Binlog 则是一种实时的数据流,用于主从节点之间的数据复制,我们可以利用它来进行数据抽取。借助阿里巴巴开源的 Canal 项目,我们能够非常便捷地将 MySQL 中的数据抽取到任意目标存储中。

Canal

  • Logstash

Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的 “存储库” 中。

  • Kafka

消息队列,一个分布式流平台。

  • RocketMQ

阿里巴巴开源的消息队列。

2 存储层

存储层

  • HBase

HBase is the Hadoop database, a distributed, scalable, big data store.

  • Alluxio/Redis/Ignite

Alluxio以内存为中心分布式存储系统,从下图可以看出, Alluxio主要有两大功能,第一提供一个文件系统层的抽象,统一文件系统接口,桥接储存系统和计算框架;第二通过内存实现对远程数据的加速访问。详情参考Alluxio document。

Alluxio

Redis是一个开源的内存键值数据库,相比于Memcache,支持丰富的数据结构。

Ignit是一个以内存为中心的分布式数据库,缓存和处理平台,用于事务,分析和流式工作负载,在PB级别的数据上提供接近内存速度访问数据。

从上述分析可知,Alluxio/Redis/Ignite主要都是通过内存来实现加速。

  • TiDB

TiDB是有PingCap开源的分布式NewSQL关系型数据库。NewSQL数据库有两个流派,分别是以Google为代表的Spanner/F1和以Amazon 为代表的Aurora(极光),目前国内做NewSQL数据库主要是参考Google的Spanner架构,Google Spanner也是未来NewSQL的发展趋势。具体请查阅相关资料,或者访问Youtube,观看黄旭东的分享。

  • HDFS

Hadoop的分布式文件系统。

  • Ceph

Linux中备受关注的开源分布式存储系统,除了GlusterFS,当属Ceph。目前Ceph已经成为RedHat旗下重要的分布式存储产品,并继续开源。Ceph提供了块储存RDB、分布式文件储存Ceph FS、以及分布式对象存储Radosgw三大储存功能,是目前为数不多的集各种存储能力于一身的开源存储中间件。

  • Kudu

Kudu是cloudera开源的运行在hadoop平台上的列式存储系统,拥有Hadoop生态系统应用的常见技术特性,运行在一般的商用硬件上,支持水平扩展,高可用,目前是Apache Hadoop生态圈的新成员之一(incubating)。

Kudu的设计与众不同,它定位于应对快速变化数据的快速分析型数据仓库,希望靠系统自身能力,支撑起同时需要高吞吐率的顺序和随机读写的应用场景,提供一个介于HDFS和HBase的性能特点之间的一个系统,在随机读写和批量扫描之间找到一个平衡点,并保障稳定可预测的响应延迟。可与MapReduce, Spark和其它hadoop生态系统集成。

3 计算层

  • Hive

Facebook 开源。Hive是一个构建在Hadoop上的数据仓库框架。Hive的设计目标是让精通SQL技能但Java编程技能相对较弱的分析师能对存放在Hadoop上的大规数据执行查询。

Hive的查询语言HiveQL是基于SQL的。任何熟悉SQL的人都可以轻松使用HiveSQL写查询。和RDBMS相同,Hive要求所有数据必须存储在表中,而表必须有模式(Schema),且模式由Hive进行管理。

类似Hive的同类产品:kylin druid SparkSQL Impala。

KylinApache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。

Druid 为监控而生的数据库连接池。

SparkSQL,Spark SQL is Apache Spark's module for working with structured data.

Impala,Impala是Apache Hadoop的开源,本地分析数据库。它由Cloudera,MapR,Oracle和Amazon等供应商提供。

  • Spark

  • Spark是一个分布式计算框架。

  • Storm

  • Storm是一个分布式的、高容错的实时计算系统。Storm对于实时计算的的意义相当于Hadoop对于批处理的意义。Hadoop为我们提供了Map和Reduce原语,使我们对数据进行批处理变的非常的简单和优美。同样,Storm也对数据的实时计算提供了简单Spout和Bolt原语。

  • Storm适用的场景:①、流数据处理:Storm可以用来用来处理源源不断的消息,并将处理之后的结果保存到持久化介质中。②、分布式RPC:由于Storm的处理组件都是分布式的,而且处理延迟都极低,所以可以Storm可以做为一个通用的分布式RPC框架来使用。

  • Flink

Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams. Flink has been designed to run in all common cluster environments, perform computations at in-memory speed and at any scale.

  • TensorFlow

TensorFlow is an open source software library for high performance numerical computation. Its flexible architecture allows easy deployment of computation across a variety of platforms (CPUs, GPUs, TPUs), and from desktops to clusters of servers to mobile and edge devices. Originally developed by researchers and engineers from the Google Brain team within Google’s AI organization, it comes with strong support for machine learning and deep learning and the flexible numerical computation core is used across many other scientific domains.

  • 分布式资源调度

  • YARN, Apache YARN(Yet Another Resource Negotiator)是hadoop的集群资源管理系统。YARN在Hadoop2时被引入,最初是为了改善MapReduce的实现,但它具有足够的通用性,也支持其他的分布式计算模式。

  • Mesos

  • Mesos 最初由 UC Berkeley 的 AMP 实验室于 2009 年发起,遵循 Apache 协议,目前已经成立了 Mesosphere 公司进行运营。Mesos 可以将整个数据中心的资源(包括 CPU、内存、存储、网络等)进行抽象和调度,使得多个应用同时运行在集群中分享资源,并无需关心资源的物理分布情况。

  • 如果把数据中心中的集群资源看做一台服务器,那么 Mesos 要做的事情,其实就是今天操作系统内核的职责:抽象资源 + 调度任务。Mesos 项目是 Mesosphere 公司 Datacenter Operating System (DCOS) 产品的核心部件。

  • Kubernetes

  • Kubernetes是Google 2014年推出的开源容器集群管理系统,基于Docker构建一个容器调度服务,为容器化的应用提供资源调度、部署运行、均衡容灾、服务注册、扩容缩容等功能。

  • Presto

  • Presto是FaceBook开源的一个开源项目。Presto被设计为数据仓库和数据分析产品:数据分析、大规模数据聚集和生成报表。这些工作经常通常被认为是线上分析处理操作。

  • Presto通过使用分布式查询,可以快速高效的完成海量数据的查询。如果你需要处理TB或者PB级别的数据,那么你可能更希望借助于Hadoop和HDFS来完成这些数据的处理。作为Hive和Pig(Hive和Pig都是通过MapReduce的管道流来完成HDFS数据的查询)的替代者,Presto不仅可以访问HDFS,也可以操作不同的数据源,包括:RDBMS和其他的数据源(例如:Cassandra)。

  • 其他(区块链框架)

  • Etherenum, 以太坊

  • HyperLedger,超级账本

4 工具层和服务层

工具层和服务层

  • Zeppelin

  • Web-based notebook that enables data-driven,

  • interactive data analytics and collaborative documents with SQL, Scala and more.

  • Kylin

  • Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。

kylin

  • Jupyter

The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and much more.

参考:

《Hadoop权威指南》

《架构解密-从分布式到微服务》

相关阅读:

300页!阿里《大数据工程师 必读手册》限时免费下载

阿里云数仓总架构师:企业大数据平台仓库架构建设思路

主流大数据技术总结

阿里云数仓总架构师:企业大数据平台仓库架构建设思路

美国大数据下的中国女人,结果令人吃惊!

阿里巴巴高级技术专家章剑锋:大数据发展的 8 个要点

决战618丨京东推荐系统架构揭秘:大数据时代下的智能化改造

腾讯数据总监教学:仅用 5 步,即可从 0-1 构建大数据知识体系!

如何用大数据构建精准用户画像?

【中台实践】滴滴大数据研发中台的最佳实践.pdf(附下载链接)

【中台实践】华为大数据中台架构分享.pdf

大数据: 知乎1.3万亿条数据如何做到毫秒级响应

终于有人把云计算、大数据和人工智能讲明白了!

知名大厂如何搭建大数据平台&架构

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45727359/article/details/108396171

智能推荐

js的数组和对象的多种"复制"和"清空", 以及区分JS数组和对象的方法_weixin_34342207的博客-程序员宝宝

js的数组和对象的多种"复制"和"清空", 以及区分JS数组和对象的方法一.数组清空与复制方法1.数组清空的方法var a = [1,2,3]; a.length = 0; //方法1 a.splice(0, a.length); //方法22.数组复制方法var a = [1,2,3];a....

数据库物理调优之代价估算_Azrael、的博客-程序员宝宝_数据库代价估算

代价模型:        查询代价估算基于CPU代价和IO代价,所以代价估算模型用以下计算公式表示:            总代价=IO代价 + CPU代价            COST = P*a_page_cpu_time + W*T       公式参数说明:            P:计划运行时访问的页面数。            a_page_cpu_time:每个页面读取的时间花费 ...

Spring Boot 配置CROS Filter_在奋斗的大道的博客-程序员宝宝_cros filter

一、什么是CORS?CORS是一个W3C标准,全称是”跨域资源共享”(Cross-origin resource sharing),允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。它通过服务器增加一个特殊的Header[Access-Control-Allow-Origin]来告诉客户端跨域的限制,如果浏览器支持CORS、并且判断Origin通过的话,就会允许XMLHttpRequest发起跨域请求。CORS HeaderAcce..

Bullet有关六自由度弹性约束研究_彩阳的博客-程序员宝宝

这段时间打算将物理引擎整合进来,于是对Bullet这款开源的物理引擎进行了一些研究。Bullet的研究也有了一段时间了,Bullet这个引擎其实很久之前就接触了,只是一直以来,只是跑跑它的例子,也没有研究例子以及源代码,想要整合进入渲染引擎中也就井中月水中花了。今年3月,我曾经制作了一个整合Bullet最简单的一个例子。即模拟物体坠落的,并且写了博客《Qt Quick + OpenGL + Bullet初次测试》。这个例子开了一个好头。这段时间开始研究Bullet的一些其它有趣儿的特性了。

论文笔记之---Faster R-CNN Features for Instance Search_He_is_all的博客-程序员宝宝

Abstract来源于预先训练好的CNN的图像表示已经成为了CV领域一种新方法,比如实例检索。文中利用RPN网络学得的候选物体以及它们相关的CNN特征来建立了一种实例搜寻的渠道,它的第一部分是滤波阶段,紧接着是空间重排序;当对用来检索某人想要的同一物体的网络微调好时,我们便可以进一步研究Faster R-CNN特征的合适性。文中使用Oxford Buildings 5k,Paris Bui

PTA 7-27 家谱处理 (30分)_涵小呆的博客-程序员宝宝_7-27 家谱处理

人类学研究对于家族很感兴趣,于是研究人员搜集了一些家族的家谱进行研究。实验中,使用计算机处理家谱。为了实现这个目的,研究人员将家谱转换为文本文件。下面为家谱文本文件的实例:John Robert Frank Andrew Nancy David家谱文本文件中,每一行包含一个人的名字。第一行中的名字是这个家族最早的祖先。家谱仅包含最早祖先的后代,而他们的丈...

随便推点

图表点编辑数据无反应_word图表无法编辑数据 word图表不能编辑数据_weixin_39741101的博客-程序员宝宝

PPT/word中插入图表后,不能再启用编辑数据功能进入下载安装;PS.3322.cc/soft/201508211622,直至安装完成。4、安装完成后打开“开始”菜单中找到Microsoft Office 2016 Previe可能是程序问题吧。2;PS:两个文件夹都为必要文件,若是缺少一个文件夹会导致无法安装:请耐心等待.html" target="_blank">http://www....

【dubbo之.xml配置文件报错】Multiple annotations found at this line: - cvc-complex-type.2.4.c: The_韩师学子--小倪的博客-程序员宝宝

【dubbo之.xml配置文件报错】Multiple annotations found at this line: - cvc-complex-type.2.4.c: The下载地址:https://pan.baidu.com/s/16N0PDU0zcyFWlMa2PML1OA做法:https://blog.csdn.net/YFSREAD/article/details/80078763...

L - 杨辉三角_hhjian6666的博客-程序员宝宝

还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 Input 输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1Output 对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行

深度学习随手记_末流之人的博客-程序员宝宝_resnext152

Group Convolution最早来自于AlexNet,分组卷积是按卷积的通道进行分组,比如输入N通道,输出M通道,均分成K组,每组通道输入N/K,输出M/K,再将各组按照通道concatenate,例:参数量256x3x3x256 => 8x32x3x3x32 (N=M=32,K=8) 参数量降到1/8VGGnet 的 3x3 卷积小卷积有利于网络的加深!Inception 结...

矩阵计算_LG.田猿的博客-程序员宝宝_矩阵计算

【问题描述】矩阵是线性代数中的重要概念,应用领域非常广泛,在C/C++中,通常将矩阵定义为一个二维数组。本问题中,将输入两个矩阵 A 和 B,实现对矩阵的数乘、矩阵加法、矩阵乘法以及行列式的计算。如果对矩阵的算法不了解,请查阅相关资料。【输入形式】输入的第一行为两个正整数 M 和 N,分别表示矩阵 A 的行数和列数;接下来的 M 行,每行 N 个用空格分隔的整数,表示矩阵 A 的元素值...

centos7安装jdk11_一直走下去-明的博客-程序员宝宝

原文:https://blog.csdn.net/u014259503/article/details/866637861、jdk11说明jdk11与之前版本不同,安装好的文件夹里没有jre文件,环境变量配置更简单了;2、Linux(Centos7)配置JDK112.1、首先下载,不多说https://www.oracle.com/technetwork/java/javas...

推荐文章

热门文章

相关标签