Spark的伪分布式配置(Ubuntu)
在配置完Hadoop伪分布式的前提下
1.将SPARK配置进环境变量
2. 将SPARK目录的conf目录的spark.env.sh.template
改名为spark.env.sh
,并配置为
此处的IP地址为所需要的MASTER的IP地址,当前是伪分布式配置,所以MASTER和WORKER都为本机,配置为本机的IP地址即可,可用ifconfig命令查询
3.将SPARK目录的conf目录的slaves.template
改名为slaves
,并配置为
4.先在HADOOP目录中用./sbin/start-all.sh
启动HDFS和YARN后,再在spark目录中用./sbin/start-all.sh
,即可启动SPARK集群,最后结果为
可看到多出了MASTER和WORKER
注:
在123步配置完之后,在spark目录中用./sbin/start-all.sh
启动时,可能会出现各种权限不足,无法操作的情况,这时候先回到hadoop和spark的上一级目录,用ll
命令查询HADOOP和SPARK目录他们的用户名和用户组,发现这两个目录的用户名和用户组不是同一个,所以在启动spark集群时,就出现了权限不足而无法调用Hadoop相关配置的问题
解决方案:使用命令 chown -R (HADOOP目录的用户名):(HADOOP目录的用户组) (SPARK目录)
,将SPARK目录的用户名和用户组更改为跟HADOOP一样
如sudo chown -R hadoop:20000 /spark-1.5.2-bin-hadoop2.6
这时再在spark目录中用./sbin/start-all.sh
启动,就能正确启动了
这时候如果还是用./bin/spark-shell
启动spark,则master还是local,并不是集群上设置的master,进入localhost:8080中显示的是
必须使用 ./bin/spark-shell --master spark://192.168.255.128:7077
,用spark协议指定master,才算启动了spark集群,这里的IP地址是master的ip地址,端口号为spark内置,默认7077。这时进入localhost:8080
才显示
这才是正确启动的spark集群