Spark standalone模式安裝運行和提交jar任務(wù)

本文講述在一臺Centos7筆記本中安裝Spark standalone(spark運行需要jdk、scala和spark)和如何提交一個簡單的任務(wù)到spark上算墨。

一论笔、Spark安裝

1,從Oracle下載jdk-8u161-linux-x64.tar.gz到服務(wù)器上懂昂,由于下載jdk需要登陸Oracle官網(wǎng)介时,所以不方便用Wget;

下載scala:

wget https://downloads.lightbend.com/scala/2.10.6/scala-2.10.6.tgz

下載spark:

wget:http://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.4.3/spark-2.4.3-bin-hadoop2.7.tgz

2,配置環(huán)境變量沸柔,分別將jdk循衰、scala和Spark解壓,對應(yīng)的解壓命令如下褐澎,-C為解壓到的目錄会钝。

tar -zvxf jdk-8u151-linux-x64.tar.gz -C /usr/java

tar -zvxf scala-2.10.6.tgz -C /usr/local/src

tar -zvxf spark-2.2.1-bin-hadoop2.7.tgz -C /usr/local/src

3,配置jdk工三、scala和Spark環(huán)境變量

vim /etc/profile

添加如下內(nèi)容:

#set java environment

JAVA_HOME=/usr/java/jdk1.8.0_161

JRE_HOME=/usr/java/jdk1.8.0_161/jre

CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

SCALA_HOME=/usr/local/src/scala-2.10.6/

SPARK_HOME=/usr/local/src/spark-2.4.3-bin-hadoop2.7/

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$M2_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/sbin

export JAVA_HOME JRE_HOME CLASS_PATH PATH M2_HOME SCALA_HOME SPARK_HOME

4迁酸,在conf文件夾中配置spark-env.sh

cp spark-env.sh.template spark-env.sh

vim spark-env.sh 增加如下內(nèi)容:

export JAVA_HOME=/usr/java/jdk1.8.0_161

export SCALA_HOME=/usr/local/src/scala-2.10.6/

export SPARK_HOME=/usr/local/src/spark-2.4.3-bin-hadoop2.7/

export SPARK_MASTER_IP=localhost

export SPARK_EXECUTOR_MEMORY=1G

5,啟動Spark服務(wù)端

./sbin/start-all.sh? (啟動master和worker俭正,所以是standalone模式)

6奸鬓,查看spark服務(wù)啟動情況

jps

結(jié)果如下所示,成功啟動后可以通過ip:8080訪問spark web端掸读,查看提交的任務(wù)情況串远。

[root@192 sbin]# jps

27910 Jps

4301 Master

4382 Worker

7,啟動Spark-shell

./bin/spark-shell.sh

二儿惫、提交一個簡單jar到Spark上澡罚。

制作jar包建議創(chuàng)建maven工程然后通過maven插件生成jar包,如果使用Spring boot 雖然生成jar包簡單了姥闪,但是由于spring boot框架引入了太多jar包始苇,很容易導(dǎo)致同Spark的相關(guān)jar沖突,到時候特別折騰筐喳。

1催式,創(chuàng)建maven工程,并指定jar的main函數(shù)避归,pom文件主要內(nèi)容如下荣月,主要是引入Spark依賴夷家。

? ? <dependencies>

? ? ? ? <dependency> <!-- Spark dependency -->

? ? ? ? ? ? <groupId>org.apache.spark</groupId>

? ? ? ? ? ? <artifactId>spark-core_2.11</artifactId>

? ? ? ? ? ? <version>2.4.3</version>

? ? ? ? </dependency>

? ? </dependencies>

? ? <build>

? ? ? ? <plugins>

? ? ? ? ? ? <plugin>

? ? ? ? ? ? ? ? <groupId>org.apache.maven.plugins</groupId>

? ? ? ? ? ? ? ? <artifactId>maven-jar-plugin</artifactId>

? ? ? ? ? ? ? ? <version>2.4</version>

? ? ? ? ? ? ? ? <configuration>

? ? ? ? ? ? ? ? ? ? <archive>

? ? ? ? ? ? ? ? ? ? ? ? <manifest>

? ? ? ? ? ? ? ? ? ? ? ? ? ? <mainClass>com.sparker.SimpleApp</mainClass>

? ? ? ? ? ? ? ? ? ? ? ? </manifest>

? ? ? ? ? ? ? ? ? ? </archive>

? ? ? ? ? ? ? ? </configuration>

? ? ? ? ? ? </plugin>

? ? ? ? ? ? <plugin>

? ? ? ? ? ? ? ? <groupId>org.apache.maven.plugins</groupId>

? ? ? ? ? ? ? ? <artifactId>maven-compiler-plugin</artifactId>

? ? ? ? ? ? ? ? <configuration>

? ? ? ? ? ? ? ? ? ? <source>8</source>

