『壹』 linuxspark數據超過內存大小
在執行task之前先進行repartition,有時候由於key的分布極不均勻,repartition解決不了數據傾斜問題,可以使用PartitionBy方法,自定義partition的分區方式。
數據之間的join往往很耗費資源,執行時間較長甚至引起任務失敗,一般來說應盡量避免,比如,如果其中一個rdd數據量比較小,可以先collect,然後廣播到各個excutor。
如果不能避免,在join之前,兩個RDD應該分別進行repartition操作,並且partition的數量與分區方法一致,這樣在join的時候就不會出現大量的數據shuffle。
『貳』 spark處理數據如何用伺服器內存
RDD通過persist方法或cache方法可以將前面的計算結果緩存,但是並不是這兩個方法被調用時立即緩存,而是觸發後面的action時,該RDD將會被緩存在計算節點的內存中,並供後面重用。通過查看源碼發現cache最終也是調用了persist方法,默認的存儲級別都是僅在內存存儲一份,Spark的存儲級別還有好多種,存儲級別在object StorageLevel中定義的。緩存有可能丟失,或者存儲存儲於內存的數據由於內存不足而被刪除,RDD的緩存容錯機制保證了即使緩存丟失也能保證計算的正確執行。通過基於RDD的一系列轉換,丟失的數據會被重算,由於RDD的各個Partition是相對獨立的,因此只需要計算丟失的部分即可,並不需要重算全部Partition。
拓展資料:Spark是一種安全的、經正式定義的編程語言,被設計用來支持一些安全或商業集成為關鍵因素的應用軟體的設計。其通過運行用戶定義的main函數,在集群上執行各種並發操作和計算Spark提供的最主要的抽象,Spark的正式和明確的定義使得多種靜態分析技術在Spark源代碼的應用中成為可能。
『叄』 Linux裡面spark作用是什麼
Spark是通用數據處理引擎,適用於多種情況。 應用程序開發人員和數據科學家將Spark集成到他們的應用程序中,以快速地大規模查詢,分析和轉換數據。 與Spark最頻繁相關的任務包括跨大型數據集的互動式查詢,來自感測器或金融系統的流數據處理以及機器學習任務。
Spark於2009年開始運作,最初是加州大學伯克利分校AMPLab內部的一個項目。 更具體地說,它是出於證明Mesos概念的需要而誕生的,Mesos概念也是在AMPLab中創建的。 在Mesos白皮書《 Mesos:數據中心中的細粒度資源共享平台》中首次討論了Spark,其中最著名的作者是Benjamin Hindman和Matei Zaharia。
2013年,Spark成為Apache Software Foundation的孵化項目,並於2014年初被提升為該基金會的頂級項目之一。 Spark是基金會管理的最活躍的項目之一,圍繞該項目成長的社區包括多產的個人貢獻者和資金雄厚的企業支持者,例如Databricks,IBM和中國的華為。
從一開始,Spark就被優化為在內存中運行。 它比Hadoop的MapRece等替代方法更快地處理數據,後者傾向於在處理的每個階段之間向計算機硬碟寫入數據或從計算機硬碟寫入數據。 Spark的支持者聲稱,Spark在內存中的運行速度可以比Hadoop MapRece快100倍,並且在以類似於Hadoop MapRece本身的方式處理基於磁碟的數據時也可以快10倍。 這種比較並不完全公平,這不僅是因為原始速度對Spark的典型用例而言比對批處理更為重要,在這種情況下,類似於MapRece的解決方案仍然很出色。
『肆』 hadoop和spark的區別
1、解決問題的層面不一樣
首先,Hadoop和Apache Spark兩者都是大數據框架,但是各自存在的目的不盡相同。Hadoop實質上更多是一個分布式數據基礎設施:它將巨大的數據集分派到一個由普通計算機組成的集群中的多個節點進行存儲,意味著您不需要購買和維護昂貴的伺服器硬體。
同時,Hadoop還會索引和跟蹤這些數據,讓大數據處理和分析效率達到前所未有的高度。Spark,則是那麼一個專門用來對那些分布式存儲的大數據進行處理的工具,它並不會進行分布式數據的存儲。
2、兩者可合可分
Hadoop除了提供為大家所共識的HDFS分布式數據存儲功能之外,還提供了叫做MapRece的數據處理功能。所以這里我們完全可以拋開Spark,使用Hadoop自身的MapRece來完成數據的處理。
相反,Spark也不是非要依附在Hadoop身上才能生存。但如上所述,畢竟它沒有提供文件管理系統,所以,它必須和其他的分布式文件系統進行集成才能運作。這里我們可以選擇Hadoop的HDFS,也可以選擇其他的基於雲的數據系統平台。但Spark默認來說還是被用在Hadoop上面的,畢竟,大家都認為它們的結合是最好的。
以下是從網上摘錄的對MapRece的最簡潔明了的解析:
我們要數圖書館中的所有書。你數1號書架,我數2號書架。這就是「Map」。我們人越多,數書就更快。
現在我們到一起,把所有人的統計數加在一起。這就是「Rece」。
3、Spark數據處理速度秒殺MapRece
Spark因為其處理數據的方式不一樣,會比MapRece快上很多。MapRece是分步對數據進行處理的: 」從集群中讀取數據,進行一次處理,將結果寫到集群,從集群中讀取更新後的數據,進行下一次的處理,將結果寫到集群,等等…「 Booz Allen Hamilton的數據科學家Kirk Borne如此解析。
反觀Spark,它會在內存中以接近「實時」的時間完成所有的數據分析:「從集群中讀取數據,完成所有必須的分析處理,將結果寫回集群,完成,」 Born說道。Spark的批處理速度比MapRece快近10倍,內存中的數據分析速度則快近100倍。
如果需要處理的數據和結果需求大部分情況下是靜態的,且你也有耐心等待批處理的完成的話,MapRece的處理方式也是完全可以接受的。
但如果你需要對流數據進行分析,比如那些來自於工廠的感測器收集回來的數據,又或者說你的應用是需要多重數據處理的,那麼你也許更應該使用Spark進行處理。
大部分機器學習演算法都是需要多重數據處理的。此外,通常會用到Spark的應用場景有以下方面:實時的市場活動,在線產品推薦,網路安全分析,機器日記監控等。
4、災難恢復
兩者的災難恢復方式迥異,但是都很不錯。因為Hadoop將每次處理後的數據都寫入到磁碟上,所以其天生就能很有彈性的對系統錯誤進行處理。
Spark的數據對象存儲在分布於數據集群中的叫做彈性分布式數據集(RDD: Resilient Distributed Dataset)中。這些數據對象既可以放在內存,也可以放在磁碟,所以RDD同樣也可以提供完成的災難恢復功能。
『伍』 最近想學習一下關於大數據spark方面的東西,在搭建整個spark環境時,對電腦的配置要求是什麼
如果只是學習基本概念和運算元,對配置要求不太高,搭一個偽分布式或者直接local模式就行;
如果真要拿來處理大量數據,內存小了是不行的,spark很吃內存的。
『陸』 如何用好spark
Spark是一種快速、通用、可擴展的大數據分析引擎,2009年誕生於加州大學伯克利分校AMPLab,2010年開源,2013年6月成為Apache孵化項目,2014年2月成為Apache頂級項目。目前,Spark生態系統已經發展成為一個包含多個子項目的集合,其中包含SparkSQL、Spark Streaming、GraphX、MLlib等子項目,Spark是基於內存計算的大數據並行計算框架。Spark基於內存計算,提高了在大數據環境下數據處理的實時性,同時保證了高容錯性和高可伸縮性,允許用戶將Spark部署在大量廉價硬體之上,形成集群。Spark得到了眾多大數據公司的支持,這些公司包括Hortonworks、IBM、Intel、Cloudera、MapR、Pivotal、網路、阿里、騰訊、京東、攜程、優酷土豆。當前網路的Spark已應用於鳳巢、大搜索、直達號、網路大數據等業務;阿里利用GraphX構建了大規模的圖計算和圖挖掘系統,實現了很多生產系統的推薦演算法;騰訊Spark集群達到8000台的規模,是當前已知的世界上最大的Spark集群。
與Hadoop的MapRece相比,Spark基於內存的運算要快100倍以上,基於硬碟的運算也要快10倍以上。Spark實現了高效的DAG執行引擎,可以通過基於內存來高效處理數據流。
Spark支持Java、Python和Scala的API,還支持超過80種高級演算法,使用戶可以快速構建不同的應用。而且Spark支持互動式的Python和Scala的shell,可以非常方便地在這些shell中使用Spark集群來驗證解決問題的方法。
Spark可以非常方便地與其他的開源產品進行融合。比如,Spark可以使用Hadoop的YARN和Apache Mesos作為它的資源管理和調度器,器,並且可以處理所有Hadoop支持的數據,包括HDFS、HBase和Cassandra等。這對於已經部署Hadoop集群的用戶特別重要,因為不需要做任何數據遷移就可以使用Spark的強大處理能力。Spark也可以不依賴於第三方的資源管理和調度器,它實現了Standalone作為其內置的資源管理和調度框架,這樣進一步降低了Spark的使用門檻,使得所有人都可以非常容易地部署和使用Spark。此外,Spark還提供了在EC2上部署Standalone的Spark集群的工具。
『柒』 spark實時處理
還想看啥你的回答就開始看斯巴達就打
『捌』 用linux操作spark要多少內存
我有64內存,spark設置了40G;這個是自己根據需求設定的;
spark-env.sh中的這三個參數都設置一下,是內存、cpu的關系
export SPARK_EXECUTOR_INSTANCES=1
export SPARK_EXECUTOR_MEMORY=40G
export SPARK_EXECUTOR_CORES=14
『玖』 spark和hadoop的區別
直接比較Hadoop和Spark有難度,因為它們處理的許多任務都一樣,但是在一些方面又並不相互重疊。
比如說,Spark沒有文件管理功能,因而必須依賴Hadoop分布式文件系統(HDFS)或另外某種解決方案。
Hadoop框架的主要模塊包括如下:
Hadoop Common
Hadoop分布式文件系統(HDFS)
Hadoop YARN
Hadoop MapRece
雖然上述四個模塊構成了Hadoop的核心,不過還有其他幾個模塊。這些模塊包括:Ambari、Avro、Cassandra、Hive、 Pig、Oozie、Flume和Sqoop,它們進一步增強和擴展了Hadoop的功能。
Spark確實速度很快(最多比Hadoop MapRece快100倍)。Spark還可以執行批量處理,然而它真正擅長的是處理流工作負載、互動式查詢和機器學習。
相比MapRece基於磁碟的批量處理引擎,Spark賴以成名之處是其數據實時處理功能。Spark與Hadoop及其模塊兼容。實際上,在Hadoop的項目頁面上,Spark就被列為是一個模塊。
Spark有自己的頁面,因為雖然它可以通過YARN(另一種資源協調者)在Hadoop集群中運行,但是它也有一種獨立模式。它可以作為 Hadoop模塊來運行,也可以作為獨立解決方案來運行。
MapRece和Spark的主要區別在於,MapRece使用持久存儲,而Spark使用彈性分布式數據集(RDDS)。
性能
Spark之所以如此快速,原因在於它在內存中處理一切數據。沒錯,它還可以使用磁碟來處理未全部裝入到內存中的數據。
Spark的內存處理為來自多個來源的數據提供了近乎實時分析的功能:營銷活動、機器學習、物聯網感測器、日誌監控、安全分析和社交媒體網站。另 外,MapRece使用批量處理,其實從來就不是為驚人的速度設計的。它的初衷是不斷收集來自網站的信息,不需要這些數據具有實時性或近乎實時性。
易用性
支持Scala(原生語言)、Java、Python和Spark SQL。Spark SQL非常類似於SQL 92,所以幾乎不需要經歷一番學習,馬上可以上手。
Spark還有一種交互模式,那樣開發人員和用戶都可以獲得查詢和其他操作的即時反饋。MapRece沒有交互模式,不過有了Hive和Pig等附加模塊,採用者使用MapRece來得容易一點。
成本
「Spark已證明在數據多達PB的情況下也輕松自如。它被用於在數量只有十分之一的機器上,對100TB數據進行排序的速度比Hadoop MapRece快3倍。」這一成績讓Spark成為2014年Daytona GraySort基準。
兼容性
MapRece和Spark相互兼容;MapRece通過JDBC和ODC兼容諸多數據源、文件格式和商業智能工具,Spark具有與MapRece同樣的兼容性。
數據處理
MapRece是一種批量處理引擎。MapRece以順序步驟來操作,先從集群讀取數據,然後對數據執行操作,將結果寫回到集群,從集群讀 取更新後的數據,執行下一個數據操作,將那些結果寫回到結果,依次類推。Spark執行類似的操作,不過是在內存中一步執行。它從集群讀取數據後,對數據 執行操作,然後寫回到集群。
Spark還包括自己的圖形計算庫GraphX。GraphX讓用戶可以查看與圖形和集合同樣的數據。用戶還可以使用彈性分布式數據集(RDD),改變和聯合圖形,容錯部分作了討論。
容錯
至於容錯,MapRece和Spark從兩個不同的方向來解決問題。MapRece使用TaskTracker節點,它為 JobTracker節點提供了心跳(heartbeat)。如果沒有心跳,那麼JobTracker節點重新調度所有將執行的操作和正在進行的操作,交 給另一個TaskTracker節點。這種方法在提供容錯性方面很有效,可是會大大延長某些操作(即便只有一個故障)的完成時間。
Spark使用彈性分布式數據集(RDD),它們是容錯集合,裡面的數據元素可執行並行操作。RDD可以引用外部存儲系統中的數據集,比如共享式文件系統、HDFS、HBase,或者提供Hadoop InputFormat的任何數據源。Spark可以用Hadoop支持的任何存儲源創建RDD,包括本地文件系統,或前面所列的其中一種文件系統。
RDD擁有五個主要屬性:
分區列表
計算每個分片的函數
依賴其他RDD的項目列表
面向鍵值RDD的分區程序(比如說RDD是散列分區),這是可選屬性
計算每個分片的首選位置的列表(比如HDFS文件的數據塊位置),這是可選屬性
RDD可能具有持久性,以便將數據集緩存在內存中。這樣一來,以後的操作大大加快,最多達10倍。Spark的緩存具有容錯性,原因在於如果RDD的任何分區丟失,就會使用原始轉換,自動重新計算。
可擴展性
按照定義,MapRece和Spark都可以使用HDFS來擴展。那麼,Hadoop集群能變得多大呢?
據稱雅虎有一套42000個節點組成的Hadoop集群,可以說擴展無極限。最大的已知Spark集群是8000個節點,不過隨著大數據增多,預計集群規模也會隨之變大,以便繼續滿足吞吐量方面的預期。
安全
Hadoop支持Kerberos身份驗證,這管理起來有麻煩。然而,第三方廠商讓企業組織能夠充分利用活動目錄Kerberos和LDAP用於身份驗證。同樣那些第三方廠商還為傳輸中數據和靜態數據提供數據加密。
Hadoop分布式文件系統支持訪問控制列表(ACL)和傳統的文件許可權模式。Hadoop為任務提交中的用戶控制提供了服務級授權(Service Level Authorization),這確保客戶擁有正確的許可權。
Spark的安全性弱一點,目前只支持通過共享密鑰(密碼驗證)的身份驗證。Spark在安全方面帶來的好處是,如果你在HDFS上運行Spark,它可以使用HDFS ACL和文件級許可權。此外,Spark可以在YARN上運行,因而能夠使用Kerberos身份驗證。
總結
Spark與MapRece是一種相互共生的關系。Hadoop提供了Spark所沒有的功能特性,比如分布式文件系統,而Spark 為需要它的那些數據集提供了實時內存處理。完美的大數據場景正是設計人員當初預想的那樣:讓Hadoop和Spark在同一個團隊裡面協同運行。
『拾』 大韁曉spark支持多大內存卡
支持存儲卡類型,Micro SD卡
最大支持128 GB容量,寫入速度≥15 MB/s,傳輸速度為Class 10及以上或達到UHS-1評級的Micro SD卡