Spark搭建集群比较繁琐,需要的内容比较多,这里主要从Centos、Hadoop、Hive、ZooKeeper、kafka的服务器环境搭建开始讲。其中Centos的搭建不具体说了,主要讲下集群的配置。
环境搭建软件包
由于我是直接拿了三台现成的Centos 5.6的系统上进行搭建的,所以Centos的搭建就不说了,有需要的可以自行网上搜一下,也比较简单。当然以下有些工具也可以用你们已经顺手的工具包O(∩_∩)O~~
- Centos 5.6(Linux服务器)
- JDK 1.7(Java开发环境)
- Xshell 5(windows连接Linux)
- Xftp 4(windows上传Linux)
- Hadoop 2.4.1
- Hive 0.13
- ZooKeeper 3.4.5
- kafka 2.9.2-0.2.1
- Spark 1.3.0
Centos服务器配置
安装完三台Centos的操作系统之后,我们要对三台服务器进行免ssh登录。
首先我们先临时性地给三台服务器设置个名字。以一台为例,另外两台依样画葫芦就OK。
- 设置主机名(三台服务器)
[root@localhost ~]# hostname //显示主机名localhost [root@localhost ~]# sudo hostname spark1 设置主机名为spark1,另外两台服务器可以依次设为spark2、spark3 //若想永久性修改可以这样 [root@localhost ~]# vi /etc/sysconfig/network //编辑文件如下 HOSTNAME=spark1 #修改localhost.localdomain为spark1
设置完成之后继续修改/etc/hosts文件
[root@spark1 ~]# vi /etc/hosts
[ip地址] spark1
如果是永久性修改,要重启服务器;临时性修改就不用了,否则重启完由还原了。
设置完之后我们可以ping地址,看是否OK。
[root@spark1 ~]# ping spark1
- 关闭防火墙(三台服务器)
[root@spark1 ~]# service iptables stop [root@spark1 ~]# chkconfig iptables off [root@spark1 ~]# vi /etc/selinux/config //在配置文件中修改 SELINUX=disabled
- 设置免密码ssh登陆(三台服务器)
我们设置完三台Centos服务器的hostname之后,继续进入三台服务器,把另外2台服务器的hostname映射都配置在/etc/hosts文件中。
[root@spark1 ~]# vi /etc/hosts
[ip地址一1] spark1 //之前配置的 [ip地址一2] spark2 [ip地址一3] spark3
然后我们设置免密码ssh登录。
[root@spark1 ~]# ssh-keygen -t rsa //设置ssh的登录密码
一路回车向下不设置密码。然后执行下面命令。
[root@spark1 ~]# cd /root/.ssh //生成的密钥文件自动放在这个文件夹下 [root@spark1 ~]# cp id_rsa.pub authorized_keys [root@spark1 ~]# ls authorized_keys id_rsa id_rsa.pub known_hosts //至此我们本机已经不用密码登陆了 [root@spark1 ~]# ssh spark1
然后我们把ssh密钥传给其他另外2台服务器使得可以互相免密码ssh登录。
[root@spark1 ~]# ssh-copy-id -i spark2 //将ssh密钥复制给spark2 //第一次需要输入spark2的登录密码,按提示完成 //完成后 [root@spark1 ~]# ssh spark2
发现可以免密码直接登录spark2服务器了,另外两台服务器依次22免密码ssh登录设置完成。