2017-08-09 60 views
0

我在Hive方面經驗並不多,目前我正在用Scala學習Spark。我很想知道在Tez上Hive是否比SparkSQL更快。我搜索與測試結果很多論壇,但他們比較了星火的老版本,其中大部分是下面Tez的ORC性能是否比Spark SQL for ETL更好?

  • ORC會做同樣的拼花在星火
  • TEZ引擎會給寫在2015年彙總要點像火花引擎
  • 加入更好的性能,更好的/在蜂巢的速度比星火

我覺得Hortonworks支持比Spark和Cloudera的反之亦然更多的蜂房。

樣品鏈接:

link1

link2

link3

起初我以爲星火將快於,因爲它們在內存中執行的任何事情。閱讀一些文章之後我就有點不知怎的,現有的蜂巢也越來越即興與像TEZ,ORC,LLAP等新概念

目前使用PL/SQL運行Oracle和遷移到大數據,因爲體積越來越增加。我的要求是一種ETL批處理,幷包含每週批次處理中涉及的數據詳細信息。數據將很快增加。

  • 輸入/查找數據是CSV /文本格式,並更新到表

    ,其具有500萬行和30列

  • 兩個輸入表查找用於產生的每列的表輸出表,其中包含約1000萬行和220列。

  • 多個連接涉及像內部和左外部,因爲許多查找使用的表。

請注意下面哪一種方法,我應該選擇以獲得更好的性能和易讀性,並且易於在列中包含次要更新以供將來的生產部署使用。

方法1:

  • 蜂房上TEZ與ORC表
  • 的Python UDF通TRANSFORM選項
  • 與性能調節等地圖加入加入

方法2:

  • SparkSQL與平面格式從文本轉換/ CSV
  • 斯卡拉UDF
  • 希望我們能夠執行多種內,左外連接在星火
+0

很容易得出錯誤的結論。 1. Hive和tez有很多影響性能的配置。 2.良好的SQL比工具,文件格式和執行引擎更重要。 – leftjoin

回答

0

最好的方式來實施解決您問題如下。

要將數據加載到表格中,spark對我來說看起來不錯。您可以讀取配置單元Metastore中的表格,並使用某種窗口函數執行增量更新並將其註冊到配置單元中。當從各種查找表填充數據時,您可以使用scala編程編寫代碼。

但在一天結束時,需要有一個非常容易使用的查詢引擎。由於您的火花程序在配置單元中註冊表,您可以使用配置單元。

蜂巢支持三個執行引擎

  • 星火
  • TEZ
  • 的MapReduce

TEZ是成熟的,火花與Facebook和社會各提交發展。

業務可以很容易地理解配置單元作爲查詢引擎,因爲它在業界更成熟。

總之,使用spark來處理日常處理數據並將它們註冊到配置單元。

在配置單元中創建業務用戶。