? ? ? ? ? ? ? ? ? ? <target>8</target>

? ? ? ? ? ? ? ? </configuration>

? ? ? ? ? ? </plugin>

? ? ? ? </plugins>

? ? </build>

2无宿,java 統(tǒng)計輸入文件中單詞數(shù)量,其中要注意spark默認(rèn)是從hdfs上讀取文件到腥,所以在linux服務(wù)器上輸入本地文件路徑的格式為file:///data/file/inputfile账锹。另外該jar包的打包方式位將其依賴打包到j(luò)ar中萌业,因為服務(wù)器的classpath中有其依賴,所以可以不用打包的應(yīng)用jar包中奸柬。

public class SimpleApp {

? ? public static void main(String[] args) {

? ? ? ? String filePath = args[0];

? ? ? ? String outPath = args[1];

? ? ? ? SparkConf sparkConf = new SparkConf().setAppName("wordcount");

? ? ? ? JavaSparkContext sc = new JavaSparkContext(sparkConf);

? ? ? ? //以空格切分英文單詞

? ? ? ? JavaRDD<String> input = sc.textFile(filePath);

? ? ? ? JavaRDD<String> words = input.flatMap(x -> Arrays.asList(x.split(" ")).iterator());

? ? ? ? //轉(zhuǎn)化為鍵值對操作/data/sparkdemo

? ? ? ? JavaPairRDD<String, Integer> count = words.mapToPair(x -> new Tuple2<>(x, 1)).reduceByKey((x, y) -> x + y);

? ? ? ? count.saveAsTextFile(outPath);

? ? ? ? sc.close();

? ? }

}

3生年,提交任務(wù)到spark上,注意看執(zhí)行命令后的輸出日志,是否有錯誤信息等廓奕。

./spark-submit --class com.sparker.SimpleApp --master spark://IP:7077 --executor-memory 1G --total-executor-cores 2 /data/sparkdemo/spark-test-1.0-SNAPSHOT.jar file:///data/sparkdemo/1.txt file:///data/sparkdemo/output.txt

相關(guān)問題說明:

1抱婉,在window上運行程序可能會出現(xiàn)

2019-06-15 17:53:34,094 ERROR [org.apache.hadoop.util.Shell] - Failed to locate the winutils binary in the hadoop binary path

java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

錯誤档叔,對于初學(xué)者可能會覺得會影響程序的執(zhí)行,其實不會不用理會蒸绩。

2衙四,windows上執(zhí)行找不到輸入文件路徑

關(guān)于在Spark集群中讀取本地文件拋出找不到文件異常的問題,一般情況下患亿,我們在本地ide里寫好程序传蹈,打成jar包上傳到集群取運行,有時候需要讀取數(shù)據(jù)文件窍育,這個時候需要注意卡睦,如果程序中讀取的是本地文件,那么漱抓,要在所有的節(jié)點都有這個數(shù)據(jù)文件表锻,只在master中有這個數(shù)據(jù)文件時,執(zhí)行程序會一直報找不到文件乞娄。

解決方式1:讓每個Worker節(jié)點的相應(yīng)位置都有要讀取的數(shù)據(jù)文件瞬逊。

解決方式2:直接將數(shù)據(jù)文件上傳到hdfs,達(dá)到數(shù)據(jù)共享仪或。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末确镊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子范删,更是在濱河造成了極大的恐慌蕾域,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件到旦,死亡現(xiàn)場離奇詭異旨巷,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)添忘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進(jìn)店門采呐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人搁骑,你說我怎么就攤上這事斧吐。” “怎么了仲器?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵煤率,是天一觀的道長。 經(jīng)常有香客問我乏冀,道長蝶糯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任煤辨,我火速辦了婚禮裳涛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘众辨。我一直安慰自己端三,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布鹃彻。 她就那樣靜靜地躺著郊闯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蛛株。 梳的紋絲不亂的頭發(fā)上团赁,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機(jī)與錄音谨履,去河邊找鬼欢摄。 笑死,一個胖子當(dāng)著我的面吹牛笋粟,可吹牛的內(nèi)容都是我干的怀挠。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼害捕,長吁一口氣:“原來是場噩夢啊……” “哼绿淋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起尝盼,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤吞滞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后盾沫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體裁赠,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年疮跑,在試婚紗的時候發(fā)現(xiàn)自己被綠了组贺。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡祖娘,死狀恐怖失尖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情渐苏,我是刑警寧澤掀潮,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站琼富,受9級特大地震影響仪吧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鞠眉,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一薯鼠、第九天 我趴在偏房一處隱蔽的房頂上張望择诈。 院中可真熱鬧,春花似錦出皇、人聲如沸羞芍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荷科。三九已至,卻和暖如春纱注,著一層夾襖步出監(jiān)牢的瞬間畏浆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工狞贱, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留刻获,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓斥滤,卻偏偏與公主長得像将鸵,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子佑颇,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容