centos7+jdk1.8+scala+spark+IEDA(mac可参考)集群环境搭建

本文详细介绍如何在Linux环境下搭建Spark集群,包括centos安装、jdk安装、openssh安装、scala安装、spark安装及集群配置等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   因为硬件原因,博文一直没有更新,非常抱歉,最近去买了一个配置比较好的笔记本,尝试了下spark在linux下环境的搭建,利用一个星期的业余时间,终于是搭建成功了,特此记下了,也是给大家一些借鉴,如有问题,可以留言,或者邮箱(xlydq1206@sina.com)。好,下面切入正题啦~
   首先,我的笔记本是双核四线程的,大环境是mac下同下用平行桌面搭建了四个虚拟机(win7+3个centos的linux系统),亲测可以正常同时使用(之前很长一段时间被网上的一些言论误导为N核CPU就最多能支持N个虚拟机同时工作,亲测只要内存和CPU使用率不高就可以继续加虚拟机)。

还是惯例,先列举下本文要讲的事情:
目录
1、centos安装
2、jdk安装
3、openssh安装
4、scala安装
5、spark安装
6、集群配置

1、centos安装
这个在VM或者Parallel Desktop上都很容易,基本是傻瓜式的,可参考
Mac OS X 开发环境搭建之利用 Parallel Desktop 安装 CentOS 7

2、jdk安装
spark是依赖于JVM的,所以它也算是跨平台的。jdk的安装就很常规了,一般是下载文件、加入环境变量和是环境变量生效——
下载文件就不说了,去官网或者参照上一篇博客
添加环境变量:

vim ~/.bashrc
    export JAVA_HOME = /usr/lib/java/jdk1.8.0 #jdk安装路径  
    export PATH=$JAVA_HOME/bin:$PATH  

退出编辑后 source ~/.bashrc

3、openssh安装(非常重要)
先一句话说下这一步的重要性吧,集群之间的无密连接靠的就是SSH协议(外壳协议)。并且还需要用root用户操作(su root),否则在测试spark集群的时候会出现什么情况呢,来,看下图
这里写图片描述
即最后连接的时候都被拒绝了(spark2是spark2,spark1/spark3是slaves),使用root可是统一管理集群。下面来讲下步骤。
首先需要更换下主机名:

hostname spark1
vi /etc/sysconfig/network
HOSTNAME=spark1

vi /etc/hosts
192.168.1.105 spark1
192.168.1.107 spark2
192.168.1.108 spark3
192.168.1.105 localhost

参考博客设置主机名
a、查看ssh协议的安装情况:rpm -qa | grep ssh
b、启动ssh协议:service sshd restart
c、设置免密登陆:ssh-keygen -t rsa -p ""(ssh-keygen是连着的,这个易犯错~)
这样在~/.ssh目录下会生成两个文件:id_rsa,id_rsa.pub
d、追加公钥:cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
e、测试:ssh localhost
f、在spark1和spark3上登陆root用户后重复执行a~d
g、将各自公钥传到spark2上:
在spark2上新建目录:

mkdir ~/.ssh/id_rsa.pub.spark1
mkdir ~/.ssh/id_rsa.pub.spark3
scp id_rsa.pub root@spark2: ~/.ssh/id_rsa.pub.spark1 --spark1上执行
scp id_rsa.pub root@spark2: ~/.ssh/id_rsa.pub.spark3 --spark3上执行

到spark2上查看相应的文件是否已经传过来了
h、spark2上追加spark1和spark3的公钥

cat ~/.ssh、id_rsa.pub.spark1/id_rsa.pub>>~/.ssh/authorized_keys
cat ~/.ssh、id_rsa.pub.spark3/id_rsa.pub>>~/.ssh/authorized_keys

至此,spark2上的authorized_keys包含了三台机器交互的公钥信息了,我们需要复制它到spark1和spark3

scp authorized_keys root@spark1: ~/.ssh/authorized_keys 
scp authorized_keys root@spark3: ~/.ssh/authorized_keys 

比如,我用spark1登陆后,利用ssh登陆spark3(并没有输入密码),成功后会有如下提示:
ssh测试

