當前位置:編程學習大全網 - 源碼下載 - spark必須要hadoop嗎

spark必須要hadoop嗎

Spark的安裝分為幾種模式,其中壹種是本地運行模式,只需要在單節點上解壓即可運行,這種模式不需要依賴Hadoop 環境。

運行 spark-shell

本地模式運行spark-shell非常簡單,只要運行以下命令即可,假設當前目錄是$SPARK_HOME

$ MASTER=local $ bin/spark-shell

MASTER=local就是表明當前運行在單機模式。如果壹切順利,將看到下面的提示信息:

Created spark context..

Spark context available as sc.

這表明spark-shell中已經內置了Spark context的變量,名稱為sc,我們可以直接使用該變量進行後續的操作。

spark-shell 後面設置 master 參數,可以支持更多的模式,

我們在sparkshell中運行壹下最簡單的例子,統計在README.md中含有Spark的行數有多少,在spark-shell中輸入如下代碼:

scala>sc.textFile("README.md").filter(_.contains("Spark")).count

如果妳覺得輸出的日誌太多,妳可以從模板文件創建 conf/log4j.properties :

$ mv conf/log4j.properties.template conf/log4j.properties

然後修改日誌輸出級別為WARN:

log4j.rootCategory=WARN, console

如果妳設置的 log4j 日誌等級為 INFO,則妳可以看到這樣的壹行日誌 INFO SparkUI: Started SparkUI at e to

____ __

/ __/__ ___ _____/ /__

_\ \/ _ \/ _ / __/ _/

/__ / .__/\_,_/_/ /_/\_\ version 1.3.0

/_/

Using Python version 2.7.6 (default, Sep 9 2014 15:04:36)

SparkContext available as sc, HiveContext available as sqlCtx.

妳也可以使用 IPython 來運行 Spark:

IPYTHON=1 ./bin/pyspark

如果要使用 IPython NoteBook,則運行:

IPYTHON_OPTS="notebook" ./bin/pyspark

從日誌可以看到,不管是 bin/pyspark 還是 bin/spark-shell,他們都有兩個內置的變量:sc 和 sqlCtx。

SparkContext available as sc, HiveContext available as sqlCtx

sc 代表著 Spark 的上下文,通過該變量可以執行 Spark 的壹些操作,而 sqlCtx 代表著 HiveContext 的上下文。

spark-submit

在Spark1.0之後提供了壹個統壹的腳本spark-submit來提交任務。

對於 python 程序,我們可以直接使用 spark-submit:

$ mkdir -p /usr/lib/spark/examples/python$ tar zxvf /usr/lib/spark/lib/python.tar.gz -C /usr/lib/spark/examples/python$ ./bin/spark-submit examples/python/pi.py 10

對於 Java 程序,我們需要先編譯代碼然後打包運行:

$ spark-submit --class "SimpleApp" --master local[4] simple-project-1.0.jar

Spark 運行模式

Spark 的運行模式多種多樣、靈活多變,部署在單機上時,既可以用本地模式運行,也可以用偽分布式模式運行,而當以分布式集群的方式部署時,也有眾多的運行模式可以供選擇,這取決於集群的實際情況,底層的資源調度既可以依賴於外部的資源調度框架,也可以使用 Spark 內建的 Standalone 模式。對於外部資源調度框架的支持,目前的實現包括相對穩定的 Mesos 模式,以及還在持續開發更新中的 Hadoop YARN 模式。

在實際應用中,Spark 應用程序的運行模式取決於傳遞給 SparkContext 的 MASTER 環境變量的值,個別模式還需要依賴輔助的程序接口來配合使用,目前所支持的 MASTER 環境變量由特定的字符串或 URL 所組成。例如:

Local[N]:本地模式,使用 N 個線程。

Local Cluster[Worker,core,Memory]:偽分布式模式,可以配置所需要啟動的虛擬工作節點的數量,以及每個工作節點所管理的 CPU 數量和內存尺寸。

Spark://hostname:port:Standalone 模式,需要部署 Spark 到相關節點,URL 為 Spark Master 主機地址和端口。

Mesos://hostname:port:Mesos 模式,需要部署 Spark 和 Mesos 到相關節點,URL 為 Mesos 主機地址和端口。

YARN standalone/Yarn cluster:YARN 模式壹,主程序邏輯和任務都運行在 YARN 集群中。

YARN client:YARN 模式二,主程序邏輯運行在本地,具體任務運行在 YARN 集群中。

運行 Spark

通過命令行運行 Spark ,有兩種方式:bin/pyspark 和 bin/spark-shell。

運行 bin/spark-shell 輸出的日誌如下:

$ ./bin/spark-shell --master local

妳可以從模板文件創建 conf/log4j.properties ,然後修改日誌輸出級別:

mv conf/log4j.properties.template conf/log4j.properties

修改 log4j.rootCategory 的等級為輸出 WARN 級別的日誌:

log4j.rootCategory=WARN, console

如果妳設置的 log4j 日誌等級為 INFO,則妳可以看到這樣的壹行日誌 INFO SparkUI: Started SparkUI at http://10.9.4.165:4040 ,意思是 Spark 啟動了壹個 web 服務器,妳可以通過瀏覽器訪問 http://10.9.4.165:4040 來查看 Spark 的任務運行狀態。

從日誌可以看到,不管是 bin/pyspark 還是 bin/spark-shell,他們都有兩個內置的變量:sc 和 sqlCtx。

SparkContext available as sc, HiveContext available as sqlCtx

sc 代表著 Spark 的上下文,通過該變量可以執行 Spark 的壹些操作,而 sqlCtx 代表著 HiveContext 的上下文。

  • 上一篇:核裂變的重大意義是什麽?
  • 下一篇:超買超賣什麽意思
  • copyright 2024編程學習大全網