日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spark sql合并小文件_如何比较Hive,Spark,Impala和Presto?

發(fā)布時間:2023/12/19 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spark sql合并小文件_如何比较Hive,Spark,Impala和Presto? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Spark,Hive,Impala和Presto是基于SQL的引擎,Impala由Cloudera開發(fā)和交付。在選擇這些數據庫來管理數據庫時,許多Hadoop用戶會感到困惑。Presto是一個開放源代碼的分布式SQL查詢引擎,旨在運行甚至PB級的SQL查詢,它是由Facebook人設計的。

Spark SQL是一個分布式內存計算引擎,它的內存處理能力很高。Hive也由Apache作為查詢引擎引入,這使數據庫工程師的工作更加輕松,他們可以輕松地在結構化數據上編寫ETL作業(yè)。在發(fā)布Spark之前,Hive被認為是最快速的數據庫之一。

現在,Spark還支持Hive,也可以通過Spike對其進行訪問。就Impala而言,它也是一個基于Hadoop設計的SQL查詢引擎。Impala查詢不會轉換為mapreduce作業(yè),而是本地執(zhí)行。

這是對Hive,Spark,Impala和Presto的簡要介紹。在本文中,我們會講解這些SQL查詢引擎的功能描述,并根據它們的屬性介紹這些引擎之間的差異。

Hive,Spark,Impala和Presto之間的區(qū)別

讓我們看一下所有這些功能特性的描述:

什么是Hive?

用于查詢和管理大型數據集的Apache Hive數據倉庫軟件設施將分布式存儲用作其后端存儲系統(tǒng)。它建立在Apache之上。該工具是在Hadoop文件系統(tǒng)或HDFS的頂部開發(fā)的。Hadoop可簡化以下任務:

  • 臨時查詢
  • 數據封裝
  • 龐大的數據集和分析

Hive特征

  • 在Hive中,首先創(chuàng)建數據庫表,然后將數據加載到這些表中
  • Hive旨在管理和查詢存儲表中的結構化數據
  • Map Reduce沒有可用性和優(yōu)化功能,但是Hive具有這些功能。查詢優(yōu)化可以高效地執(zhí)行查詢
  • Hive的靈感語言降低了Map Reduce編程的復雜性,并重用了其他數據庫概念,例如行、列、模式等。
  • Hive使用目錄結構進行數據分區(qū)并提高性能。
  • Hive的大多數交互都是通過CLI或命令行界面進行的,并且HQL或Hive查詢語言用于查詢數據庫
  • Hive支持四種文件格式,即TEXTFILE,ORC,RCFILE和SEQUENCEFILE

Hive的三個核心部分

  • Hive客戶
  • Hive服務
  • Hive存儲和計算

通過不同的驅動程序,Hive與各種應用程序進行通信。與基于Java的應用程序一樣,它使用JDBC驅動程序,對于其他應用程序,它使用ODBC驅動程序。Hive客戶端和驅動程序然后再次與Hive服務和Hive服務器通信。Hive客戶端可以通過Hive服務解決其查詢。

CLI或命令行界面在這里就像Hive服務一樣,用于數據定義語言操作。來自不同應用程序的請求由驅動程序處理,并轉發(fā)到不同的Meta商店和現場系統(tǒng)進行進一步處理。

Hive服務(如作業(yè)客戶端,文件系統(tǒng)和元存儲)與Hive存儲進行通信,并用于執(zhí)行以下操作:

  • 在Hive中創(chuàng)建并存儲了表的元數據信息,也稱為“元存儲數據庫”
  • 數據和查詢結果加載到表中,這些表以后存儲在HDFS上的Hadoop集群中

配置單元在本地模式或地圖縮小模式下執(zhí)行。如果數據大小較小或處于偽模式下,則使用Hive的本地模式可以提高處理速度。而對于大量數據或用于多節(jié)點處理,則使用Hive的Map Reduce模式,以提供更好的性能。

什么是Impala?

Impala是一個大規(guī)模并行處理引擎,是一個開源引擎。它要求將數據庫存儲在運行Apache Hadoop的計算機群集中。這是一個SQL引擎,由Cloudera在2012年推出。

Hadoop程序員可以以出色的方式在Impala上運行其SQL查詢,它被認為是一種高效的引擎,因為它在處理之前不會移動或轉換數據,該引擎可以輕松實現。Impala的數據格式、元數據、文件安全性和資源管理與MapReduce相同。

它具有Hadoop的所有特質,還可以支持多用戶環(huán)境。以下列出了使Impala非常有用的兩個最有用的品質:

1)列存儲

2)樹結構

Impala的一些流行功能:

  • 支持Apache HBase存儲和HDFS或Hadoop分布式文件系統(tǒng)
  • 支持Kerberos身份驗證或Hadoop安全性
  • 它可以輕松讀取Apache Hive的元數據,SQL語法和ODBC驅動程序
  • 它可以識別Hadoop文件格式,RCFile,Parquet,LZO和SequenceFile
  • Apache Sentry基于角色的授權。

Impala在2年內崛起,已成為最重要的SQL引擎之一。現在,甚至Amazon Web Services和MapR都已列出了對Impala的支持。

