<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          從零開(kāi)始搭建公司數(shù)據(jù)處理平臺(tái)架構(gòu)技術(shù)棧,這套架構(gòu)絕了!

          共 5067字,需瀏覽 11分鐘

           ·

          2022-03-15 18:18


          作者:georgeguo

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

          技術(shù)棧全貌

          大數(shù)據(jù)平臺(tái)技術(shù)棧


          下面自底向上介紹各個(gè)層的主要項(xiàng)目。

          1 采集層和傳輸層


          采集層


          • Sqoop

          在hadoop和關(guān)系型數(shù)據(jù)庫(kù)之間轉(zhuǎn)換數(shù)據(jù)。

          • Flume

          Flume是一個(gè)分布式的高可用的數(shù)據(jù)收集、聚集和移動(dòng)的工具。通常用于從其他系統(tǒng)搜集數(shù)據(jù),如web服務(wù)器產(chǎn)生的日志,通過(guò)Flume將日志寫入到Hadoop的HDFS中。


          Flume


          • Canal

          數(shù)據(jù)抽取是 ETL 流程的第一步。我們會(huì)將數(shù)據(jù)從 RDBMS 或日志服務(wù)器等外部系統(tǒng)抽取至數(shù)據(jù)倉(cāng)庫(kù),進(jìn)行清洗、轉(zhuǎn)換、聚合等操作。在現(xiàn)代網(wǎng)站技術(shù)棧中,MySQL 是最常見(jiàn)的數(shù)據(jù)庫(kù)管理系統(tǒng),我們會(huì)從多個(gè)不同的 MySQL 實(shí)例中抽取數(shù)據(jù),存入一個(gè)中心節(jié)點(diǎn),或直接進(jìn)入 Hive。市面上已有多種成熟的、基于 SQL 查詢的抽取軟件,如著名的開(kāi)源項(xiàng)目 Apache Sqoop,然而這些工具并不支持實(shí)時(shí)的數(shù)據(jù)抽取。MySQL Binlog 則是一種實(shí)時(shí)的數(shù)據(jù)流,用于主從節(jié)點(diǎn)之間的數(shù)據(jù)復(fù)制,我們可以利用它來(lái)進(jìn)行數(shù)據(jù)抽取。借助阿里巴巴開(kāi)源的 Canal 項(xiàng)目,我們能夠非常便捷地將 MySQL 中的數(shù)據(jù)抽取到任意目標(biāo)存儲(chǔ)中。


          Canal


          • Logstash

          Logstash 是開(kāi)源的服務(wù)器端數(shù)據(jù)處理管道,能夠同時(shí)從多個(gè)來(lái)源采集數(shù)據(jù),轉(zhuǎn)換數(shù)據(jù),然后將數(shù)據(jù)發(fā)送到您最喜歡的 “存儲(chǔ)庫(kù)” 中。

          • Kafka

          消息隊(duì)列,一個(gè)分布式流平臺(tái)。

          • RocketMQ

          阿里巴巴開(kāi)源的消息隊(duì)列。

          2 存儲(chǔ)層


          存儲(chǔ)層


          • HBase

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

          • Alluxio/Redis/Ignite

          Alluxio以內(nèi)存為中心分布式存儲(chǔ)系統(tǒng),從下圖可以看出, Alluxio主要有兩大功能,第一提供一個(gè)文件系統(tǒng)層的抽象,統(tǒng)一文件系統(tǒng)接口,橋接儲(chǔ)存系統(tǒng)和計(jì)算框架;第二通過(guò)內(nèi)存實(shí)現(xiàn)對(duì)遠(yuǎn)程數(shù)據(jù)的加速訪問(wèn)。詳情參考Alluxio document。


          Alluxio


          Redis是一個(gè)開(kāi)源的內(nèi)存鍵值數(shù)據(jù)庫(kù),相比于Memcache,支持豐富的數(shù)據(jù)結(jié)構(gòu)。

          Ignit是一個(gè)以內(nèi)存為中心的分布式數(shù)據(jù)庫(kù),緩存和處理平臺(tái),用于事務(wù),分析和流式工作負(fù)載,在PB級(jí)別的數(shù)據(jù)上提供接近內(nèi)存速度訪問(wèn)數(shù)據(jù)。

          從上述分析可知,Alluxio/Redis/Ignite主要都是通過(guò)內(nèi)存來(lái)實(shí)現(xiàn)加速。

          • TiDB

          TiDB是有PingCap開(kāi)源的分布式NewSQL關(guān)系型數(shù)據(jù)庫(kù)。NewSQL數(shù)據(jù)庫(kù)有兩個(gè)流派,分別是以Google為代表的Spanner/F1和以Amazon 為代表的Aurora(極光),目前國(guó)內(nèi)做NewSQL數(shù)據(jù)庫(kù)主要是參考Google的Spanner架構(gòu),Google Spanner也是未來(lái)NewSQL的發(fā)展趨勢(shì)。具體請(qǐng)查閱相關(guān)資料,或者訪問(wèn)Youtube,觀看黃旭東的分享。

          • HDFS

          Hadoop的分布式文件系統(tǒng)。

          • Ceph

          Linux中備受關(guān)注的開(kāi)源分布式存儲(chǔ)系統(tǒng),除了GlusterFS,當(dāng)屬Ceph。目前Ceph已經(jīng)成為RedHat旗下重要的分布式存儲(chǔ)產(chǎn)品,并繼續(xù)開(kāi)源。Ceph提供了塊儲(chǔ)存RDB、分布式文件儲(chǔ)存Ceph FS、以及分布式對(duì)象存儲(chǔ)Radosgw三大儲(chǔ)存功能,是目前為數(shù)不多的集各種存儲(chǔ)能力于一身的開(kāi)源存儲(chǔ)中間件。

          • Kudu

          Kudu是cloudera開(kāi)源的運(yùn)行在hadoop平臺(tái)上的列式存儲(chǔ)系統(tǒng),擁有Hadoop生態(tài)系統(tǒng)應(yīng)用的常見(jiàn)技術(shù)特性,運(yùn)行在一般的商用硬件上,支持水平擴(kuò)展,高可用,目前是Apache Hadoop生態(tài)圈的新成員之一(incubating)。

          Kudu的設(shè)計(jì)與眾不同,它定位于應(yīng)對(duì)快速變化數(shù)據(jù)的快速分析型數(shù)據(jù)倉(cāng)庫(kù),希望靠系統(tǒng)自身能力,支撐起同時(shí)需要高吞吐率的順序和隨機(jī)讀寫的應(yīng)用場(chǎng)景,提供一個(gè)介于HDFS和HBase的性能特點(diǎn)之間的一個(gè)系統(tǒng),在隨機(jī)讀寫和批量掃描之間找到一個(gè)平衡點(diǎn),并保障穩(wěn)定可預(yù)測(cè)的響應(yīng)延遲??膳cMapReduce, Spark和其它hadoop生態(tài)系統(tǒng)集成。

          3 計(jì)算層


          • Hive

          Facebook 開(kāi)源。Hive是一個(gè)構(gòu)建在Hadoop上的數(shù)據(jù)倉(cāng)庫(kù)框架。Hive的設(shè)計(jì)目標(biāo)是讓精通SQL技能但Java編程技能相對(duì)較弱的分析師能對(duì)存放在Hadoop上的大規(guī)數(shù)據(jù)執(zhí)行查詢。

          Hive的查詢語(yǔ)言HiveQL是基于SQL的。任何熟悉SQL的人都可以輕松使用HiveSQL寫查詢。和RDBMS相同,Hive要求所有數(shù)據(jù)必須存儲(chǔ)在表中,而表必須有模式(Schema),且模式由Hive進(jìn)行管理。

          類似Hive的同類產(chǎn)品:kylin druid SparkSQL Impala。

          KylinApache Kylin?是一個(gè)開(kāi)源的分布式分析引擎,提供Hadoop/Spark之上的SQL查詢接口及多維分析(OLAP)能力以支持超大規(guī)模數(shù)據(jù),最初由eBay Inc. 開(kāi)發(fā)并貢獻(xiàn)至開(kāi)源社區(qū)。它能在亞秒內(nèi)查詢巨大的Hive表。

          Druid 為監(jiān)控而生的數(shù)據(jù)庫(kù)連接池。

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

          Impala,Impala是Apache Hadoop的開(kāi)源,本地分析數(shù)據(jù)庫(kù)。它由Cloudera,MapR,Oracle和Amazon等供應(yīng)商提供。

          • Spark

          • Spark是一個(gè)分布式計(jì)算框架。

          • Storm

          • Storm是一個(gè)分布式的、高容錯(cuò)的實(shí)時(shí)計(jì)算系統(tǒng)。Storm對(duì)于實(shí)時(shí)計(jì)算的的意義相當(dāng)于Hadoop對(duì)于批處理的意義。Hadoop為我們提供了Map和Reduce原語(yǔ),使我們對(duì)數(shù)據(jù)進(jìn)行批處理變的非常的簡(jiǎn)單和優(yōu)美。同樣,Storm也對(duì)數(shù)據(jù)的實(shí)時(shí)計(jì)算提供了簡(jiǎn)單Spout和Bolt原語(yǔ)。

          • Storm適用的場(chǎng)景:①、流數(shù)據(jù)處理:Storm可以用來(lái)用來(lái)處理源源不斷的消息,并將處理之后的結(jié)果保存到持久化介質(zhì)中。②、分布式RPC:由于Storm的處理組件都是分布式的,而且處理延遲都極低,所以可以Storm可以做為一個(gè)通用的分布式RPC框架來(lái)使用。

          • 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.

          • 分布式資源調(diào)度

          • YARN, Apache YARN(Yet Another Resource Negotiator)是hadoop的集群資源管理系統(tǒng)。YARN在Hadoop2時(shí)被引入,最初是為了改善MapReduce的實(shí)現(xiàn),但它具有足夠的通用性,也支持其他的分布式計(jì)算模式。

          • Mesos

          • Mesos 最初由 UC Berkeley 的 AMP 實(shí)驗(yàn)室于 2009 年發(fā)起,遵循 Apache 協(xié)議,目前已經(jīng)成立了 Mesosphere 公司進(jìn)行運(yùn)營(yíng)。Mesos 可以將整個(gè)數(shù)據(jù)中心的資源(包括 CPU、內(nèi)存、存儲(chǔ)、網(wǎng)絡(luò)等)進(jìn)行抽象和調(diào)度,使得多個(gè)應(yīng)用同時(shí)運(yùn)行在集群中分享資源,并無(wú)需關(guān)心資源的物理分布情況。

          • 如果把數(shù)據(jù)中心中的集群資源看做一臺(tái)服務(wù)器,那么 Mesos 要做的事情,其實(shí)就是今天操作系統(tǒng)內(nèi)核的職責(zé):抽象資源 + 調(diào)度任務(wù)。Mesos 項(xiàng)目是 Mesosphere 公司 Datacenter Operating System (DCOS) 產(chǎn)品的核心部件。

          • Kubernetes

          • Kubernetes是Google 2014年推出的開(kāi)源容器集群管理系統(tǒng),基于Docker構(gòu)建一個(gè)容器調(diào)度服務(wù),為容器化的應(yīng)用提供資源調(diào)度、部署運(yùn)行、均衡容災(zāi)、服務(wù)注冊(cè)、擴(kuò)容縮容等功能。

          • Presto

          • Presto是FaceBook開(kāi)源的一個(gè)開(kāi)源項(xiàng)目。Presto被設(shè)計(jì)為數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)分析產(chǎn)品:數(shù)據(jù)分析、大規(guī)模數(shù)據(jù)聚集和生成報(bào)表。這些工作經(jīng)常通常被認(rèn)為是線上分析處理操作。

          • Presto通過(guò)使用分布式查詢,可以快速高效的完成海量數(shù)據(jù)的查詢。如果你需要處理TB或者PB級(jí)別的數(shù)據(jù),那么你可能更希望借助于Hadoop和HDFS來(lái)完成這些數(shù)據(jù)的處理。作為Hive和Pig(Hive和Pig都是通過(guò)MapReduce的管道流來(lái)完成HDFS數(shù)據(jù)的查詢)的替代者,Presto不僅可以訪問(wèn)HDFS,也可以操作不同的數(shù)據(jù)源,包括:RDBMS和其他的數(shù)據(jù)源(例如:Cassandra)。

          • 其他(區(qū)塊鏈框架)

          • Etherenum, 以太坊

          • HyperLedger,超級(jí)賬本

          4 工具層和服務(wù)層


          工具層和服務(wù)層



          • Zeppelin

          • Web-based notebook that enables data-driven,

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

          • Kylin

          • Apache Kylin?是一個(gè)開(kāi)源的分布式分析引擎,提供Hadoop/Spark之上的SQL查詢接口及多維分析(OLAP)能力以支持超大規(guī)模數(shù)據(jù),最初由eBay Inc. 開(kāi)發(fā)并貢獻(xiàn)至開(kāi)源社區(qū)。它能在亞秒內(nèi)查詢巨大的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權(quán)威指南》

          《架構(gòu)解密-從分布式到微服務(wù)》

          精彩推薦:

          Intellij IDEA 高效使用教程!
          Spring 這10個(gè)錯(cuò)誤,打死都不要犯!
          一圖勝千言,二十張圖總結(jié)Web 開(kāi)發(fā)
          一個(gè)注解提升Spring Boot項(xiàng)目中API接口并發(fā)能力,效果明顯!你知道?
          一口氣說(shuō)出 Redis 16 個(gè)常見(jiàn)使用場(chǎng)景,絕活啊!

          瀏覽 138
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产探花丝袜 | 国产精品嫩草影院久久久 | 免费一级A片120分钟 | www色色 | 欧美日韩国产在线 |