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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Apache Spark学习:将Spark部署到Hadoop 2.2.0上

發布時間:2025/6/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apache Spark学习:将Spark部署到Hadoop 2.2.0上 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文介紹的是如何將Apache Spark部署到Hadoop 2.2.0上,如果你們的Hadoop是其他版本,比如CDH4,可直接參考官方說明操作。

需要注意兩點:(1)使用的Hadoop必須是2.0系列,比如0.23.x,2.0.x,2.x.x或CDH4、CDH5等,將Spark運行在Hadoop上,本質上是將Spark運行在Hadoop YARN上,因為Spark自身只提供了作業管理功能,資源調度要依托于第三方系統,比如YARN或Mesos等 (2)之所以不采用Mesos而是YARN,是因為YARN擁有強大的社區支持,且逐步已經成為資源管理系統中的標準。

注意,目前官方已經發布了0.8.1版本,可以直接從這里選擇合適的版本下載,如果你使用的是hadoop 2.2.0或者CDH5,可以直接從這里下載

將Spark部署到Hadoop 2.2.0上需要經過以下幾步:

步驟1:準備基礎軟件

步驟2:下載編譯spark 0.8.1或者更高版本

步驟3:運行Spark實例

接下來詳細介紹這幾個步驟。

步驟1:準備基礎軟件

(1) 基本軟件

包括linux操作系統、Hadoop 2.2.0或者更高版本、Maven 3.0.4版本(或者最新3.0.x版本),其中,Hadoop 2.2.0只需采用最簡單的方式安裝即可,具體可參考我的這篇文章:Hadoop YARN安裝部署,Maven安裝方法很簡單,可以在http://maven.apache.org/download.cgi上下載binary版本,解壓后,配置MAVEN_HOME和PATH兩個環境變量,具體可自行在網上查找相關方法,比如這篇“Linux下安裝maven”,但需要注意,版本不是3.0.x版,Spark對版本要求很嚴格。

(2)硬件準備

Spark 2.2.0專門搞出來一個yarn-new支持hadoop 2.2.0,因為hadoop 2.2.0的API發生了不兼容變化,需要使用Maven單獨編譯并打包,而編譯過程非常慢(一般機器,2個小時左右),且占用內存較多,因此,你需要一臺滿足以下條件的機器作為編譯機:

條件1:可以聯網:第一次編譯時,maven需要從網上下載大量的jar包,速度比較慢,如果你網絡不行,建議直接放棄編譯。

條件2:內存2GB以上

步驟2:下載編譯spark 0.8.1或者更高版本

可以用git下載或者直接wget或者spark 0.8.1版本

wget https://github.com/apache/incubator-spark/archive/v0.8.1-incubating.zip

注意,0.8.1之前的版本不支持hadoop 2.2.0,從0.8.1版本開始支持。

下載之后,對其解壓:

unzip v0.8.1-incubating

然后進入解壓目錄,輸入以下命令:

cd incubator-spark-0.8.1-incubating

export MAVEN_OPTS=”-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m”

mvn -Dyarn.version=2.2.0 -Dhadoop.version=2.2.0? -Pnew-yarn -DskipTests package

一般需要等待很長時間,編譯完成后,將spark內核打包成一個獨立的jar包,命令如下:

SPARK_HADOOP_VERSION=2.2.0 SPARK_YARN=true ./sbt/sbt assembly

打包完成后,在assembly/target/scala-2.9.3/目錄下會生成兩個jar包,其中一個是spark-assembly-0.8.1-incubating-hadoop2.2.0.jar,examples/target/scala-2.9.3/下面也有一個jar包:spark-examples-assembly-0.8.1-incubating.jar,接下來將重點使用這兩個包。
如果你想把spark作為一個客戶端,放到hadoop集群上,供用戶使用,需要拷貝以下幾個目錄:

conf/

assembly/target/scala-2.9.3/ 只需拷貝jar包

examples/target/scala-2.9.3/只需拷貝jar包

spark-class

注意,需要保證以上目錄的層次結構,即一個目錄下有:

conf目錄、spark-class文件,assembly目錄(內部有target目錄)、examples目錄(內部有target目錄)

一切就緒后,可以編寫一個shell腳本run_spark_shell.sh運行pi計算程序:

#用YARN_CONF_DIR或HADOOP_CONF_DIR指定YARN或者Hadoop配置文件存放目錄

export YARN_CONF_DIR=/opt /yarn/etc/hadoop/

SPARK_JAR=./assembly/target/scala-2.9.3/spark-assembly-0.8.1-incubating-hadoop2.2.0.jar \

./spark-class org.apache.spark.deploy.yarn.Client \

–jar ./assembly/target/scala-2.9.3/spark-examples-assembly-0.8.1-incubating.jar \

–class org.apache.spark.examples.JavaSparkPi \

–args yarn-standalone \

–num-workers 3 \

–master-memory 2g \

–worker-memory 2g \

–worker-cores 1

然后運行該shell腳本:

sh run_spark_shell.sh

可在終端看到以下內容:

以上程序比較簡單,你可以運行一個復雜點的迭代程序,Spark提供了一個圖閉包傳遞算法(Transitive closure),可以通過以下腳本運行(run_spark_tc.sh):

#用YARN_CONF_DIR或HADOOP_CONF_DIR指定YARN或者Hadoop配置文件存放目錄

export YARN_CONF_DIR=/opt /yarn/etc/hadoop/

SPARK_JAR=./assembly/target/scala-2.9.3/spark-assembly-0.8.1-incubating-hadoop2.2.0.jar \

./spark-class org.apache.spark.deploy.yarn.Client \

–jar ./assembly/target/scala-2.9.3/spark-examples-assembly-0.8.1-incubating.jar \

–class org.apache.spark.examples.SparkTC \

–args yarn-standalone \

–num-workers 3 \

–master-memory 2g \

–worker-memory 2g \

–worker-cores 1

運行該腳本后,可在YARN界面上看到運行過程:

如果你使用的CDH4或者2.0.x版本,無需使用maven編譯,直接使用sbt打包即可,具體可參考:Building a YARN-Enabled Assembly JAR。

截止目前,CDH成為第一個宣稱支持Spark的發行版,預計在CDH5版本中將打入Spark,到之后使用Spark更加方便。

另外,如果你只想體驗一下Spark,不想自己編譯打包Spark,可以直接下載我打包好的spark(下載地址:spark-on-hadoop-2.2.0.tar.gz),內置兩個可以直接運行的spark作業(run_spark_pi.sh和run_spark_tc.sh),不過運行前,你需要先配置以下hadoop目錄所在位置,即修改腳本的第一行內容:

export YARN_CONF_DIR=/opt/pgs/yarn/etc/hadoop/

目前0.8.1版本已經發布,官網提供了安裝包下載,下載后可以直接使用,下載鏈接是:spark-hadoop2。

總結

以上是生活随笔為你收集整理的Apache Spark学习:将Spark部署到Hadoop 2.2.0上的全部內容,希望文章能夠幫你解決所遇到的問題。

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