1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

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

        共 5067字,需瀏覽 11分鐘

         ·

        2022-03-15 18:18


        作者:georgeguo

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

        技術(shù)棧全貌

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


        下面自底向上介紹各個層的主要項目。

        1 采集層和傳輸層


        采集層


        • Sqoop

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

        • Flume

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


        Flume


        • Canal

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


        Canal


        • Logstash

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

        • Kafka

        消息隊列,一個分布式流平臺。

        • RocketMQ

        阿里巴巴開源的消息隊列。

        2 存儲層


        存儲層


        • HBase

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

        • Alluxio/Redis/Ignite

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


        Alluxio


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

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

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

        • TiDB

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

        • HDFS

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

        • Ceph

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

        • Kudu

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

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

        3 計算層


        • Hive

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

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

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

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

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

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

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

        • Spark

        • Spark是一個分布式計算框架。

        • Storm

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

        • Storm適用的場景:①、流數(shù)據(jù)處理:Storm可以用來用來處理源源不斷的消息,并將處理之后的結(jié)果保存到持久化介質(zhì)中。②、分布式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.

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

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

        • Mesos

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

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

        • Kubernetes

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

        • Presto

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

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

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

        • Etherenum, 以太坊

        • HyperLedger,超級賬本

        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?是一個開源的分布式分析引擎,提供Hadoop/Spark之上的SQL查詢接口及多維分析(OLAP)能力以支持超大規(guī)模數(shù)據(jù),最初由eBay Inc. 開發(fā)并貢獻至開源社區(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個錯誤,打死都不要犯!
        一圖勝千言,二十張圖總結(jié)Web 開發(fā)
        一個注解提升Spring Boot項目中API接口并發(fā)能力,效果明顯!你知道?
        一口氣說出 Redis 16 個常見使用場景,絕活?。?/span>

        瀏覽 138
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            天天干夜夜操 | 美国女人与猪dna的dna相似度 | 91丨豆花丨国产熟女 熟女 | 国产超碰| 黄网在线看 | 好爽好紧宝贝别夹h演戏小说 | 奶罩伸进揉捏高中h双性h | 亚洲三级在线看 | 一边喂奶一边挨cao在线观看 | 精东影业秘 国产传媒 |