天天看点

搭建Spark集群详细步骤(2)构建Spark集群(2)

构建Spark集群(2)

构建spark集群经典4部曲:

1.搭建hadoop单机和伪分布式环境

2.构造分布式hadoop集群

3.构造分布式spark集群

4.测试spark集群

第二步 构造分布式hadoop集群

2.1在VMWare中准备第二、三台虚拟机

通过克隆的方式,在VMWare中创建三台虚拟机,分别命名为Master、Slave1、Slave2

在构建第二三台虚拟机的时候,使用相同的root超级用户的方式登录

2.2按照配置伪分布式模式的方式配置新创建运行Ubuntu系统的机器

2.3配置Hadoop分布式集群环境

(1)在/etc/hostname 中修改主机名并在/etc/hosts 中配置主机名和 IP 地址的对应关系:

我们把Master节点作为主节点,首先通过ifconfig查看ip地址(172.16.106.130)

然后在/etc/hostname中修改主机名

vim /etc/hostname

修改为Master,保存退出,

之后通过

hostname

命令查看主机名,发现还没有更改

搭建Spark集群详细步骤(2)构建Spark集群(2)

重启电脑,已经修改成功

搭建Spark集群详细步骤(2)构建Spark集群(2)

通过命令

vim /etc/hosts

打开文件,此时我们发现文件中只有 Ubuntu 系统的原始 ip(127.0.0.1)地址和主机名(localhost) 的对应关系:

我们在/etc/hosts 中配置主机名和 IP 地址的对应关系:

搭建Spark集群详细步骤(2)构建Spark集群(2)

修改之后保存退出。

之后使用ping命令看一下主机名和 IP 地址只见的转换关系是否正确:

搭建Spark集群详细步骤(2)构建Spark集群(2)

可以看到主机‘Master’对应ip地址‘172.16.106.130’。

我们把第二三台机器作为从节点,按照上面的操作,分别查看他们的ip地址,修改主机名:

第二台:Slave1(172.16.106.131)

第三台:Slave2(172.16.106.132)

在Slave1中配置主机名和ip地址的对应关系

vim /etc/hosts

搭建Spark集群详细步骤(2)构建Spark集群(2)

ping一下Master节点,发现网络访问没问题

搭建Spark集群详细步骤(2)构建Spark集群(2)

在Slave2上进行相同的操作,然后分别测试其是否能和Master、Slave1通信。

在Master节点上配置主机名和ip地址的对应信息,把Slave1和Slave2的信息加上,然后测试网络是否互通。

(2)SSH无密码验证配置

首先尝试在没有进行配置的情况下,是否可以进行访问。

搭建Spark集群详细步骤(2)构建Spark集群(2)

产生警告,但是可以访问,有时会出现需要输入密码的情况。

按照前面的配置,我们已经分布在 Master、Slave1、Slave2 这三台机器上的/root/.ssh/ 目录下生成一个私钥 id_rsa 和一个公钥 id_rsa.pub。

此时把 Slave1 的 id_rsa.pub 传给 Master,如下所示:

搭建Spark集群详细步骤(2)构建Spark集群(2)

然后把Slave2的id_rsa.pub传给Master,如下所示:

搭建Spark集群详细步骤(2)构建Spark集群(2)

在Master上检查公钥是否已经传输过来。

搭建Spark集群详细步骤(2)构建Spark集群(2)

Master节点上综合所有公钥

搭建Spark集群详细步骤(2)构建Spark集群(2)

将master节点的所有公钥信息复制到slave1和slave2的.ssh目录下

scp authorized_keys [email protected]:/root/.ssh/authorized_keys

scp authorized_keys [email protected]:/root/.ssh/authorized_keys

之后再次使用ssh登录Slave1和Slave2,不再有警告

(3)修改Master,Slave1,Slave2配置文件:

首先,修改Master的core-site.xml文件,将localhost改为Master。

原:

搭建Spark集群详细步骤(2)构建Spark集群(2)

更改后:

搭建Spark集群详细步骤(2)构建Spark集群(2)

之后将Slave1和Slave2的core-site.xml中的localhost修改为Master

其次,修改mapred-site.xml,将localhost更改为Master,新版本的hadoop中没有mapred-site.xml,可以将mapred-site.xml.template复制一份:

cp mapred-site.xml.template mapred-site.xml

最后,修改hdfs-site.xml,将“dfs.replication”值由 1 改为 3,这样我们的数据就会有 3 份副本:

配置slave文件(计算节点),三个机器都要进行同样的操作,在hadoop下的/etc/hadoop目录中:

vim slaves

修改为如下内容:

Master
Slave1
Slave2
           

主机节点既作为控制节点,也作为计算节点,数据副本3份。

(4)测试分布式环境

删除之前构建伪分布式环境时,tmp文件下的内容

rm -rf tmp/*

rm -rf /tmp/hadoop*

三台机器都要进行同样的操作。

之后再Master节点上,格式化hdfs

cd bin/   #进入hadoop文件夹下的bin目录下
hdfs namenode -format   #格式化
cd ../sbin/     #进入sbin目录下
./start-dfs.sh  #启动集群
           

分别在三台机器上通过

jps

命令,查看进程启动情况。

Master:

搭建Spark集群详细步骤(2)构建Spark集群(2)

可以看到,master既作为namenode又作为datanode。

Slave1:

搭建Spark集群详细步骤(2)构建Spark集群(2)

有datanode进程。

Slave2:

搭建Spark集群详细步骤(2)构建Spark集群(2)

有datanode进程。

继续阅读