搭建Spark分布式集群
0.准备
先准备好以下软件:
软件 |
版本 |
ubuntu |
14.04 64bit |
java |
jdk1.8.0_25 64bit |
hadoop |
2.4.1 64bit |
scala |
2.10.4 |
spark |
1.1.0 |
maven |
3.2.3 |
1.设置静态IP
Ubuntu系统设置静态IP
l 设置静态IP
Sudogedit /etc/network/interfaces
修改文件:
autolo
ifaceio inet loop back
autoeth0
ifaceeth0 inet static
address202.114.24.88
netmask255.255.255.192
gateway 202.114.24.126
保存,并关闭gedit。
这样,IP并没有立即生效。需要执行
$sudo/etc/init.d/networking restart
l 修改DNS
DNS信息保存在/etc/resolv.conf中,一旦更改,立即生效。
$sudogedit /etc/resolv.conf
nameserver202.114.0.242
nameserver202.112.20.131
改完上面,如果重启的话,还是会变为原来的样子,所以要让其永久改变,因此执行
Vim/etc/resolveconf/resolv.conf.d/base
在里面添加
nameserver202.114.0.242
nameserver202.112.20.131
2.搭建Hadoop分布式集群
本教程基于 Hadoop 2.4.1,但应该适用于所有 2.x 版本。我在 Ubuntu 下多次安装过,按照本教程一般都可以配置成功。本教程只是基础的安装配置,更多功能、配置、技巧就需要各位自行探索了。
环境
· 系统: Ubuntu 14.0464bit
· Hadoop版本: hadoop 2.4.1 (stable)
· JDK版本: jdk1.8.0_25
· 集群环境: 三台主机,一台作为master,局域网IP为202.114.24.88;另一台作为slave1,局域网IP为202.114.24.89;另一台作为slave2,局域网IP为202.114.24.90;.
网络配置
我使用了三台主机搭建集群,主机名与IP地址对应如下:
master 202.114.24.88
slave1 202.114.24.89
slave2 202.114.24.90
首先选定哪台主机要作为master(比如我选择的是ip为 202.114.24.88 这台),然后在该主机的 /etc/hostname 中,修改机器名为master,将其他主机命令为slave1、slave2等。接着在 /etc/hosts 中,把所有集群的主机信息都写进去。
sudo vim /etc/hostname
sudo vim /etc/hosts
完成后,如下图所示(/etc/hosts 中只能有一个127.0.0.1,对应为localhost,否则会出错)。最好重启一下,在终端中才会看到机器名的变化。
Hadoop中的hosts设置
注意,该网络配置需要在所有主机上进行
如上面讲的是 Master 主机的配置,而在其他的 Slave 主机上,也要对 /etc/hostname(修改为 Slave1、Slave2等)和 /etc/hosts(一般跟 Master 上的配置一样)这两个文件进行相应的修改!
配置好后可以在各个主机上执行ping Master和ping Slave1测试一下,看是否相互ping得通。
ping
设置环境变量
用户环境变量设置,为了不影响之前的伪分布式安装,修改本用户的环境变量文件(~/.bashrc)
$gedit ~/.bashrc
exportJAVA_HOME=/home/spark/software/jdk1.8.0_25
export JRE_HOME=/home/spark/software/jdk1.8.0_25/jre
exportHADOOP_HOME=/home/spark/software/hadoop-2.4.1
exportSCALA_HOME=/home/spark/software/scala-2.10.4
exportSPARK_HOME=/home/spark/software/spark-1.1.0-bin-hadoop2.4
exportM2_HOME=/home/spark/software/apache-maven-3.2.3
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
exportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$M2_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME:$PATH
SSH无密码登陆节点
这个操作是要让Master节点可以无密码SSH登陆到Slave节点上。
首先生成 Master 的公匙,在 Master 节点终端中执行:
cd ~/.ssh &nb