由于导师项目需要,因此临时学习了一下spark,在借鉴别人的基础上完成了原生式spark分布式环境的部署,特此详细的记录一下安装过程,以供后续参考。

一:机器配置(以centos 64位为例)

 主节点(命名为Msater) IP:192.168.182.172

 从节点1(命名为slave1) IP: 192.168.182.173

从节点2(命名为slave2) IP: 192.168.182.174

从节点3(命名为slave3)IP:192.168.182.175 

之后的所有操作都是在root环境下进行的,请提前进入root。

二:修改hosts节点配置

四台机器都需要修改机器配置,操作都一样,如下:

命令:

vi /etc/hosts

在hosts后面添加如下内容:(你可以根据自己的IP和节点命名进行对应修改)

192.168.182.172 Master
192.168.182.173 slave1
192.168.182.174 slave2
192.168.182.175 slave3

最后保存执行一下:

source /etc/hosts
View Code

三:SSH无密码验证

3.1安装SSH服务和RSYNC服务(已安装忽略)

1. 查看是否安装SSH和RSYNC服务

rpm -qa|grep openssh
rpm -qa|grep rsync

如果没有安装,则通过以下命令安装

yum install ssh (安装ssh协议)
yum install rsync (rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件)
service sshd restart (启动服务)

3.2 配置Master节点无密码登陆其他节点

 Master节点操作:

 首先生成密码对,执行以下命令:

ssh-keygen -t rsa

生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/root/.ssh"目录下,可自行查看

接着将刚才生成的密码对添加到authorized_keys后,命令如下:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

然后修改ssh配置文件"/etc/ssh/sshd_config"的下列内容,将以下内容的注释去掉(即去掉语句前的#号):

PermitRootLogin yes
AuthorizedKeysFile   .ssh/authorized_keys
PubkeyAuthentication yes

重启ssh服务,使设置生效 

service sshd restart

查看是否能无密码登陆本地主机localhost:

ssh localhost

接下来把公钥复制到其他slave节点上面,命令如下

scp /root/.ssh/id_rsa.pub root@slave1:/root/
scp /root/.ssh/id_rsa.pub root@slave2:/root/
scp /root/.ssh/id_rsa.pub root@slave3:/root/

接下来我们要对slave节点进行操作,我们首先对slave1节点进行操作,以下操作都是在slave1节点进行:

1.首先查看节点是否有/root/.ssh目录,如果没有,则创建此目录 

mkdir /root/.ssh

2.将Master节点刚刚发送过来的密钥追加到authorized_keys文件中:

cat /root/id_rsa.pub >> /root/.ssh/authorized_keys

3)修改"/etc/ssh/sshd_config",将以下行注释去掉

PermitRootLogin yes
AuthorizedKeysFile   .ssh/authorized_keys
PubkeyAuthentication yes

重启ssh服务,使修改生效:

service sshd restart

测试一下Master节点是否能无密码登陆slave1节点:

在Master节点执行以下命令:

ssh slave1 或者 ssh 192.168.182.173

将slave1节点的id_rsa.pob删除,在slave1节点执行以下命令

rm –r /root/id_rsa.pub

在slave2和slave3节点也执行slave1节点的步骤,完成Master节点无密码登陆slave1节点。

3.3 slave1节点无密码登陆Mater节点

 以下操作在slave1节点完成:

 1.首先生成rsa密钥,命令如下: 

ssh-keygen -t rsa

2.将密钥追加到authorized_keys文件中:

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

3.将slave1节点的密钥复制到Master节点中 

scp /root/.ssh/id_rsa.pub root@Master:/root/

以下操作在Master节点完成:

1.将slave1节点发送来的id_rsa.pub文件追加到authorized_keys文件中

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

2.将Master节点的id_sra.pub文件删除

rm –r /root/id_rsa.pub

以下操作在slave1节点进行:

1.测试slave1节点能否无密码登陆Master节点 

ssh Master 或者 ssh192.168.182.172

以上就完成了slave1无密码登陆Master节点。slave2和slave3节点执行同样操作即可完成对Master节点的无密码登陆。

4.安装java环境和SCALA环境(已安装忽略,java环境很重要,后面都要用到)

1.安装java环境

yum install java

2.配置java环境

首先找到java执行路径

which java  (如果环境变量没有配置,该命令返回的使java执行路径,如果已配置环境变量,显示的是安装路径)

我这边由于已经配置过环境,返回结果如下

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64/jre/bin/java

基于以上返回结果,我是这样配置环境的;

首先进入/ect/profile

vi /etc/profile

在里面增加如下内容

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64/jre
PATH
=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/rt.jar export JAVA_HOME PATH CLASSPATH

保存以后刷新配置

source /etc/profile

如果没有配置环境,想要找到java安装路径,需要执行以下命令

whic java //找到执行路径
[root@namenode ~]# env |grep JAVA
[root@namenode ~]# ls -hltr /usr/bin/java  (/usr/bin/java是执行which java返回的执行路径)
/usr/bin/java -> /etc/alternatives/java (返回结果)
[root@namenode ~]# cd /etc/alternatives
[root@namenode alternatives]# ls -hltr java
java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64/jre/bin/java

最后一行即java安装路径

2.安装scala

一般来说原生centos没有wget,我们首先安装wget

yum install wget

安装好以后,下载scala包

wget https://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz

解压缩scala包

tar -xzvf scala-2.11.8.tgz

把scala-2.11.8文件夹拷贝到/usr/local/scala文件夹下,

如果没有/usr/local/scala文件夹,则创建

mkdir -p /usr/local/scala
cp -r scala-2.11.8 /usr/local/scala

配置环境变量:

cd ~
vi .bash_profile

添加以下配置:

export SCALA_HOME=/usr/local/scala/scala-2.11.8
export PATH=$PATH:$SCALA_HOME/bin

执行以下命令使之生效

source .bash_profile

验证是否安装成功

在命令行输入scala  

 5.Hadoop完全分布式环境安装

02-14 00:52