Spark环境搭建(四)Spark开发环境搭建
Spark环境搭建(四)Spark开发环境搭建
Windows练习环境
Hadoop
解压完Hadoop后,使用该网站中的bin目录替换掉原来的bin目录。
1 | https://github.com/cdarlint/winutils |
环境变量
HADOOP_HOME
PATH
将 HADOOP_HOME/sbin 及 HADOOP_HOME/bin 目录追加到PATH变量后。
Spark
SPARK_HOME
PATH
将 SPARK_HOME/sbin 及 SPARK_HOME/bin 目录追加到PATH变量后。

Spark-Shell

项目创建
查看Scala版本
1 | [zhangsan@node0 bin]$ ./spark-shell |
创建项目

创建完项目后,为了表示这是一个scala项目,我们把自动生成的java目录重命名为scala。
pom.xml
1 | <properties> |
WordCount.scala
1 | // 包名 |
数据准备
1 | [zhangsan@node1 ~]$ hdfs dfs -cat /input/bigdata.txt |
在IDEA中运行
设置运行模式
1 | val conf = new SparkConf().setAppName("WordCount").setMaster("local") |
设置HDFS用户
因为Windows用户Qingyuan_Qu没有权限读写HDFS, 此处我们设置用户为zhangsan,在main方法中加入如下配置。
1 | System.setProperty("HADOOP_USER_NAME", "zhangsan") |
设置启动参数
1 | hdfs://node1:9000/input/bigdata.txt hdfs://node1:9000/out |

控制台输出结果
1 | (www,5) |
打包运行
mvn clean package
Local模式
1 | [zhangsan@node1 default]$ bin/spark-submit --master local --class cn.studybigdata.spark.WordCount ~/wordcount-1.0-SNAPSHOT.jar hdfs://node1:9000/input/bigdata.txt hdfs://node1:9000/out |
Standalone模式
1 | [zhangsan@node1 default]$ bin/spark-submit --master spark://node1:7077 --class cn.studybigdata.spark.WordCount ~/wordcount-1.0-SNAPSHOT.jar hdfs://node1:9000/input/bigdata.txt hdfs://node1:9000/out |
Spark On YARN
启动Hadoop的历史日志服务器
1 | [zhangsan@node1 default]$ sbin/mr-jobhistory-daemon.sh start historyserver |
Client模式
1 | [zhangsan@node1 default]$ bin/spark-submit --master yarn --deploy-mode client --class cn.studybigdata.spark.WordCount ~/wordcount-1.0-SNAPSHOT.jar hdfs://node1:9000/input/bigdata.txt hdfs://node1:9000/out |
因为我们在代码中,将所有Container的结果收集到了Driver,且Driver运行在客户端进程中,所以会在屏幕上输入汇总后的结果。
1 | //结果收集: |
Driver输出(屏幕):
对应的进程名:SparkSubmit
1 | 22/11/22 16:35:01 INFO scheduler.DAGScheduler: Job 2 finished: collect at WordCount.scala:29, took 0.219469 s |
Executor-1输出
对应的进程名:CoarseGrainedExecutorBackend
1 | (www,5) |
Executor-2输出
对应的进程名:CoarseGrainedExecutorBackend
1 | (big,3) |
Cluster模式
1 | [zhangsan@node1 default]$ bin/spark-submit --master yarn --deploy-mode cluster --class cn.studybigdata.spark.WordCount ~/wordcount-1.0-SNAPSHOT.jar hdfs://node1:9000/input/bigdata.txt hdfs://node1:9000/out |
在这种情况下,我们无法在屏幕上看到输出的结果,因为Driver运行在YARN的Container中。
Driver输出
对应的进程名:ApplicationMaster
1 | (big,3) |
Executor-1输出
对应的进程名:CoarseGrainedExecutorBackend
1 | (big,3) |
Executor-2输出
对应的进程名:CoarseGrainedExecutorBackend
1 | (www,5) |
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.