大数据生态圈常用组件(二):概括介绍、功能特性、适用场景
生活随笔
收集整理的這篇文章主要介紹了
大数据生态圈常用组件(二):概括介绍、功能特性、适用场景
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? 三更燈火五更雞,正是男兒讀書時。
?
小編整理了一些常用的大數據組件,使用場景及功能特性,希望對后浪有所幫助。
| 分類 | 名稱 | 簡介 | 功能特點 | 使用場景 |
| 大數據存儲 | HDFS | HDFS是一個分布式的文件系統,它具有高度的容錯,高吞吐量,彈性伸縮等優點。是高度容錯性和高吞吐量的海量數據存儲解決方案。 | 高容錯性 HDFS通過多方面保證數據的可靠性,多個副本并且分布到物理位置的不同服務器上,數據校驗功能、后臺的連續自檢數據一致性功能保證了高容錯。 高吞吐量 HDFS的通過機架感知、多副本可就近讀取數據。另外HDFS可以并行從服務器集群中讀寫,增加文件讀寫的訪問帶寬。保證高吞吐。 線性擴展 HDFS可以在線動態擴容,PB到EB級集群任意擴展。 | 數據存儲分析 HDFS有完善的生態,可快速的導入數據到HDFS存儲起來,在HDFS的基礎上進行分析處理。 歷史數據備份 HDFS可輕松擴展到PB、EB級別的大容量,高吞吐量,容錯性保證數據安全。 |
| 大數據存儲 | Hbase | HBase 是一個高可靠、高性能、面向列的開源非關系型分布式數據庫, 它是Hadoop的生態系統, 提供對數據的隨機實時讀/寫訪問。 | 易用性 HBase 采用 JAVA 語言編寫, 并提供了易于使用的 JAVA API 供客戶端訪問, 基本能滿足開發者的需求。 強一致性 不論是從客戶端還是服務端的視角, HBase 都可以確保并發讀寫情況下的強一致性, WAL機制為此提供了可靠的保證。 可擴展性強 HBase 作為一款分布式數據庫, 具有良好的可擴展性, 擴展方便, 可通過集群擴展不斷增強集群的存儲能力和請求處理能力。 | 要求寫操作吞吐量高 HBase 單臺 Regionserver 的寫 QPS 可以穩定在 2K~3K , 并且可以通過集群擴展不斷增強集群的擴展性, 理論上不存在上限。 海量數據持久化 HBase 是分布式數據庫, 可以真正存儲海量的數據, 真正解決傳統關系型數據庫的痛點。 大規模數據集中進行隨機訪問 HBase 是列式存儲, 可以保證在大規模數據集情況下依然具有很好的隨機訪問性能。 無需全部的關系型數據庫特性 HBase 不適用于具有join, 多級索引, 表關系復雜的數據模型場景中。 |
| 大數據存儲 | KAFKA | KAFKA是一個分布式的流式平臺。 | 彈性擴展 當服務器資源達到限制時候,Kafka 支持在不停服情況下彈性擴容/縮容節點。 大吞吐量 Kafka 支持以增加 partition 個數的方式,來增加整個 topic 的吞吐量。 | 消息隊列 通過 Kafka 作為消息隊列,解耦了收消息和發消息的服務,收發過程在毫秒級完成。 海量日志 記錄各類訪問日志,后端通過順序讀寫等技術,增加吞吐量。 |
| 大數據存儲 | Hive | hive是基于Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為數據庫表,并提供HiveSql查詢功能。 | 面向超大規模數據集 基于Hadoop生態,Hive具有存儲和計算的擴展能力,可支持高可達千億級的數據集查詢。。 支持多種數據格式 Hive支持多種格式數據,如純文本、RCFile、Parquet、ORC等格式,以及HBase中的數據、ES中的數據等。Hive表一般使用ORC和Parquet格式,二者都是列式存儲,壓縮率很低,查詢效率較高。 易于上手 Hive采用HiveSql的查詢方式,將HiveSql查詢轉換為job在Hadoop集群上執行,使用非常方便。 內置大量UDF Hive內置了大量用戶函數UDF來操作時間、字符串和其他的數據挖掘工具。UDF種類非常豐富。 | 大數據集的批處理作業 如網絡日志分析,統計網站某一時間段內的pv、uv,多維度的數據分析。 |
| ? | ? | ? | ? | ? |
| OALP | Presto | Presto是一種分布式SQL查詢引擎,用于查詢分布在一個或多個異構數據源上的大型數據集。 | 不是數據庫 Presto不是傳統意義上的數據庫,也不是MySQL、PostgreSQL或者Oracle的代替品.它并不存儲數據,是一款OLAP分析工具. 多數據源 Presto不僅可以訪問HDFS,也可以操作不同的數據源,包括:RDBMS和其他的數據源(例如:Hive、Cassandra)等.一條Presto查詢可以將多個數據源的數據進行合并,可以跨越整個組織進行分析. 海量數據 擅長對海量數據(TB或者PB級別)進行復雜的計算分析. 支持SQL Presto 已經可以完全支持 ANSI SQL,并提供了一個 SQL Shell 給用戶,用戶可以直接使用ANSI SQL 進行數據查詢和計算. 速度快 低延遲高并發的全內存流水線式計算,比Hive快一個數量級. | 準實時計算 基準數據若實時更新,Presto可快速完成計算,實現準實時計算的場景. 交互式查詢 以SQL語言作為接口的分布式實時查詢引擎,可以對PB級的數據進行快速的交互式查詢. |
| OALP | ClickHouse | ClickHouse是一個用于快速OLAP分析的列式數據庫管理系統 | 快速的明細數據查詢 數據按列存儲,查詢時,將列向量化處并行處理,高效利用cpu,來使用當前服務器上可用的所有資源,充分壓榨機器性能,達到億級數據查詢毫秒級返回 多服務器分布式處理 數據可以保存在不同的shard上,每一個shard都由一組用于容錯的replica組成,查詢可以并行的在所有shard上進行處理。這些對用戶來說是透明的。 | 高實時性要求 ClickHouse支持在表中定義主鍵。為了使查詢能夠快速在主鍵中進行范圍查找,數據總是以增量的方式有序的存儲在MergeTree中。因此,數據可以持續不斷高效的寫入到表中,并且寫入的過程中不會存在任何加鎖的行為,可達到每秒寫入數十萬的寫入性能 大規模事件和日志快速分析 clickhouse支持萬億級數據的數據分析需求,達到每秒處理幾億行的吞吐能力,快速返回查詢結果 漏斗分析 clickhouse提供了專用漏斗函數windowFunnel(window)(timestamp, cond1, cond2, cond3, ...),可快速進行漏斗型數據分析 適合在線查詢 在沒有對數據做任何預處理的情況下以極低的延遲處理查詢并將結果加載到用戶的頁面中。 |
| OALP | Kudu | Kudu 是一個列式存儲管理系統。支持水平可擴展,并具有高可用性特性。 | 快速的明細數據查詢 數據存儲在kudu,kudu與Impala緊密集成, impala將謂詞下推到kudu,盡可能的接近底層kudu的底層,提高整體查詢性能 高實時性要求 數據可直接低延遲的落入kudu中存儲,通過impala進行查詢,經內部測試,kudu實時寫入性能達到每秒幾萬條數據。同時數據寫入后首先存儲在內存,可立即提供查詢服務,實時性高。 數據頻繁更新 Kudu將底層數據分為base數據文件和delta數據文件,有更新的數據寫入delta文件,后期自動做數據的merge,所以支持數據的頻繁更新操作 | 實時更新的應用 Kudu 通過高效的列式掃描提供了快速插入和更新的強大組合,從而在單個存儲層上實現了實時分析用例,剛剛到達的數據就馬上能被被終端用戶使用訪問到 時間序列應用 kudu可以對某幾列數據進行hash分區,將數據均勻的打散在不同節點,對于訪問時序數據,不存在熱點數據問題,充分利用集群性能。 |
| OALP | Kylin | Kylin是一個開源的分布式分析引擎,通過預計算構建cube實現快速查詢分析。 | 交互式查詢能力 通過Kylin,用戶可以在kylin查詢頁面上與數據數據進行亞秒級交互,在同樣的數據集上提供比Hive更好的性能 kylin Cube多維數據的計算 Cube由多個Cuboid組合而成,Cuboid上的數據是原始數據聚合的數據,因此創建Cube可以看作是在原始數據導入時做的一個預計算預處理的過程。Kylin的強大之處在于充分利用了Hadoop的MapReduce并行處理的能力,高效處理導入的數據 | 查詢類型比較固定的數據分析 通過固定的查詢類型構建cube,將所有的維度組合事先計算,存儲于HBase中,以空間換時間,提供快速查詢 數據與HADOOP緊密結合 數據存于HDFS,利用Hive將HDFS數據以關系數據方式存取,通過構建cube存儲于Hbase |
| 平臺 | Redash | Redash是一款融合28種數據源的可視化查詢工具,同時可以制作報表,分享成果. | ad-hoc查詢 可接入Presto/Hive/Clickhouse等查詢工具,快速查詢數據,方便快捷. 報表分析 擁有數十種可視化圖表,支持制作Dashboard,可以管理分享報表. | SQL查詢分析 創建query,填寫正常的SQL邏輯,對于查詢結果進行排序過濾,做成圖表. |
| 平臺 | StreamHub | Stream Hub支持結構化日志,永久存儲和方便的離線分析等 | kafka-connect Kafka Connect是一種用于在Kafka和其他系統之間可擴展的、可靠的流式傳輸數據的工具。它使得能夠快速定義將大量數據集合移入和移出Kafka的連接器變得簡單。 Kafka Connect可以獲取整個數據庫或從所有應用程序服務器收集指標到Kafka主題,使數據可用于低延遲的流處理。導出作業可以將數據從Kafka topic傳輸到二次存儲和查詢系統,或者傳遞到批處理系統以進行離線分析。 avro-java-sdk java版 此avro-java-sdk主要為用戶向kafka集群發送avro序列化數據/從kafka集群消費avro序列化數據提供了統一的接口。 schema申請系統 schema申請系統旨在優化schema的申請流程,統一用戶接入,申請,審批,測試流程,并提供校驗,權限控制等功能,該系統旨在解決 1. 用戶上線流程復雜,查錯困難,無法自行校驗;2. 過分依賴管理員,管理員成為瓶頸;3. 流程漏洞較多,使用混亂; json hub 該中間件部署在大數據平臺上,對外提供http接口服務,接收client端的消息(post請求),將數據進行avro序列化后轉發到kafka。 | avro數據自動落入hive/hbase/es 用戶可以使用sdk將avro數據發送到kafka中,kafka-connect可以將數據自動落入hive/hbase/es中 自助式申請schema 當用戶需要申請schma時,只需要在schema申請平臺上發起申請,審核通過后即可注冊成功并生成相應jar包 |
| 平臺 | Compute Platform | Compute Platform是一個基于Hadoop的分布式全流程開發平臺,通過可視化交互式方式降低門檻、提升研發效率。 各業務可以通過平臺輕松實現通用ETL,可以組合使用平臺提供的算子深度定制。計算內核基于Spark、TensorFlow,缺省支持SparkMLlib、TensorFlow常用算法庫,供開發者選用。同時開發者可以貢獻自己的算子,分享給所有的開發者。 | 數據ETL 支持數據ETL處理;支持6+種數據源,覆蓋MySQL,Hive,HBase,Presto,HDFS等;支持7+種數據加載,轉換,提取等操作,覆蓋Map,Filter,SQL,Python,Join,Split等 可視化開發 支持在線可視化編輯和開發;支持在線拖拽執行拓撲;支持在線開發Python代碼;支持在線開發SQL腳本; 算子商店 缺省支持SparkMLlib、TensorFlow常用算法庫,開發者可以依據接口標準實現自己的算子貢獻給平臺,賦能技術團隊 | 大規模ETL 大規模ETL;業務需求;數據處理 在線可視化開發 在線可視化開發;在線開發Python代碼;在線開發SQL腳本 統計分析 適用于數據統計分析等業務場景,使用算子商店提供的能力快速完成開發 |
| 大數據計算 | Flink | Flink 是一個面向分布式數據流處理和批量數據處理的開源計算平臺,在流式處理方面具有高吞吐、低延遲、高性能的特點,支持Exactly-once語義、高度靈活的窗口操作、event time等等 | 快速 快,是Flink的主要特點。利用基于內存的數據流,并將迭代處理算法深度集成到系統的運行時中,這樣,Flink使得系統能夠以極快的速度處理數據密集型和迭代任務。 可靠 輕量級分布式快照(Snapshot)實現的容錯,在流處理失敗時,通過這些Snapshot可以恢復數據流處理,支持Exactly-once語義。 強大 靈活的窗口,豐富的表達能力,基于事件時間處理機制配合水位線功能可以有效地處理亂序流、解決消息延遲的問題。 易用 面向用戶提供了簡單的DataStream和table sql API,在無需進行任何配置的情況下,Flink就可以運行在Yarn上。 | 實時ETL 對事實表的每一條新增記錄進行轉化計算,同時join維度表來擴充記錄字段,將數據清洗的延遲控制在秒以內。 實時監控報警 對重要的事件做實時處理統計,動態獲取報警規則,針對報警事件進行自定義處理。 統計網站PV,UV 在大數據量下,傳統數據庫或者HADOOP(hbase...)的count效率都不高。使用flink對用戶訪問記錄增量做實時的窗口計算,提供更高的吞吐和更低的延時。 風控安全管理 使用CEP自定義匹配規則用來檢測無盡數據流中的復雜事件。例如在安全應用中偵測異常行為;在金融應用中查找價格、交易量和其他行為的模式。 |
| 大數據計算 | ?Spark | Apache Spark是專為大規模數據處理而設計的快速通用的計算引擎 | 快速 Apache Spark使用最先進的DAG調度程序,查詢優化器和物理執行引擎,實現批處理和流數據處理的高性能。與Hadoop的MapReduce相比,Spark基于內存的運算要快100倍以上,而基于磁盤的運算也要快10倍以上。 易用 Spark支持Java、Python和Scala的API,還支持超過80種高級算子,可以輕松構建并行應用程序。 通用 Spark提供了統一的解決方案。Spark可以用于批處理、交互式查詢(通用Spark SQL)、實時流處理(通過Spark Streaming)、機器學習(通過Spark MLlib)和圖計算(通過Spark GraphX)。這些不同類型的處理都可以在同一應用中無縫使用。 到處運行 Spark可以使用自帶的集群模式運行,也可以在EC2、在Hadoop Yarn上、Mesos上或Kubernetes上運行,同時可以訪問HDFS、Alluxio、Cassandra、HBase、Hive及其它上百種數據源中的數據。 | 批處理 Spark的核心提供了分布式任務調度和基本的I/O功能,提供了基本的程序抽象RDD(彈性分布式數據集)。RDD是一個可以并行操作并有容錯機制的數據集合,簡化了編程復雜性,操縱RDD的方法類似于操縱本地數據集合。另外Spark SQL提供了領域特定語言,可使用Scala、Java或Python來操縱DataFrame/DataSet。這些都可用于批處理。 交互式查詢或執行代碼 Spark Thriftserver支持使用使用命令行界面和ODBC/JDBC服務器執行SQL。而交互式的Python和Scala的Shell可以使用Spark集群來驗證解決問題的方法,而不是像以前一樣,需要打包、上傳集群、驗證等。 流式計算 Spark Streaming充分利用Spark核心的快速調度能力來運行流分析。它截取小批量的數據并對之運行RDD轉換。這種設計使流分析可在同一個引擎內使用同一組為批量分析編寫而撰寫的應用程序代碼。 機器學習 MLlib是Spark上分布式機器學習框架,可使用許多常見的機器學習和統計算法,簡化大規模機器學習時間 圖形處理 GraphX是Spark上的分布式圖形處理框架。它提供了一組API,可用于表達圖表計算并可以模擬Pregel抽象化。GraphX還對這種抽象化提供了優化運行 |
| 調度 | YARN | YARN(Yet Another Resource Negotiator)是Hadoop的集群資源管理系統。 | 資源管理 YARN 通過一個全局的資源管理器(Resource Manager)以及運行在集群中所有節點上的節點管理器(Node Manager)在各種競爭的應用程序之間仲裁可用的集群資源,創建資源容器。支持內存和CPU的管理與分配。 資源調度 YARN 調度器可以根據既定策略為應用程序分配資源。YARN 有三種調度器:FIFO調度器(FIFO Scheduler),容量調度器(Capacity Scheduler)和公平調度器(Fair Scheduler)。 任務調度與監控 YARN 通過一個稱為ApplicationMaster的輕量型進程實例來協調應用程序內的所有任務的執行。這包括監視任務,重新啟動失敗的任務,推測性地運行緩慢的任務,以及計算應用程序計數器值的總和。 | 運行各類分布式計算 MapReduce、Spark、Tez、Flink 等分布式計算程序均可以運行在YARN集群中,YARN會為它們提供統一的資源分配及調度。 |
| 調度 | Airflow | Airflow是一個分布式的調度引擎,功能類似 crontab + work flow | 多樣化調度 Airflow 可以根據配置的時間,補追歷史數據,也可定義未來執行的任務 復雜workflow Airflow 可以記錄每次執行的結果,實現case when | ETL 可以將ETL分解成多個單一功能的小task,在airflow中配置執行邏輯順序,增強可維護性 crontab crontab功能的增強版,方便管理,報警、日志更完善 |
| ETL | Maxwell | Maxwell是一個數據庫(MySQL)增量訂閱工具。可解析MySQL數據增量,以相應的格式發送到kafka,供用戶訂閱使用。 | 全方位的數據庫增量訂閱 Maxwell可監控整個MySQL的數據增量,將數據寫到kafka。 性能高效 Maxwell架構優雅、性能高效。一般情況下,從binlog產生到寫入kafka,平均延遲在0.1秒之內。當MySQL端有大量數據增量產生時,Maxwell寫入kafka的速率能達到7萬行/秒。 運行穩定 Maxwell巧妙的設計,可有效地避免數據丟失。 支持多種消息格式 原生的Maxwell僅支持Json消息格式。大數據團隊對Maxwell進行了定制化,使Maxwell支持canal格式和avro格式。avro格式的消息,可以直接接入kafka connect。 | 數據監控與分析 用戶可消費Maxwell發送到kafka的數據,監控相應數據庫的每一條數據變化,用于業務數據異常監控、業務數據分析等場景。 數據同步 Maxwell avro消息,可接入kafka connect,從而根據需求由kafka connect實時或近實時地同步其它數據庫(如Hive、ES、HBase、KUDU等)中。 |
?
點贊之后,上一篇傳送門: https://blog.csdn.net/weixin_39032019/article/details/89340739
大數據生態圈常用組件(一):數據庫、查詢引擎、ETL工具、調度工具等
總結
以上是生活随笔為你收集整理的大数据生态圈常用组件(二):概括介绍、功能特性、适用场景的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Smarty模板技术学习(二)
- 下一篇: javaweb实现验证码功能