安装jdk
安装jdk1.8,到oracle下载对应系统所需的安装包。
增加环境变量JAVA_HOME, 对于mac系统,使用系统自身的安装jdk,是可以通过命令行/usr/libexec/java_home来获取。
安装spark
到官网下载hadoop版本,这里选择了2.4.3
解压到指定目录,然后配置环境变量SPARK_HOME。
配置ssh
由于启动spark需要依赖ssh的免密登陆达到控制集群的关系,这里通过如下命令来实现单机的免密登陆
1 | ssh-keygen -t rsa -f ~/.ssh/id_rsa_spark |
设置后密码后,通过ssh localhost来看下是否可以实现登陆成功
注意 对于windows用户,可以需要配置sshd环境;对于mac用户,需要在设置-sharing-Remote Login中将服务打开,同时设置哪些用户可以登陆
同时配置SPARK_SSH_OPTS环境变量到/etc/profile下1
export HADOOP_SSH_OPTS="-i /Users/roger/.ssh/id_rsa_spark -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "
指向刚生成的私钥,如果不配置密钥,可以通过环境变量设置SPARK_SSH_FOREGROUND配置ssh的密码
配置spark
设置配置文件spark-env.sh,先从spark-env.sh.template赋值过来1
2
3
4export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home
export SPARK_MASTER_HOST=localhost
export SPARK_MASTER_PORT=7077
export SPARK_MASTER_WEBUI_PORT=18080
这里是这master的ip,端口跟webui的端口,按照自己情况设置,不设置的话,缺省webui是8080
同时spark-defaults.conf.template复制成spark-defaults.conf
同时slaves.template复制成slaves,修改内容如下:1
localhost
表示使用本机作为其中一个worker
同时log4j.properties.template复制成log4j.properties
启动master
1 | ${SPARK_HOME}/sbin/start-master.sh |
启动slave
如果配置conf/slaves,需要从这里起来1
${SPARK_HOME}/sbin/start-slaves.sh
提交java作业
1 | ./bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://localhost:7077 examples/jars/spark-examples_2.11-2.4.3.jar |
查看结果输出如下1
219/08/30 13:58:43 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Pi is roughly 3.146315731578658
提交python作业
提供一个分词功能1
bin/spark-submit --master spark://localhost:7077 examples/roger/workcount.py ./README.md
查看页面可以看到对应的作业记录,至此本地的spark standalone环境搭建完成