Spark standalone簡介與執行wordcount(master、slave1和slave2)
前期部落格
1. Standalone模式
即獨立模式,自帶完整的服務,可單獨部署到一個叢集中,無需依賴任何其他資源管理系統。從一定程度上說,該模式是其他兩種的基礎。借鑑Spark開發模式,我們可以得到一種開發新型計算框架的一般思路:先設計出它的standalone模式,為了快速開發,起初不需要考慮服務(比如master/slave)的容錯性,之後再開發相應的wrapper,將stanlone模式下的服務原封不動的部署到資源管理系統yarn或者mesos上,由資源管理系統負責服務本身的容錯。目前Spark在standalone模式下是沒有任何單點故障問題的,這是藉助zookeeper實現的,思想類似於Hbase master單點故障解決方案。將Spark standalone與MapReduce比較,會發現它們兩個在架構上是完全一致的:
1) 都是由master/slaves服務組成的,且起初master均存在單點故障,後來均通過zookeeper解決(Apache MRv1的JobTracker仍存在單點問題,但CDH版本得到了解決);
2) 各個節點上的資源被抽象成粗粒度的slot,有多少slot就能同時執行多少task。不同的是,MapReduce將slot分為map
slot和reduce slot,它們分別只能供Map Task和Reduce
Task使用,而不能共享,這是MapReduce資源利率低效的原因之一,而Spark則更優化一些,它不區分slot型別,只有一種slot,可以供各種型別的Task使用,這種方式可以提高資源利用率,但是不夠靈活,不能為不同型別的Task定製slot資源
Spark Standalone部署配置---Standalone架構
Spark Standalone部署配置---手工啟動一個Spark叢集
http://spark.apache.org/docs/latest/spark-standalone.html#starting-a-cluster-manually
這裡,我帶大家,看官網
這裡,我不多說,自行去看吧!
Spark Standalone部署配置---訪問web ui
● 訪問http://master:8080/(預設埠是8080,埠大家可以自己修改)
Job提交與執行
Job提交與執行---執行示例程式
$SPARK_HOME/bin/spark-submit \
--master spark://master:7077 \
--class org.apache.spark.examples.SparkPi \
$SPARK_HOME/lib/spark-examples-1.6.1-hadoop2.6.0.jar
Spark Standalone HA
● Standby masters with Zookeeper
● Single-Node Recover with Local File System
http://spark.apache.org/docs/latest/spark-standalone.html#high-availability
但是,這裡需。關於zookeeper的安裝
我這裡不多說,請移步
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_60 export SCALA_HOME=/usr/local/scala/scala-2.10.5 export SPARK_MASTER_IP=master export SPARK_WORKER_MERMORY=1G spark.deploy.recoverMode=ZOOKEEPER spark.deploy.zookeeper.url=master:2181,slave1:2181,slave2:2181 spark.deploy.zookeeper.dir=/my-spark
或者
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_60 export SCALA_HOME=/usr/local/scala/scala-2.10.5 export SPARK_MASTER_IP=master export SPARK_WORKER_MERMORY=1G SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master:2181,slave1:2181,slave2:2181 -Dspark.deploy.zookeeper.dir=/my-spark"
Spark Standalone執行架構解析
Spark Standalone執行架構解析---Spark基本工作流程
以SparkContext為程式執行的總入口,在SparkContext的初始化過程中,Spark會分別建立DAGScheduler作業排程和TaskScheduler任務排程兩級排程模組。
其中作業排程模組是基於任務階段的高層排程模組,它為每個Spark作業計算具有依賴關係的多個排程階段(通常根據shuffle來劃分),然後為每個階段構建出一組具體的任務(通常會考慮資料的本地性等),然後以TaskSets(任務組)的形式提交給任務排程模組來具體執行。而任務排程模組則負責具體啟動任務、監控和彙報任務執行情況。
Spark Standalone執行架構解析---Spark local模式
Local,本地模式,預設情況是本地模式執行,如執行的spark-shell,開發測試環境,執行任務命令:
$SPARK_HOME/bin/run-example org.apache.spark.examples.SparkPi local
LocalBackend響應Scheduler的receiveOffers請求,根據可用的CPU核的設定值[N]直接生成CPU資源返回給Scheduler,並通過Executor類線上程池中依次啟動和執行Scheduler返回的任務列表,其核心事件迴圈由內部類LocalActor以Akka Actor的訊息處理形式來實現。
Spark Standalone執行架構解析---Spark local cluster模式
偽分散式模式啟動兩個Worker,每個Worker管理兩個CPU核和1024MB的記憶體
$SPARK_HOME/bin/run-example org.apache.spark.examples.SparkPi local[2,2,1024]
LocalBackend響應Scheduler的receiveOffers請求,根據可用的CPU核的設定值[N]直接生成CPU資源返回給Scheduler,並通過Executor類線上程池中依次啟動和執行Scheduler返回的任務列表,其核心事件迴圈由內部類LocalActor以Akka Actor的訊息處理形式來實現
Spark Standalone執行架構解析---Spark standalone模式
Spark Standalone執行架構解析---Spark standalone詳細過程解析
Spark Standalone 下執行wordcount
具體,請移步
● wordcount程式碼
● mvn 專案打包上傳至Spark叢集。
● Spark 叢集提交作業
[[email protected] hadoop-2.6.0]$ $HADOOP_HOME/bin/hadoop fs -mkdir -p hdfs://master:9000/testspark/inputData/wordcount
[[email protected] ~]$ mkdir -p /home/spark/testspark/inputData/wordcount [[email protected] hadoop-2.6.0]$ $HADOOP_HOME/bin/hadoop fs -copyFromLocal /home/spark/testspark/inputData/wordcount/wc.txt hdfs://master:9000/testspark/inputData/wordcount/
$SPARK_HOME/bin/spark-submit \
--master spark://master:7077 \
--class zhouls.bigdata.MyScalaWordCount \
/home/spark/testspark/mySpark-1.0-SNAPSHOT.jar \
hdfs://master:9000/testspark/inputData/wordcount/wc.txt \
hdfs://master:9000/testspark/outData/MyScalaWordCount
或者
$SPARK_HOME/bin/spark-submit \
--master spark://master:7077 \
--class zhouls.bigdata.MyJavaWordCount \
/home/spark/testspark/mySpark-1.0-SNAPSHOT.jar \
hdfs://master:9000/testspark/inputData/wordcount/wc.txt \
hdfs://master:9000/testspark/outData/MyJavaWordCount
具體,請移步
Spark Standalone HA下執行wordcount (這裡我不演示了)
具體,請移步
● wordcount程式碼
● mvn 專案打包上傳至Spark叢集。
● Spark 叢集提交作業
$SPARK_HOME/bin/spark-submit \
--master spark://master1:7077,master2:7077 \
--class zhouls.bigdata.MyScalaWordCount \
/home/spark/testspark/mySpark-1.0-SNAPSHOT.jar \
hdfs://master:9000/testspark/inputData/wordcount/wc.txt \
hdfs://master:9000/testspark/outData/MyScalaWordCount
需要你搞兩個master。比如。我這裡。
或者
[[email protected] spark-1.6.1-bin-hadoop2.6]$ bin/spark-submit \
--master spark://master1:7077,master2:7077 \
--class zhouls.bigdata.MyJavaWordCount \
/home/spark/testspark/mySpark-1.0-SNAPSHOT.jar \
hdfs://master:9000/testspark/inputData/wordcount/wc.txt \
hdfs://master:9000/testspark/outData/MyJavaWordCount
相關推薦
Spark standalone簡介與執行wordcount(master、slave1和slave2)
前期部落格 1. Standalone模式 即獨立模式,自帶完整的服務,可單獨部署到一個叢集中,無需依賴任何其他資源管理系統。從一定程度上說,該模式是其他兩種的基礎。借鑑Spark開發模式,我們可以得到一種開發新型計算框架的一般思路:先設計出它的s
Spark on YARN簡介與執行wordcount(master、slave1和slave2)(博主推薦)
前期部落格 Spark On YARN模式 這是一種很有前景的部署模式。但限於YARN自身的發展,目前僅支援粗粒度模式(Coarse-grained Mode)。這是由於YARN上的Container資源是不可以動態伸縮的,一旦Container啟動之後,可使用
Spark standalone模式的安裝(spark-1.6.1-bin-hadoop2.6.tgz)(master、slave1和slave2)
前期部落格 開篇要明白 (1)spark-env.sh 是環境變數配置檔案 (2)spark-defaults.conf (3)slaves 是從節點機器配置檔案 (4)metrics.properties 是 監控 (5)log4j.
Spark on YARN模式的安裝(spark-1.6.1-bin-hadoop2.6.tgz + hadoop-2.6.0.tar.gz)(master、slave1和slave2)(博主推薦)
說白了 Spark on YARN模式的安裝,它是非常的簡單,只需要下載編譯好Spark安裝包,在一臺帶有Hadoop YARN客戶端的的機器上執行即可。 Spark on YARN分為兩種: YARN cluster(YARN standalone,0.9版本以前)和 YA
ElasticSearch 簡介與外掛安裝(logstash、kibana)
文章目錄 簡介 安裝 elasticsearch安裝 kibana安裝 logstash 安裝 logstash windows 安裝 kanaba 中新增logstash
ccflow表結構與執行機制(二次開發必看)
馳騁工作流引擎,工作流程管理系統,表結構與執行機制。 ------------------------------------------------------- 前言: 1, ccflow 有自動修復資料表功能, 所以表的欄位的
Oracle學習筆記—oracle體系架構及狀態(nomount、mount和open)簡介
位置 正常 處理 管理 共享服務器 體系 操作記錄 sysdba png oracle體系架構簡介 先來簡要了解一下Oracle數據庫體系架構以便於後面深入理解,Oracle Server主要由實例(instance)和數據庫(database)組成。實例(instance
Linux檢視系統與核心資訊(uname、file和lsb_release -a)
uname 命令 uname 命令可以用來檢視系統與核心的相關資訊,命令格式如下: [[email protected] ~]# uname [選項] 選項: -a:檢視系統所有相關資訊; -r:檢視核心版本; -s:檢視核心名稱; -a:檢視系統所有相關資訊
ubuntu18.04 搭建hadoop完全分散式叢集(Master、slave1、slave2)共三個節點
一、硬體配置以及作業系統: 所需要的機器以及作業系統:一臺mac os筆記本、一臺window筆記本(CPU雙核四執行緒,記憶體8G),其中mac os用於遠端操作,window筆記本裝有虛擬機器,虛擬出3個ubuntu18.04系統(配置CPU1個執行緒2個,記憶體1.5G,硬碟分配每個7
android影象與影象處理系列(一、Bitmap和BitmapFactory)
1、Drawable物件 Android應用添加了Drawabe資源之後,Android SDK會為這份資原始檔在R清單檔案中建立一個索引項:R.drawable.file_name,接著我們可以在xml資原始檔中通過@drawable/file_name來訪問該draw
深度學習綜述(LeCun、Bengio和Hinton)
想法 會有 區分 足夠 乘法 開發 訓練 repr 追蹤 原文摘要:深度學習可以讓那些擁有多個處理層的計算模型來學習具有多層次抽象的數據的表示。這些方法在很多方面都帶來了顯著的改善,包含最先進的語音識別、視覺對象識別、對象檢測和很多其他領域,比如藥物發現和基因組學等。深
修改this指向(bind、call 和 apply)
self 全局 () 用法 兼容 {} ins his post 一、bind 首先: var alertWrite = document.write; alertWrite(‘who am I?‘); 這兩行代碼的運行結果是什麽呢?不要急著回答,看完下面的內容再回答
zookeeper(四):核心原理(Watcher、事件和狀態)
ted sso 兩個 reat exist 這一 通過 投票 children zookeeper主要是為了統一分布式系統中各個節點的工作狀態,在資源沖突的情況下協調提供節點資源搶占,提供給每個節點了解整個集群所處狀態的途徑。這一切的實現都依賴於zookeeper中的事件監
第一篇隨記:學習WAMP中最基礎的JDBC連線操作記錄( Statement、PreparedStatement和CallableStatement)
用Statement實現資料庫連線: <%@ page contentType="text/html" pageEncoding="UTF-8" %> <%@ page import="java.sql.*" %> <html> <
廖雪峰 JavaScript 學習筆記(字串、陣列和物件)
字串 1.和python一樣,也是用' '或" "括起來的字元表示。但多行字串是用反引號(esc下鍵)``,與之相對的是Python用''' '''三引號表示; 2.轉義字元:\ 3.換行符:\n 4.製表符:\t 5.多個字串用 + 連線 6.模板字串: ${變數} 例
關於阿里訊息佇列RocketMQ(安裝、使用和坑),你需要知道的事情
為什麼選擇RocketMQ Apache RocketMQ作為阿里開源的一款高效能、高吞吐量的分散式訊息中介軟體。因為阿里有海量的資料量,無數業務場景的應用,是RocketMQ搶盡風頭風頭,成為不可多得中介軟體專案,加上已經正式加入Apach俱樂部,作為頂級的開源專案! 一、關於
《Java8實戰》-第八章筆記(重構、測試和除錯)
重構、測試和除錯 通過本書的前七章,我們瞭解了Lambda和Stream API的強大威力。你可能主要在新專案的程式碼中使用這些特性。如果你建立的是全新的Java專案,這是極好的時機,你可以輕裝上陣,迅速地將新特性應用到專案中。然而不幸的是,大多數情況下你沒有機會從頭開始一個全新的專案。很多時候,你不得不面
JavaScript基礎回顧一(型別、值和變數)
請看程式碼並思考輸出結果 var scope = 'global'; function f(){ console.log(scope); var scope = 'local'; console.log(scope); } f(); var a = [];
非同步DCDC的工作模式(CCM、DCM和BCM)
目錄 1. 非同步DCDC的三種工作模式 非同步DCDC工作在哪種模式,取決於拓撲和輸出功率,輸入電壓和輸出電壓的大小。 CCM,連續導通模式,一個開關週期內電感電流>0。 DCM,斷續導通模式,一個開關週期內電感電流 ≥ 0。 BCM,臨界導通模式
JavaScript陣列的操作方法(concat、slice和splice)
ECMAScript 為運算元組中的項提供了很多方法,其中最常用的有:concat( ) 、slice( ) 和 splice( ) 。 concat ( ) concat ( ) 方法可以基於當前陣列中的項建立一個新的陣列。具體來說,這個方法會先建立一個當前陣列的副本,然後將