4、scala安装
这个比较简单,下载(Wget http://downloads.typesafe.com/scala/2.11.6/scala-2.11.6.tgz?_ga=1.41078626.1125902863.1429259252
解压,设置环境变量,ok,不会的可以参照scala安装 centos
将相关文件(环境变量配置文件和scala文件)用scp复制到spark1和spark3中

5、spark安装
首先还是去官网上下载、解压,最好下载包含hadoop的版本,因为spark虽然是基于内存计算的,但是还是会用到hadoop的hdfs机制,如果是单独的spark版本,那么还需要单独去配置与之匹配的hadoop版本(这个在很多博客都有讲,但是我没有亲自搭建过,具体的博文行不行靠大家自己去测试才行咯)
我下载的是目前的最新版spark-2.0.2-bin-hadoop2.7,当然除去了spark3.0 beta版。
a、配置环境变量

[root@spark2 ~]$ vi ~/.bashrc

export SCALA_HOME = ~/Desktop/soft/scala-2.11.6
export SPARK_HOME = ~/Desktop/soft/spark-2.0.2-bin-hadoop2.7
export PATH = ${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH

[root@spark2 soft]$ scp ~/.bashrc root@spark1:~/.bashrc
.bashrc                                       100%  403     0.4KB/s   00:00    
[root@spark2 soft]$ scp ~/.bashrc root@spark3:~/.bashrc
.bashrc                                       100%  403     0.4KB/s   00:00    
[root@spark2 soft]$

scp -r spark-2.0.2-bin-hadoop2.7 root@spark3:~/Desktop/soft
scp -r spark-2.0.2-bin-hadoop2.7 root@spark1:~/Desktop/soft

至此,spark就配置完成了

6、集群配置
要想启动集群,还需要配置一些spark下的文件

a、cp spark-env.sh.template spark-env.sh

b、vi spark-env.sh
添加
export SCALA_HOME=/usr/local/scala/scala-2.10.4
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_74
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
#export HADOOP_CONF_DIR=/usr/local/spark/spark-2.0.2-bin-hadoop2.6/conf
export SPARK_MASTER_IP=192.168.1.107
export SPARK_LOCAL_DIRS=/usr/local/spark/spark-2.0.2-bin-hadoop2.6
export SPARK_DRIVER_MEMORY=1G
export master=spark://192.168.1.107:7070


c、vi slaves
spark1
spark3

d、进入到spark的sbin目录下,执行./start-all.sh启动集群
e、在webUI上访问spark2:8080,即使在没有联网的情况下应该是可以访问的,类似下图(单机版的访问结果):
单机版的spark,其webUI访问结果

如果将spark的bin目录设置到环境变量中(如 ~/.bashrc),则可以在任意位置输入 spark-shell来启动集群,会有spark的字样显示

=============后话====================
另外,也可以顺便把IDEA也安装好,方便后续scala的开发
IDEA安装的参考网址-《Spark入门实战系列–3.Spark编程模型(下)–IDEA搭建及实》
不建议大家使用eclipse开发spark程序和阅读源代码,推荐使用Intellij IDEA

● 下载IDEA14.0.5:
http://confluence.jetbrains.com/display/IntelliJIDEA/Previous+IntelliJ+IDEA+Releases
http://download.jetbrains.8686c.com/idea/ideaIU-14.0.5.tar.gz

https://download.jetbrains.8686c.com/idea/ideaIU-2016.2.5-no-jdk.tar.gz(只支持JDK1.8以上)

解压,进入到解压后文件夹的bin目录下执行
tar -zxvf ideaIU-14.tar.gz -C /usr/intellijIDEA
export IDEA_JDK=/usr/local/java/jdk1.8.0
./idea.sh
key:IDEA
value:61156-YRN2M-5MNCN-NZ8D2-7B4EW-U12L4

安装Scala插件
http://www.linuxdiyf.com/linux/19143.html
下载地址:http://plugins.jetbrains.com/files/1347/19005/scala-intellij-bin-1.4.zip
IDEA安装scala插件

环境搭建好了,下一步是不是该干点啥了呢^V^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值