Spark学习笔记(一):CentOS 6.5集群搭建

运行环境

  1. CentOS 6.5
  2. JDK 1.7
  3. Hadoop 2.4.1
  4. Hive 0.13
  5. ZooKeeper 3.4.5
  6. kafka_2.9.2-0.8.1
  7. Spark 2.1.3
  8. scala 2.11.8

安装CentOS 6.5

  1. 在macOS下,使用Parallels Desktop直接安装,CentOS 6.5使用的只需要官网的一个DVD1.iso文件。
  2. 启动以后使用Termius连接三台机器,使用Transmit传文件。

CentOS 6.5防火墙配置

关闭防火墙

1
2
3
4
service iptables stop
chkconfig iptables off
vi /etc/selinux/config
SELINUX=disabled

JDK 1.7安装

我下载的CentOS自带,所以不用安装,装之前用java -version测试是否自带JDK。

  1. 将jdk-7u60-linux-i586.rpm通过WinSCP上传到虚拟机中
  2. 安装JDK:

    1
    rpm -ivh jdk-7u65-linux-i586.rpm
  3. 配置jdk相关的环境变量

  4. 1
    2
    3
    4
    vi .bashrc
    export JAVA_HOME=/usr/java/latest
    export PATH=$PATH:$JAVA_HOME/bin
    source .bashrc
  5. 测试jdk安装是否成功:

    1
    java -version
  6. 1
    rm -f /etc/udev/rules.d/70-persistent-net.rules

安装第二台和第三台虚拟机

  1. 安装上述步骤,再安装两台一模一样环境的虚拟机,因为后面hadoop和spark都是要搭建集群的。
  2. 集群的最小环境就是三台。因为后面要搭建ZooKeeper、kafka等集群。
  3. 另外两台机器的hostname分别设置为spark2和spark3即可,通过终端输入ifconfig查看ip,记下。
  4. 安装好之后,记得要在三台机器的/etc/hosts文件中,配置全三台机器的ip地址到hostname的映射,而不能只配置本机。比如我的:

    1
    2
    3
    4
    5
    6
    [spark1@spark1 Desktop]$ cat /etc/hosts
    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.211.55.24 spark1
    10.211.55.25 spark2
    10.211.55.26 spark3
  5. mac中Parallels Desktop会自动配置到虚拟机的地址映射,开启虚拟机以后在mac中可以直接ssh root@spark1进行连接

配置集群ssh免密码登录

  1. 首先在三台机器上配置对本机的ssh免密码登录
    生成本机的公钥,过程中不断敲回车即可,ssh-keygen命令默认会将公钥放在/root/.ssh目录下

    1
    ssh-keygen -t rsa
  2. 将公钥复制为authorized_keys文件,此时使用ssh连接本机就不需要输入密码了

    1
    2
    cd /root/.ssh
    cp id_rsa.pub authorized_keys
  3. 接着配置三台机器互相之间的ssh免密码登录,使用ssh-copy-id -i spark{N}命令将本机的公钥拷贝到指定机器的authorized_keys文件中:

    1
    2
    3
    4
    5
    6
    [root@spark1 ~]# ssh-copy-id -i spark2
    [root@spark1 ~]# ssh-copy-id -i spark3
    [root@spark2 ~]# ssh-copy-id -i spark1
    [root@spark2 ~]# ssh-copy-id -i spark3
    [root@spark3 ~]# ssh-copy-id -i spark1
    [root@spark3 ~]# ssh-copy-id -i spark2
0%