Hadoop Spark集群搭建,以及IDEA远程调试
环境:Hadoop-2.7.2 jdk-1.8 scala-2-11-12 spark-2.1.0
spark2.0.0开始,只支持Java8版本了,并且Java8版本最好相对高一点,并且从spark2.1.0开始只支持scala2.11了
scala下载地址(选择2.11.X以上版本):
spark下载地址:
由于我们的hadoop是2.7.2 版本,这里选择下载对应的spark版本。
首先,将scala和spark的tar包上传到我们的三台虚拟机上,并进行解压配置。
三台虚拟机IP:
192.168.194.131 Hadoop.Master
192.168.194.129 Hadoop.Slave1 192.168.194.130 Hadoop.Slave2我们先来配置scala,在配置scala之前我们必须保证服务器上有Java8之后,配置scala的环境变量,编辑/etc/profile:
保存然后使其生效之后,执行scala -version观察输出:
如果输出对应版本号则说明配置成功。
接下来我们配置spark,首先就是环境变量:
然后我们进入spark目录下的conf目录,去配置两个配置文件spark-env.sh slaves
首先我们编辑spark-env.sh,将spark-env.sh.template文件重命名
然后我们编辑slaves,将slaves.template文件重命名,并且将hosts文件中我们的两个hadoop从节点的host也来充当我们的spark的从节点
然后我们进入spark目录下的sbin目录中执行start-all.sh,用jps命令观察各个节点的启动效果。
Master:
Slave:
遇到的坑:
1.stop-all.sh执行关闭spark集群的时候,worker节点没有正常关闭(原因看第3点)
2.spark UI在单机节点的时候访问地址为 IP:4040 ,集群状态下 的访问地址为IP:8080。
3.由于我的hadoop的环境变量中,将hadoop目录下的sbin目录配置到了PATH中,导致我在spark目录下的sbin目录下执行start-all.sh/stop-all.sh时,总是执行hadoop的start-all.sh/stop-all.sh,想执行spark的start-all.sh只能通过绝对路径执行