什么是Spark?

Apache Spark是最受歡迎的QL引擎之一,它是通用數據處理引擎,在核心火花數據處理的頂部還有很多其他庫,例如圖形計算、機器學習和流處理,這些庫可以在應用程序中一起使用。Spark支持以下語言,例如Spark、Java和R應用程序開發(fā)。

Spark應用程序運行幾個獨立的進程,這些進程由驅動程序中的SparkSession對象協(xié)調,簇或資源管理器也將該任務分配給工作人員。任務將其工作單位應用于數據集、結果,創(chuàng)建了一個新的數據集分區(qū),最終結果可以存儲并保存在磁盤上,也可以發(fā)送回驅動程序。

Spark可以處理PB級的數據,并以分布式方式在成千上萬個群集中進行處理,這些群集分布在幾個物理和虛擬群集之間。Spark被用于多種應用,例如:

  • 流處理
  • 機器學習
  • 互動分析
  • 資料整合

由于其有益的功能(例如速度,簡單性和支持),Spark被許多用戶選擇。可以通過一組豐富的API來訪問Spark的功能,這些API專門用于快速,輕松地與數據進行交互。Apache Spark社區(qū)龐大且支持您快速,快速地獲得查詢的答案。

什么是Presto?

Presto是一個分布式的開源SQL查詢引擎,用于運行交互式分析查詢。它可以處理從GB到PB的任何大小的查詢。Presto是由Facebook人設計的。它旨在加速商業(yè)數據倉庫查詢處理。它可以擴大與Facebook相匹配的組織規(guī)模。

Presto在一組機器上運行。Presto設置包括多個工作人員和協(xié)調員。Presto查詢由其客戶提交給協(xié)調器。然后,Presto協(xié)調器分析查詢并創(chuàng)建其執(zhí)行計劃。稍后,處理過程將分配給工人。

在處理PB級或TB級數據時,用戶將不得不使用大量工具與HDFS和Hadoop進行交互。Presto可以幫助用戶通過Hive和Pig等MapReduce作業(yè)管道查詢數據庫。Presto可以幫助用戶處理不同類型的數據源,例如Cassandra和許多其他傳統(tǒng)數據源。

Presto的功能

  • 可以幫助從其駐留位置查詢數據,例如Hive,Cassandra,專有數據存儲或關系數據庫。
  • 可以合并來自多個數據源的單個查詢的數據
  • Presto的響應時間非常快,通過昂貴的商業(yè)解決方案,他們可以快速解決查詢
  • 它使用矢量化的柱狀處理
  • Presto具有流水線執(zhí)行
  • 其架構簡單而廣泛

Facebook每天都使用Presto在一天中運行PB級數據。這可能包括幾個內部數據存儲。它還支持為查詢提供數據的可插拔連接器。Presto支持以下連接器:

  • TPC-H
  • Cassandra
  • Hadoop /Hive

就Presto應用程序而言,它支持Facebook,Teradata和Airbnb等許多工業(yè)應用程序。Presto支持標準的ANSI SQL,這對于數據分析人員和開發(fā)人員而言非常容易。Presto是用Java開發(fā)和編寫的,但沒有與Java代碼相關的問題,例如:

內存分配和垃圾回收。Presto具有Hadoop友好的連接器體系結構。

推薦用法

就這些查詢引擎的用途而言,您可以考慮以下幾點:

對于任何類似BI的交互式工作負載,Impala可能是您的最佳選擇。由于Impala查詢的延遲最低,如果是為了減少查詢延遲,您可以果斷選擇Impala,尤其是對于并發(fā)執(zhí)行。

但對于低延遲和多用戶支持要求,Hive也是不錯的選擇。選擇Hive,僅出于您的ETL或批處理要求。但Hive不會減少太多查詢處理所需的時間,因此它可以成為BI的合適選擇。

Spark SQL,用戶可以有選擇地使用SQL構造為Spark管道編寫查詢。Spark SQL重用Hive元存儲和前端,與現有的Hive查詢,數據和UDF完全兼容。通過基于成本的查詢優(yōu)化器,代碼生成器和列式存儲Spark查詢的執(zhí)行速度得以提高。

Presto在BI類型查詢中處于領先地位,與主要用于性能豐富查詢的Spark不同,Presto對并發(fā)查詢工作負載的支持至關重要。因此從并發(fā)查詢執(zhí)行和增加的工作量的角度出發(fā),您可以使用它。

選擇合適的數據庫或SQL引擎完全取決于您的要求。在這里,我們列出了所有SQL引擎的一些常用和有益的功能。您可以選擇Presto或Spark或Hive或Impala。數據庫的選擇取決于技術規(guī)格和功能的可用性。

寫在最后

如果你不確定數據庫或SQL查詢引擎的選擇,那只需進行詳細比較它們特定的屬性和登記功能,你就能更輕松地選擇合適的數據庫或SQL引擎了。

青牛:Hadoop與 Spark —選擇正確的大數據框架

總結

以上是生活随笔為你收集整理的spark sql合并小文件_如何比较Hive,Spark,Impala和Presto?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。